📄 lcd12864.lst
字号:
602 3 {
603 4 case 1: adjust_year();break;
604 4 case 2: adjust_mon(); break;
605 4 case 3: adjust_day(); break;
606 4 case 4: adjust_hour();break;
607 4 case 5: adjust_min(); break;
608 4 case 6: adjust_week(); break;
609 4 default:break;
610 4 }
611 3 // update();
612 3 while(KeyBR==0);
613 3 delay(1000);
C51 COMPILER V7.09 LCD12864 11/27/2008 20:04:08 PAGE 11
614 3
615 3 }
616 2
617 2 if(KeyHR==0)
618 2 {
619 3 delay(1000);
620 3 if(type==6)type=0;
621 3 type++;
622 3 if(type==1) {LCD_WriteStr(1,4,"[+] 调整年份 [-]");}
623 3 if(type==2) {LCD_WriteStr(1,4,"[+] 调整月份 [-]"); }
624 3 if(type==3) {LCD_WriteStr(1,4,"[+] 调整日份 [-]");}
625 3 if(type==4) {LCD_WriteStr(1,4,"[+] 调整小时 [-]");}
626 3 if(type==5) {LCD_WriteStr(1,4,"[+] 调整分钟 [-]"); }
627 3 if(type==6) {LCD_WriteStr(1,4,"[+] 调整星期 [-]"); }
628 3
629 3 while(KeyHR==0);
630 3 delay(1000);
631 3
632 3
633 3 }
634 2
635 2
636 2 }
637 1 adjust=1;
638 1 type=0x01;
639 1 LCD_WriteStr(1,1,"[Dis] [Set]");
640 1 year=BCD_Coverter(year);
641 1 day=BCD_Coverter(day);
642 1 hour=BCD_Coverter(hour);
643 1 min=BCD_Coverter(min);
644 1 sec=BCD_Coverter(sec);
645 1 write_clocks();
646 1 update();
647 1 }
648
649 void KeyCheck(void)
650 {
651 1 // unsigned char temp;
652 1 if(KeyHL==0)
653 1 {
654 2 delay(1000);
655 2 if(KeyHL==0)
656 2 {
657 3 write_clock(0x8e,0x00);
658 3 write_clock(0x80,0x80);
659 3 write_clock(0x8e,0x80);
660 3 adjust_time();
661 3 }
662 2 }
663 1 }
664
665
666
667
668 void LCD_Week(void)
669 {
670 1 switch(week)
671 1 {
672 2 case 1:LCD_WriteStr(8,3,"一");break;
673 2 case 2:LCD_WriteStr(8,3,"二");break;
674 2 case 3:LCD_WriteStr(8,3,"三");break;
675 2 case 4:LCD_WriteStr(8,3,"四");break;
C51 COMPILER V7.09 LCD12864 11/27/2008 20:04:08 PAGE 12
676 2 case 5:LCD_WriteStr(8,3,"五");break;
677 2 case 6:LCD_WriteStr(8,3,"六");break;
678 2 case 7:LCD_WriteStr(8,3,"日");break;
679 2 }
680 1 }
681
682
683 void days (viod)
684 { //公历节日数据库
685 1
686 1 unsigned char m=0;
687 1
688 1 if ( mon == 0x01 && day == 1 ){ LCD_WriteStr(1,4,"Happy New Year!!"); m=1;}//1月
689 1 if ( mon == 0x01 && day == 28 ){ LCD_WriteStr(1,4," 世界麻风日 ");m=1; }
690 1
691 1 if ( mon == 0x02 && day == 0x02 ){ LCD_WriteStr(1,4," 世界湿地日 "); m=1;}//2月
692 1 if ( mon == 0x02 && day == 13 ){ LCD_WriteStr(1,4," 明天情人节了 "); m=1;}
693 1 if ( mon == 0x02 && day == 14 ){ LCD_WriteStr(1,4," 今天是情人节 "); m=1;}
694 1
695 1 if ( mon == 0x03 && day == 0x01 ){ LCD_WriteStr(1,4," 国际海豹日 "); m=1;}//3月
696 1 if ( mon == 0x03 && day == 0x03 ){ LCD_WriteStr(1,4," 全国爱耳日 "); m=1;}
697 1 if ( mon == 0x03 && day == 0x08 ){ LCD_WriteStr(1,4," 3.8妇女节 "); m=1;}
698 1 if ( mon == 0x03 && day == 12 ){ LCD_WriteStr(1,4," 植树节 "); m=1;}
699 1 if ( mon == 0x03 && day == 14 ){ LCD_WriteStr(1,4," 国际警察日 "); m=1;}
700 1 if ( mon == 0x03 && day == 15 ){ LCD_WriteStr(1,4," 消费者权益日 "); m=1;}
701 1 if ( mon == 0x03 && day == 17 ){ LCD_WriteStr(1,4," 国际航海日 "); m=1;}
702 1 if ( mon == 0x03 && day == 21 ){ LCD_WriteStr(1,4," 世界森林日 "); m=1;}
703 1 if ( mon == 0x03 && day == 22 ){ LCD_WriteStr(1,4," 世界水日 "); m=1;}
704 1 if ( mon == 0x03 && day == 23 ){ LCD_WriteStr(1,4," 世界气象日 "); m=1;}
705 1 if ( mon == 0x03 && day == 24 ){ LCD_WriteStr(1,4,"世界防治结核病日"); m=1;}
706 1
707 1 if ( mon == 0x04 && day == 0x01 ){ LCD_WriteStr(1,4,"愚人节 小心上当"); m=1;}//4
708 1 if ( mon == 0x04 && day == 0x07 ){ LCD_WriteStr(1,4," 世界卫生日 ");m=1; }
709 1 if ( mon == 0x04 && day == 0x08 ){ LCD_WriteStr(1,4," 复活节 ");m=1; }
710 1 if ( mon == 0x04 && day == 13 ){ LCD_WriteStr(1,4," 黑色星期五 ");m=1;}
711 1
712 1 if ( mon == 0x05 && day == 0x01 ){ LCD_WriteStr(1,4," 劳动节 放假 "); m=1;}//5
713 1 if ( mon == 0x05 && day == 4 ){ LCD_WriteStr(1,4," 青年节 ");m=1;}
714 1 if ( mon == 0x05 && day == 0x08 ){ LCD_WriteStr(1,4," 世界红十字日 "); m=1;}
715 1 if ( mon == 0x05 && day == 12 ){ LCD_WriteStr(1,4," 国际护士节 "); m=1;}
716 1 if ( mon == 0x05 && day == 0x05 ){ LCD_WriteStr(1,4,"近日注意母亲节 "); m=1;}
717 1 if ( mon == 0x05 && day == 15 ){ LCD_WriteStr(1,4," 国际家庭日 "); m=1;}
718 1 if ( mon == 0x05 && day == 31 ){ LCD_WriteStr(1,4," 世界无烟日 ");m=1; }
719 1
720 1 if ( mon == 0x06 && day == 0x01 ){ LCD_WriteStr(1,4," 国际儿童节 "); m=1;}//6
721 1 if ( mon == 0x06 && day == 0x05 ){ LCD_WriteStr(1,4," 世界环境日 "); m=1;}
722 1 if ( mon == 0x06 && day == 26 ){ LCD_WriteStr(1,4," 国际禁毒日 "); m=1;}
723 1 if ( mon == 0x06 && day == 0x06 ){ LCD_WriteStr(1,4," 全国爱眼日 "); m=1;}
724 1 if ( mon == 0x06 && day == 13 ){ LCD_WriteStr(1,4,"近日注意父亲节 "); m=1;}
725 1 if ( mon == 0x06 && day == 15 ){ LCD_WriteStr(1,4,"近日注意父亲节 "); m=1;}
726 1
727 1 if ( mon == 0x07 && day == 0x01 ){ LCD_WriteStr(1,4,"香港回归记念日 ");m=1; }//7
728 1 if ( mon == 0x07 && day == 0x07 ){ LCD_WriteStr(1,4,"抗日战争记念日 "); m=1;}
729 1 if ( mon == 0x07 && day == 11 ){ LCD_WriteStr(1,4," 世界人口日 "); m=1;}
730 1
731 1 if ( mon == 0x08 && day == 0x01 ){ LCD_WriteStr(1,4," 八一建军节 "); m=1;}//8
732 1 if ( mon == 0x08 && day == 0x08 ){ LCD_WriteStr(1,4," 中国男子节 "); m=1;}
733 1 if ( mon == 0x08 && day== 15 ){ LCD_WriteStr(1,4,"抗战胜利记念日 "); m=1;}
734 1
735 1 if ( mon == 0x09 && day == 10 ){ LCD_WriteStr(1,4," 中国教师节 ");m=1; }//9
736 1 if ( mon == 0x09 && day == 18 ){LCD_WriteStr(1,4,"九·一八事变记念");m=1; }
737 1 if ( mon == 0x09 && day == 20 ){ LCD_WriteStr(1,4," 国际爱牙日 "); m=1;}
C51 COMPILER V7.09 LCD12864 11/27/2008 20:04:08 PAGE 13
738 1 if ( mon == 0x09 && day == 27 ){ LCD_WriteStr(1,4," 世界旅游日 "); m=1;}
739 1
740 1 if ( mon == 10 && day == 1 ){ LCD_WriteStr(1,4," 中国国庆节 "); m=1;}//10
741 1 if ( mon == 10 && day == 4 ){ LCD_WriteStr(1,4," 世界动物日 "); m=1;}
742 1 if ( mon == 10 && day == 24 ){ LCD_WriteStr(1,4," 联合国日 "); m=1;}
743 1 if ( mon == 10 && day == 12 ){ LCD_WriteStr(1,4,"明天国际教师节 ");m=1; }
744 1 if ( mon == 10 && day == 13 ){ LCD_WriteStr(1,4," 国际教师节 "); m=1;}
745 1
746 1 if ( mon == 11 && day == 10 ){ LCD_WriteStr(1,4," 世界青年节 ");m=1; }//11
747 1 if ( mon == 11 && week == 4 && day >= 22 && day <= 28){ LCD_WriteStr(1,4," 今天感恩节 ");m=1;}
748 1 if ( mon == 11 && day == 17 ){ LCD_WriteStr(1,4," 世界学生节 "); m=1;}
749 1
750 1 if ( mon == 12 && day == 1 ){ LCD_WriteStr(1,4," 世界艾滋病日 "); m=1;}//12
751 1 if ( mon == 12 && day == 23 ){ LCD_WriteStr(1,4," 明晚平安夜 "); m=1;}
752 1 if ( mon == 12 && day == 24 ){ LCD_WriteStr(1,4," 今晚平安夜 "); m=1;}
753 1 if ( mon == 12 && day == 25 ){ LCD_WriteStr(1,4," 圣诞快乐 "); m=1;}
754 1 if ( mon == 12 && day == 31 ){ LCD_WriteStr(1,4," 明日新年 "); m=1;}
755 1
756 1 if(m==0)
757 1 {
758 2 if ( hour >= 0x04 && hour < 0x06 ){ LCD_WriteStr(1,4,"★★__▲▲__凌晨"); }
759 2 if ( hour >= 0x06 && hour < 0x08 ){ LCD_WriteStr(1,4,"☆○__▲△__早晨"); }
760 2 if ( hour >= 0x08 && hour < 12 ){ LCD_WriteStr(1,4,"__●__▲▲__上午"); }
761 2 if ( hour == 12) { LCD_WriteStr(1,4,"____▲●▲__中午"); }
762 2 if ( hour >= 13 && hour < 18 ){ LCD_WriteStr(1,4,"__▲▲__●__下午"); }
763 2 if ( hour >= 18 && hour < 22 ){ LCD_WriteStr(1,4,"△▲__●☆__晚上"); }
764 2 if ( hour >= 22 && hour <= 23 ){ LCD_WriteStr(1,4,"△▲__★☆__夜里"); }
765 2 if ( hour >= 0x00 && hour < 0x04 ){ LCD_WriteStr(1,4,"__★▲▲★__深夜"); }
766 2 }
767 1 }
768 void update(void)
769 {
770 1 unsigned char hour_temp;
771 1 hour_temp=hour;
772 1 read_clocks();
773 1 if(hour_temp==23&&hour==4)
774 1 {
775 2 write_clock(0x8e,0x00);
776 2 write_clock(0x84,0x00);
777 2 write_clock(0x8e,0x80);
778 2 }
779 1 read_clocks();
780 1 // year=read_clock(0x8d);
781 1 // if(0x00<=year&&year<=0x99)
782 1 // {
783 1 LCD_WriteStr(4,1,"20");
784 1 LCD_data((year/10)+0x30);
785 1 LCD_data((year%10)+0x30);
786 1 // }
787 1 // mon=read_clock(0x89);
788 1 //if(mon>=0x01&&mon<=0x12)
789 1 // {
790 1 LCD_WriteData(5,2,mon/10+0x30);
791 1 LCD_data(mon%10+0x30);
792 1 LCD_WriteStr(6,2,"月");
793 1 // }
794 1
795 1 // day=read_clock(0x87);
796 1 // if(day>=0x00&&day<=0x31)
797 1 // {
798 1 LCD_WriteData(7,2,day/10+0x30);
799 1 LCD_data(day%10+0x30);
C51 COMPILER V7.09 LCD12864 11/27/2008 20:04:08 PAGE 14
800 1 LCD_WriteStr(8,2,"日");
801 1 // }
802 1
803 1 // min=read_clock(0x83);
804 1 // hour=read_clock(0x85);
805 1 // hour=read_clock(0x85);
806 1
807 1
808 1 // if(hour>=0x00&&hour<=0x24)
809 1 // {
810 1 LCD_WriteData(1,3,(hour/10)+0x30);
811 1 LCD_data((hour%10)+0x30);
812 1 // }
813 1
814 1 LCD_data(0x3a);
815 1
816 1
817 1
818 1 // if(min>=0x00&&min<=0x59)
819 1 // {
820 1
821 1 LCD_data((min/10)+0x30);
822 1 LCD_data((min%10)+0x30);
823 1 // }
824 1
825 1 LCD_data(0x3a);
826 1 LCD_WriteStr(6,3,"星期");
827 1 // week=read_clock(0x8b);
828 1 LCD_Week();
829 1
830 1 // if(sec==0x00) update();
831 1 //LCD_WriteData(4,3,(sec/16)+0x30);
832 1 // LCD_data((sec%16)+0x30);
833 1 days();
*** WARNING C209 IN LINE 833 OF LCD12864.C: '_days': too few actual parameters
834 1 }
835
836 void main()
837 {
838 1
839 1 LCD_init();
840 1 init_1302();
841 1 getTemValue(); //ds18b20初始化
842 1
843 1 //EX0=1; //开外部中断
844 1 // EA=1;
845 1 power=1;
846 1 LCD_WriteStr(1,1,"[Dis] [Set]");
847 1
848 1 update();
849 1 while(1)
850 1 {
851 2 KeyCheck();
852 2 sec=read_clock(0x81);
853 2
854 2 // if(0x00<=sec&&sec<=0x59)
855 2 // {
856 2 if(sec==0x00) update();
857 2 LCD_WriteData(4,3,(sec/10)+0x30);
858 2 LCD_data((sec%10)+0x30);
859 2 // }
860 2
C51 COMPILER V7.09 LCD12864 11/27/2008 20:04:08 PAGE 15
861 2
862 2
863 2 getTemValue();
864 2 TEMP_BUFF[0]=TMPH/10+0x30;
865 2 TEMP_BUFF[1]=TMPH%10+0x30;
866 2 TEMP_BUFF[2]='.';
867 2 TEMP_BUFF[3]=TMPL+0x30;
868 2 TEMP_BUFF[4]='\0';
869 2 LCD_WriteStr(1,2,&TEMP_BUFF);
870 2 LCD_WriteStr(3,2,"℃");
871 2 }
872 1
873 1 }
874 /*void gas_int(void) interrupt 0
875 {
876 EX0 =0;
877 Beep = 0;
878 power = 1;
879 LCD_WriteStr(1,2," 有煤气! ");
880 delay(1000);
881 Beep = 1;
882 delay(1000);
883 EX0 = 1;
884 }*/
885
886
887
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3876 ----
CONSTANT SIZE = 1238 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 19 13
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -