📄 display.lst
字号:
310 void Time_Data(void)
311 {
312 1 unsigned char hour,sec,min;
313 1 unsigned char year,mon,date;
314 1 /**********************************/
315 1 hour = (LED_Time[1]-0x30)*10+(LED_Time[2]-0x30);
316 1 sec = (LED_Time[3]-0x30)*10+(LED_Time[4]-0x30);
317 1 min = (LED_Time[5]-0x30)*10+(LED_Time[6]-0x30);
318 1 year = (LED_Date[1]-0x30)*10+(LED_Date[2]-0x30);
319 1 mon = (LED_Date[3]-0x30)*10+(LED_Date[4]-0x30);
320 1 date = (LED_Date[5]-0x30)*10+(LED_Date[6]-0x30);
321 1 /*********************************/
322 1 if(Count_1ms >= 1000)
323 1 {
324 2 Count_1ms = Count_1ms - 1000;
325 2 min++;
326 2 }
327 1 if(min > 59)
328 1 {
329 2 min = 0;
330 2 sec ++;
331 2 }
332 1 if(sec > 59)
333 1 {
334 2 sec = 0;
335 2 hour++;
336 2 }
337 1 if(hour > 23)
338 1 {
339 2 hour = 0;
340 2 date ++;
341 2 }
342 1 switch(mon)
343 1 {
344 2 case 1:
345 2 {
346 3 if(date>31)
347 3 {
348 4 mon++;
349 4 date=1;
350 4 }
351 3 break;
352 3 }
353 2 case 2:
354 2 {
355 3 if(year%4==0)
356 3 {
357 4 if(date>29)
358 4 {
359 5 mon++;
360 5 date=1;
361 5 }
362 4 }
363 3 else
364 3 {
365 4 if(date>28)
C51 COMPILER V7.08 DISPLAY 06/07/2008 20:06:02 PAGE 7
366 4 {
367 5 mon++;
368 5 date = 1;
369 5 }
370 4 }
371 3 break;
372 3 }
373 2 case 3:
374 2 {
375 3 if(date>31)
376 3 {
377 4 mon++;
378 4 date=1;
379 4 }
380 3 break;
381 3 }
382 2 case 4:
383 2 {
384 3 if(date>30)
385 3 {
386 4 mon++;
387 4 date=1;
388 4 }
389 3 break;
390 3 }
391 2 case 5:
392 2 {
393 3 if(date>31)
394 3 {
395 4 mon++;
396 4 date=1;
397 4 }
398 3 break;
399 3 }
400 2 case 6:
401 2 {
402 3 if(date>30)
403 3 {
404 4 mon++;
405 4 date=1;
406 4 }
407 3 break;
408 3 }
409 2 case 7:
410 2 {
411 3 if(date>31)
412 3 {
413 4 mon++;
414 4 date=1;
415 4 }
416 3 break;
417 3 }
418 2 case 8:
419 2 {
420 3 if(date>31)
421 3 {
422 4 mon++;
423 4 date=1;
424 4 }
425 3 break;
426 3 }
427 2 case 9:
C51 COMPILER V7.08 DISPLAY 06/07/2008 20:06:02 PAGE 8
428 2 {
429 3 if(date>30)
430 3 {
431 4 mon++;
432 4 date=1;
433 4 }
434 3 break;
435 3 }
436 2 case 10:
437 2 {
438 3 if(date>31)
439 3 {
440 4 mon++;
441 4 date=1;
442 4 }
443 3 break;
444 3 }
445 2 case 11:
446 2 {
447 3 if(date>30)
448 3 {
449 4 mon++;
450 4 date=1;
451 4 }
452 3 break;
453 3 }
454 2 case 12:
455 2 {
456 3 if(date>31)
457 3 {
458 4 mon++;
459 4 date=1;
460 4 }
461 3 break;
462 3 }
463 2 default: break;
464 2 }
465 1 if(mon>12)
466 1 {
467 2 mon=1;
468 2 year++;
469 2 }
470 1 /**********************************/
471 1 LED_Time[1] = hour/10+0x30;
472 1 LED_Time[2] = hour%10+0x30;
473 1 LED_Time[3] = sec/10+0x30;
474 1 LED_Time[4] = sec%10+0x30;
475 1 LED_Time[5] = min/10+0x30;
476 1 LED_Time[6] = min%10+0x30;
477 1
478 1 LED_Date[1] = year/10+0x30;
479 1 LED_Date[2] = year%10+0x30;
480 1 LED_Date[3] = mon/10+0x30;
481 1 LED_Date[4] = mon%10+0x30;
482 1 LED_Date[5] = date/10+0x30;
483 1 LED_Date[6] = date%10+0x30;
484 1 /*********************************/
485 1 }
486 /****************************************************/
487 /*主函数入口*/
488 /****************************************************/
489 void main()
C51 COMPILER V7.08 DISPLAY 06/07/2008 20:06:02 PAGE 9
490 {
491 1 unsigned char i;
492 1 bit RS_Flag,Date_Flag;
493 1 unsigned int LED_count,Display_count;
494 1
495 1 STATUS = 0x00;
496 1 Rx_Count = 0x00;
497 1 Tx_Count = 0x00;
498 1 Tx_Length = 0x00;
499 1 Timeout = 0x00;
500 1 Count_1ms = 0x00;
501 1
502 1 Buzzer = 1;
503 1 IIC_DI = 0;
504 1 IIC_CLK = 0;
505 1 LED = 0;
506 1 Flag = 1;
507 1 RS_Flag = 0;
508 1 Date_Flag = 0;
509 1
510 1 Init();
511 1 LED_Display_Init();
512 1 Tx_Length = 14;
513 1 /*************RS初始化*******************/
514 1 for(i=0;i<15;i++)
515 1 {
516 2 Tx_Buffer[i] = string[i];
517 2 }
518 1 Tx_Count = 0x00;
519 1 SBUF = Tx_Buffer[0];
520 1 STATUS = Sending;
521 1 /***************************************/
522 1 while(1)
523 1 {
524 2 switch(STATUS)
525 2 {
526 3 case Data:
527 3 {
528 4 RS_Data();
529 4 STATUS = Idle;
530 4 RS_Flag = 1;
531 4 break;
532 4 }
533 3 case Idle:
534 3 {
535 4 if(RS_Flag)
536 4 {
537 5 Tx_Count = 0x00;
538 5 SBUF = Tx_Buffer[0];
539 5 STATUS = Sending;
540 5 RS_Flag = 0;
541 5 }
542 4 break;
543 4 }
544 3 default: break;
545 3 }
546 2 /**************************************************/
547 2 if(Date_Flag == 1)
548 2 {
549 3 LED = 0;
550 3 }
551 2 else
C51 COMPILER V7.08 DISPLAY 06/07/2008 20:06:02 PAGE 10
552 2 {
553 3 if(LED_count<10)
554 3 {
555 4 LED = 0;
556 4 }
557 3 else if(LED_count <20)
558 3 {
559 4 LED = 1;
560 4 }
561 3 else LED_count = 0;
562 3 LED_count++;
563 3 }
564 2 /**************************************************/
565 2 Key = P1;
566 2 if( (Key & 0x80) == 0)
567 2 {
568 3 //deplay();
569 3 deplay();
570 3 Key = P1;
571 3 if( (Key & 0x80) == 0)
572 3 {
573 4 if(Flag == 1)
574 4 {
575 5 Flag = 0;
576 5 }
577 4 else Flag = 1;
578 4 while( (Key & 0x80) == 0)
579 4 {
580 5 Key = P1;
581 5 }
582 4 }
583 3 }
584 2 Buzzer = Flag;
585 2 /********************************************************/
586 2 deplay();
587 2 Time_Data();
588 2 if(Display_count<100)
589 2 {
590 3
591 3 LED_display_Date();
592 3 if(!Date_Flag)
593 3 {
594 4 write_LED(LED_Disp[0],LED_Disp[1],LED_Disp[2],
595 4 LED_Disp[3],LED_Disp[4],LED_Disp[5],LED_Disp[6]);
596 4 Date_Flag = 1;
597 4 }
598 3
599 3 }
600 2 else if(Display_count <1000)
601 2 {
602 3 LED_display_Time();
603 3 write_LED(LED_Disp[0],LED_Disp[1],LED_Disp[2],
604 3 LED_Disp[3],LED_Disp[4],LED_Disp[5],LED_Disp[6]);
605 3 Date_Flag = 0;
606 3
607 3 }
608 2 else Display_count = 0;
609 2 Display_count++;
610 2 }
611 1 }
C51 COMPILER V7.08 DISPLAY 06/07/2008 20:06:02 PAGE 11
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1315 ----
CONSTANT SIZE = 88 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 62 16
IDATA SIZE = ---- ----
BIT SIZE = 1 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -