📄 key_scan.lst
字号:
143 4 }
144 3 break;
145 3 }
146 2 break;
147 2 case 0xfb ://调节亮度键
148 2 key++;
149 2 if(key==8)key=0;
150 2 break;
151 2 case 0xf7 ://增加键
152 2 Key45_v++;
153 2 if(Key45_v==10)Key45_v=0;
154 2 break;
155 2 case 0xef ://减少键
156 2 Key45_v--;
157 2 if(Key45_v==-1)Key45_v=9;
158 2 break;
159 2 }
160 1 }
161
162 void scan_key()
163 {
164 1 switch(Keystate)
165 1 {
166 2 case KEY_IDEL :
167 2 Key_v=P3;
168 2 if(Key_v!=KEY_STATE)
169 2 {
170 3 Keystate=KEY_DELAY;
171 3 KeyDelaytime=0;
172 3 P3=0xff;
173 3 }
174 2 break;
175 2 case KEY_DELAY :
176 2 if(KeyDelaytime>=KEY_DELAY_TIME)
177 2 {
178 3 P3=0xff;
179 3 Key_v=P3;
C51 COMPILER V7.08 KEY_SCAN 04/18/2008 23:24:27 PAGE 4
180 3 if(Key_v!=KEY_STATE)
181 3 {
182 4 key_pro(Key_v);
183 4 Keystate=WAIT_KEY_OPEN;
184 4 }
185 3 else
186 3 {
187 4 Keystate=KEY_IDEL;
188 4 }
189 3 }
190 2 break;
191 2 case WAIT_KEY_OPEN :
192 2 P3=0xff;
193 2 Key_v=P3;
194 2 if(Key_v==KEY_STATE)Keystate=KEY_IDEL;
195 2 break;
196 2 }
197 1 }
198
199
200
201 int main()
202 {
203 1 // unsigned char min_low,min_high,hrs_low,hrs_high;
204 1 unsigned char min_lowtemp,min_hightemp,hrs_lowtemp,hrs_hightemp;
205 1 P0 = 0xff;
206 1 P2 = 0xff;
207 1 TMOD = 0x01;
208 1 TH0 = 0xfe;
209 1 TL0 = 0x0c;
210 1 IE = 0x82;
211 1 flag=0;
212 1 key=0;
213 1 alarm_disp_contol=0;
214 1 BEEP=0;
215 1 Key45_v=0;
216 1 led_control=0;
217 1 alarm_conter=0;
218 1 Keystate=KEY_IDEL;
219 1 Machine_State=DISP_TIME;
220 1 TR0=1;
221 1 while(1)
222 1 {
223 2 scan_key();
224 2
225 2 switch(Machine_State)
226 2 {
227 3 case DISP_TIME :
228 3 disp_time();
229 3 for(i=0;i<alarm_conter;i++)
*** ERROR C202 IN LINE 229 OF KEY_SCAN.C: 'i': undefined identifier
230 3 {
231 4 if(Min==alarm_time[i][0]&&Hrs==alarm_time[i][1])
*** ERROR C202 IN LINE 231 OF KEY_SCAN.C: 'i': undefined identifier
232 4 {
233 5 BEEP=1;
234 5 }
235 4 else
236 4 {
237 5 BEEP=0;
238 5 }
239 4 }
C51 COMPILER V7.08 KEY_SCAN 04/18/2008 23:24:27 PAGE 5
240 3 break;
241 3 case SET_TIME:
242 3 led_buf[led_control]=zimo[Key45_v];
243 3 break;
244 3 case SET_ALARM_TIME:
245 3 led_buf[led_control]=zimo[Key45_v];
246 3 break;
247 3 case DISP_ALARM_TIME:
248 3 led_buf[4]=zimo[alarm_disp_contol+1];
249 3 min_hightemp=(alarm_time[alarm_disp_contol][0]&0xf0)>>4;
250 3 min_lowtemp=alarm_time[alarm_disp_contol][0]&0x0f;
251 3 hrs_hightemp=(alarm_time[alarm_disp_contol][1]&0xf0)>>4;
252 3 hrs_lowtemp=alarm_time[alarm_disp_contol][1]&0x0f;
253 3 led_buf[3]=zimo[hrs_hightemp];
254 3 led_buf[2]=zimo[hrs_lowtemp];
255 3 led_buf[1]=zimo[min_hightemp];
256 3 led_buf[0]=zimo[min_lowtemp];
257 3 break;
258 3 }
259 2 }
260 1 }
261
262 void timer0(void) interrupt 1
263 {
264 1 TH0=0xfe;
265 1 TL0=0x0c;
266 1 KeyDelaytime++;
267 1 time_base++;
268 1 if(flag<key+1)
269 1 {
270 2 P0=led_buf[n];
271 2 P2=disflag[n];
272 2 }
273 1 else
274 1 {
275 2 P2=0x00;
276 2 P0=0;
277 2 }
278 1 flag++;
279 1 if(flag==8)
280 1 {
281 2 n++;
282 2 if(n==6)
283 2 {
284 3 n=0;
285 3 }
286 2 flag=0;
287 2 }
288 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -