?? dy1clock_v1.01.lst
字號:
200 1 }
201 /**********************************************************************************************/
202
203 void turn(uchar i){
204 1 switch (i){//
205 2 case 1://
206 2 display1();
207 2 break;//
208 2 case 2://
209 2 display2();
210 2 break;//
211 2 case 3://
212 2 display3();
213 2 break;//
214 2 case 4://
215 2 display4();
216 2 break;//
217 2 case 5://
218 2 display5();
219 2 break;//
220 2 case 6://
221 2 display6();
222 2 break;//
223 2 case 7://
224 2 display7();
225 2 break;//
226 2 case 8://
227 2 display8();
228 2 break;//
229 2 case 9://
230 2 display9();
231 2 break;//
232 2 case 0://
233 2 display0();
234 2 break;//
235 2 }
236 1 }
237 /**********************************************************************************************/
238
239 void main(void){
240 1 TMOD = 0x11; // 定時/計數器0,1工作于方式1
241 1 TH0 = 0xd8; // 預置定時常數55536(d8f0),產生10ms時基信號
C51 COMPILER V6.12 DY1CLOCK_V1_01 04/28/2009 20:48:57 PAGE 5
242 1 TL0 = 0xf0;
243 1 EA = 1; // 開總中斷
244 1 ET0 = 1; // 定時/計數器0允許中斷
245 1 TR0 = 1; // 開閉定時/計數器0
246 1 while(1){
247 2
248 2 unsigned char a,b;
249 2
250 2 if(MENU == 0){
251 3 SP_DIS = 150;
252 3 turn(hou/10);
253 3 delay_P2();
254 3 displayN();
255 3 delay_P2();
256 3 turn(hou%10);
257 3 delay_P2();
258 3 displayN();
259 3 delay_P2();
260 3 ledb2 = 0; ledc2 = 0;
261 3 delay_ms(SP4);
262 3 ledb2 = 1; ledc2 = 1;
263 3 delay_P2();
264 3 turn(min/10);
265 3 delay_P2();
266 3 displayN();
267 3 delay_P2();
268 3 turn(min%10);
269 3 delay_P2();
270 3 displayN();
271 3
272 3 if(key1 == 0 && key2 == 1){
273 4 delay_ms(200);//去抖
274 4 if(key1 == 0 && key2 == 1){
275 5 MENU = 1;
276 5 while(key1 == 0 || key2 == 0){ ledg1 = 0;ledg2 = 0; }
277 5 }
278 4 }else{
279 4 delay_ms(SP3);
280 4 }
281 3 }
282 2 /**********************************************************************************************/
283 2
284 2 if(MENU == 1){
285 3 SP_DIS = 1;
286 3 turn(hou/10);
287 3 displayN2();
288 3 if(key1 == 0 && key2 == 1){
289 4 delay_ms(200);//去抖
290 4 if(key1 == 0 && key2 == 1){
291 5 MENU = 2;
292 5 }
293 4 }
294 3 if(key2 == 0 && key1 == 1){
295 4 delay_ms(200);//去抖
296 4 if(key2 == 0 && key1 == 1){
297 5 a = hou/10;
298 5 b = hou%10;
299 5 a++;
300 5 if(a > 2){
301 6 a = 0;
302 6 }
303 5 hou = a*10 + b;
C51 COMPILER V6.12 DY1CLOCK_V1_01 04/28/2009 20:48:57 PAGE 6
304 5 }
305 4 }
306 3 while(key1 == 0 || key2 == 0){ }
307 3 }
308 2 /**********************************************************************************************/
309 2
310 2 if(MENU == 2){
311 3 turn(hou%10);
312 3 displayN2();
313 3 if(key1 == 0 && key2 == 1){
314 4 delay_ms(200);//去抖
315 4 if(key1 == 0 && key2 == 1){
316 5 MENU = 3;
317 5 }
318 4 }
319 3 if(key2 == 0 && key1 == 1){
320 4 delay_ms(200);//去抖
321 4 if(key2 == 0 && key1 == 1){
322 5 a = hou/10;
323 5 b = hou%10;
324 5 b++;
325 5 if(b > 9){
326 6 b = 0;
327 6 }
328 5 if(a > 1){
329 6 if(b > 3){
330 7 b = 0;
331 7 }
332 6 }
333 5 hou = a*10 + b;
334 5 }
335 4 }
336 3 while(key1 == 0 || key2 == 0){ }
337 3 }
338 2 /**********************************************************************************************/
339 2
340 2 if(MENU == 3){
341 3 turn(min/10);
342 3 displayN2();
343 3 if(key1 == 0 && key2 == 1){
344 4 delay_ms(200);//去抖
345 4 if(key1 == 0 && key2 == 1){
346 5 MENU = 4;
347 5 }
348 4 }
349 3 if(key2 == 0 && key1 == 1){
350 4 delay_ms(200);//去抖
351 4 if(key2 == 0 && key1 == 1){
352 5 a = min/10;
353 5 b = min%10;
354 5 a++;
355 5 if(a > 5){
356 6 a = 0;
357 6 }
358 5 min = a*10 + b;
359 5 }
360 4 }
361 3 while(key1 == 0 || key2 == 0){ }
362 3 }
363 2 /**********************************************************************************************/
364 2
365 2 if(MENU == 4){
C51 COMPILER V6.12 DY1CLOCK_V1_01 04/28/2009 20:48:57 PAGE 7
366 3 turn(min%10);
367 3 displayN2();
368 3 if(key1 == 0 && key2 == 1){
369 4 delay_ms(200);//去抖
370 4 if(key1 == 0 && key2 == 1){
371 5 MENU = 0;
372 5 }
373 4 }
374 3 if(key2 == 0 && key1 == 1){
375 4 delay_ms(200);//去抖
376 4 if(key2 == 0 && key1 == 1){
377 5 a = min/10;
378 5 b = min%10;
379 5 b++;
380 5 if(b > 9){
381 6 b = 0;
382 6 }
383 5 min = a*10 + b;
384 5 sec = 0;//調時完成后把秒清0
385 5 }
386 4 }
387 3 while(key1 == 0 || key2 == 0){ }
388 3 }
389 2 }
390 1 }
391 /**********************************************************************************************/
392
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1247 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -