?? key.lst
字號(hào):
C51 COMPILER V8.02 KEY 01/06/2009 14:07:32 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN H:\MYPROJ~1\12232~1\KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE H:\MYPROJ~1\12232~1\KEY.C DB SB OE
line level source
1 #include "MAIN.H"
2 #include "KEY.H"
3
4 #include <string.h>
5
6
7 //x\y\z\a\b\c\d:PF1\PF2\PF3\PF4\PF5\PF6\PF7
8 #define x(n) {if(n) PIN_KEY1=1; else PIN_KEY1=0;}
9 #define y(n) {if(n) PIN_KEY2=1; else PIN_KEY2=0;}
10 #define z(n) {if(n) PIN_KEY3=1; else PIN_KEY3=0;}
11
12
13
14 void buzzer_driver_key(void)
15 {
16 1 flag_key_active=1;
17 1 count_key_timeout=0;
18 1 if(flag_key_buzzer==1)
19 1 {
20 2 PIN_BUZZER=0;
21 2 delay_ms(30);
22 2 }
23 1 PIN_BUZZER=1;
24 1 }
25
26 void init_key(void)
27 {
28 1 uchar temp=0;
29 1 uchar temp_buffer[6]={1,2,3,4,5,6};
30 1 PIN_KEY1=1;
31 1 PIN_KEY2=1;
32 1 PIN_KEY3=1;
33 1 PIN_KEY4=1;
34 1 PIN_KEY5=1;
35 1 PIN_KEY6=1;
36 1 PIN_KEY7=1;
37 1 flag_key_buzzer=1;
38 1
39 1 //Write_Byte_AT24LC(0x55,code_point_type);
40 1 temp=Read_Byte_AT24LC(code_point_type);
*** WARNING C206 IN LINE 40 OF H:\MYPROJ~1\12232~1\KEY.C: 'Read_Byte_AT24LC': missing function-prototype
*** ERROR C267 IN LINE 40 OF H:\MYPROJ~1\12232~1\KEY.C: 'Read_Byte_AT24LC': requires ANSI-style prototype
41 1 if(temp==0xff)
42 1 {
43 2 code_sys[0]=0;code_sys[1]=0;code_sys[2]=0;
44 2 code_sys[3]=0;code_sys[4]=0;code_sys[5]=0;
45 2 }
46 1
47 1 else if(temp==0x55)
48 1 {
49 2 Read_Buffer_AT24LC(code_sys,6,code_point_addr);
50 2 delay_10us(1);
51 2 }
52 1
53 1 else
C51 COMPILER V8.02 KEY 01/06/2009 14:07:32 PAGE 2
54 1 {
55 2 PIN_BUZZER=0;
56 2 delay_ms(delay_5);
57 2 PIN_BUZZER=1;
58 2 delay_ms(delay_5);
59 2 PIN_BUZZER=0;
60 2 delay_ms(delay_5);
61 2 PIN_BUZZER=1;
62 2 delay_ms(delay_5);
63 2 PIN_BUZZER=0;
64 2 delay_ms(delay_5);
65 2 PIN_BUZZER=1;
66 2 }
67 1
68 1 return;
69 1
70 1 }
71
72
73
74 void led_driver_nomarl(void)
75 {
76 1 // flag_key_buzzer=1;
77 1 PIN_BUZZER= 1;
78 1 PIN_LED_PWR= 0;
79 1 PIN_LED_MODE=1;
80 1 PIN_LED_OPEN=1;
81 1 if(count_temp_led++==80)
82 1 {
83 2 status_machine=m_status_normal_recy;
84 2 count_temp_led=0;
85 2 }
86 1 }
87
88 void led_driver_recy(void)
89 {
90 1 PIN_BUZZER= 1;
91 1 PIN_LED_PWR= 1;
92 1 PIN_LED_MODE=1;
93 1 PIN_LED_OPEN=1;
94 1 if(count_temp_led++==80)
95 1 {
96 2 status_machine=m_status_normal;
97 2 count_temp_led=0;
98 2 }
99 1
100 1 }
101
102 void led_driver_mode(void)
103 {
104 1 PIN_LED_PWR= 0;
105 1 PIN_LED_MODE=0;
106 1 PIN_LED_OPEN=0;
107 1
108 1 flag_key_buzzer= 0;
109 1
110 1 status_machine=m_status_mode;
111 1 }
112
113 void led_driver_moded(void)
114 {
115 1
C51 COMPILER V8.02 KEY 01/06/2009 14:07:32 PAGE 3
116 1 PIN_BUZZER= 0;
117 1 PIN_LED_PWR= 0;
118 1 PIN_LED_MODE=0;
119 1 PIN_LED_OPEN=1;
120 1 delay_ms(100);
121 1 PIN_BUZZER= 1;
122 1 status_machine=m_status_moded;
123 1 }
124
125 void led_driver_config(void)
126 {
127 1 PIN_BUZZER= 1;
128 1 PIN_LED_PWR= 1;
129 1 PIN_LED_MODE=0;
130 1 PIN_LED_OPEN=1;
131 1 status_machine=m_status_config;
132 1 }
133
134 void led_driver_success(void)
135 {
136 1 PIN_BUZZER= 0;
137 1 PIN_LED_PWR= 0;
138 1 PIN_LED_MODE=0;
139 1 PIN_LED_OPEN=1;
140 1 delay_ms(20);
141 1 status_machine=m_status_success;
142 1 }
143
144 void led_driver_error(void)
145 {
146 1 flag_key_buzzer=1;
147 1 flag_key_active=0;
148 1 PIN_BUZZER= 0;
149 1 PIN_LED_PWR= 1;
150 1 PIN_LED_MODE=0;
151 1 PIN_LED_OPEN=1;
152 1 status_machine=m_status_error;
153 1 }
154
155 void led_driver_complete(void)
156 {
157 1 PIN_BUZZER= 1;
158 1 PIN_LED_PWR= 0;
159 1 PIN_LED_MODE=0;
160 1 PIN_LED_OPEN=1;
161 1 status_machine=m_status_complete;
162 1 }
163
164
165
166 uchar key_scan(void)
167 {
168 1 uchar key=0xff;
169 1 x(0);
170 1 {
171 2 delay_ms(delay_5);
172 2 if(PIN_KEY4==0)
173 2 {
174 3 delay_ms(key_delay);
175 3 if(PIN_KEY4==0)
176 3 {key=0x01 ; buzzer_driver_key(); x(1); return key;}
177 3 }
C51 COMPILER V8.02 KEY 01/06/2009 14:07:32 PAGE 4
178 2 if(PIN_KEY5==0)
179 2 {
180 3 delay_ms(key_delay);
181 3 if(PIN_KEY5==0)
182 3 {key=0x04 ; buzzer_driver_key(); x(1); return key;}
183 3 }
184 2 if(PIN_KEY6==0)
185 2 {
186 3 delay_ms(key_delay);
187 3 if(PIN_KEY6==0)
188 3 {key=0x07 ; buzzer_driver_key(); x(1); return key;}
189 3 }
190 2 if(PIN_KEY7==0)
191 2 {
192 3 delay_ms(key_delay);
193 3 if(PIN_KEY7==0)
194 3 {key=10 ; buzzer_driver_key(); x(1); return key;}//'*'
195 3 }
196 2 x(1);
197 2 }
198 1
199 1 y(0);
200 1 {
201 2 delay_ms(delay_5);
202 2 if(PIN_KEY4==0)
203 2 {
204 3 delay_ms(key_delay);
205 3 if(PIN_KEY4==0)
206 3 {key=0x02 ; buzzer_driver_key(); y(1); return key;}
207 3 }
208 2 if(PIN_KEY5==0)
209 2 {
210 3 delay_ms(key_delay);
211 3 if(PIN_KEY5==0)
212 3 {key=0x05 ; buzzer_driver_key(); y(1); return key;}
213 3 }
214 2 if(PIN_KEY6==0)
215 2 {
216 3 delay_ms(key_delay);
217 3 if(PIN_KEY6==0)
218 3 {key=0x08 ; buzzer_driver_key(); y(1); return key;}
219 3 }
220 2 if(PIN_KEY7==0)
221 2 {
222 3 delay_ms(key_delay);
223 3 if(PIN_KEY7==0)
224 3 {key=0x00 ; buzzer_driver_key(); y(1); return key;}
225 3 }
226 2 y(1);
227 2 }
228 1
229 1 z(0);
230 1 {
231 2 delay_ms(delay_5);
232 2 if(PIN_KEY4==0)
233 2 {
234 3 delay_ms(key_delay);
235 3 if(PIN_KEY4==0)
236 3 {key=0x03 ; buzzer_driver_key(); z(1); return key;}
237 3 }
238 2 if(PIN_KEY5==0)
239 2 {
C51 COMPILER V8.02 KEY 01/06/2009 14:07:32 PAGE 5
240 3 delay_ms(key_delay);
241 3 if(PIN_KEY5==0)
242 3 {key=0x06 ; buzzer_driver_key(); z(1); return key;}
243 3 }
244 2 if(PIN_KEY6==0)
245 2 {
246 3 delay_ms(key_delay);
247 3 if(PIN_KEY6==0)
248 3 {key=0x09 ; buzzer_driver_key(); z(1); return key;}
249 3 }
250 2 if(PIN_KEY7==0)
251 2 {
252 3 delay_ms(key_delay);
253 3 if(PIN_KEY7==0)
254 3 {key=11 ; buzzer_driver_key(); z(1); return key;}//'#'
255 3 }
256 2 z(1);
257 2 }
258 1 return key;
259 1 }
260
261
262
263 void key_process(void)
264 {
265 1 uchar idata i=0;
266 1 uchar idata j=0;
267 1 uchar idata flags=0;
268 1 uchar idata key=0xff;
269 1 uchar idata temp=0xff;
270 1 uint idata temp_addr;
271 1 uchar idata temp_door_delay[3];
272 1 // uchar idata temp_buffer[count_byte_page];
273 1
274 1 if(flag_key_active==0)//第一次按鍵
275 1 {
276 2 key=key_scan();
277 2
278 2 if(key==0xff)//無(wú)效按鍵或無(wú)按鍵
279 2 {
280 3 return;
281 3 }
282 2 if(key==10)
283 2 {
284 3 flag_key_active=0;
285 3 return;
286 3 }
287 2 if(key==11)//進(jìn)入設(shè)置狀態(tài)
288 2 {
289 3 tick_count_temp=tick_count;
290 3 flag_key_buzzer=0;
291 3 }
292 2
293 2 else//密碼開(kāi)門(mén)
294 2 {
295 3 if(status_reader==r_status_null)
296 3 {
297 4 i=1;
298 4 status_machine=m_status_null;
299 4 reader_1.dat=(reader_1.dat<<4) | (key&0x0000000f);
300 4 while(flag_key_active)
301 4 {
C51 COMPILER V8.02 KEY 01/06/2009 14:07:32 PAGE 6
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -