📄 g19264.lst
字号:
C51 COMPILER V7.02b G19264 04/19/2008 20:43:15 PAGE 13
736 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
737 2 b=keybuf;
738 2 Delay100ms(3);
739 2 col=172,row=2;
740 2 Putedot(10);//显示空格
741 2 Delay100ms(3);
742 2 keydn=0;
743 2 }
744 1 WDT_CONTR=WDT;//启动看门狗
745 1 ahour3=a*10+b;
746 1 col=172,row=2;
747 1 Putedot(b);//显示分的低位
748 1 enterflg=0;
749 1
750 1 a=aminute3/10;b=aminute3%10;
751 1 keybuf=a;
752 1 while(enterflg==0)
753 1 {
754 2 col=150,row=2;
755 2 Putedot(3);//显示年的低位
756 2
757 2 col=164,row=2;
758 2 Putedot(a);//显示年的低位
759 2 readkey();
760 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
761 2 a=keybuf;
762 2 Delay100ms(3);
763 2 col=164,row=2;
764 2 Putedot(10);//显示空格
765 2 Delay100ms(3);
766 2 keydn=0;
767 2 }
768 1 WDT_CONTR=WDT;//启动看门狗
769 1 enterflg=0;
770 1 col=164,row=2;
771 1 Putedot(a);//显示年的高位
772 1
773 1 keybuf=b;
774 1 while(enterflg==0)
775 1 {
776 2 col=172,row=2;
777 2 Putedot(b);//显示年的低位
778 2 readkey();
779 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
780 2 b=keybuf;
781 2 Delay100ms(3);
782 2 col=172,row=2;
783 2 Putedot(10);//显示空格
784 2 Delay100ms(3);
785 2 keydn=0;
786 2 }
787 1 WDT_CONTR=WDT;//启动看门狗
788 1 aminute3=a*10+b;
789 1 col=172,row=2;
790 1 Putedot(b);//显示分的低位
791 1 enterflg=0;
792 1
793 1 a=ahour4/10;b=ahour4%10;
794 1 keybuf=a;
795 1 while(enterflg==0)
796 1 {
797 2 col=150,row=2;
C51 COMPILER V7.02b G19264 04/19/2008 20:43:15 PAGE 14
798 2 Putedot(4);//显示年的低位
799 2
800 2 col=164,row=2;
801 2 Putedot(a);//显示年的低位
802 2 readkey();
803 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
804 2 a=keybuf;
805 2 Delay100ms(3);
806 2 col=164,row=2;
807 2 Putedot(10);//显示空格
808 2 Delay100ms(3);
809 2 keydn=0;
810 2 }
811 1 WDT_CONTR=WDT;//启动看门狗
812 1 enterflg=0;
813 1 col=164,row=2;
814 1 Putedot(a);//显示年的高位
815 1
816 1 keybuf=b;
817 1 while(enterflg==0)
818 1 {
819 2 col=172,row=2;
820 2 Putedot(b);//显示年的低位
821 2 readkey();
822 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
823 2 b=keybuf;
824 2 Delay100ms(3);
825 2 col=172,row=2;
826 2 Putedot(10);//显示空格
827 2 Delay100ms(3);
828 2 keydn=0;
829 2 }
830 1 WDT_CONTR=WDT;//启动看门狗
831 1 ahour4=a*10+b;
832 1 col=172,row=2;
833 1 Putedot(b);//显示分的低位
834 1 enterflg=0;
835 1
836 1 a=aminute4/10;b=aminute4%10;
837 1 keybuf=a;
838 1 while(enterflg==0)
839 1 {
840 2 col=150,row=2;
841 2 Putedot(4);//显示年的低位
842 2
843 2 col=164,row=2;
844 2 Putedot(a);//显示年的低位
845 2 readkey();
846 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
847 2 a=keybuf;
848 2 Delay100ms(3);
849 2 col=164,row=2;
850 2 Putedot(10);//显示空格
851 2 Delay100ms(3);
852 2 keydn=0;
853 2 }
854 1 WDT_CONTR=WDT;//启动看门狗
855 1 enterflg=0;
856 1 col=164,row=2;
857 1 Putedot(a);//显示年的高位
858 1
859 1 keybuf=b;
C51 COMPILER V7.02b G19264 04/19/2008 20:43:15 PAGE 15
860 1 while(enterflg==0)
861 1 {
862 2 col=172,row=2;
863 2 Putedot(b);//显示年的低位
864 2 readkey();
865 2 if(keydn==1)WDT_CONTR=WDT;//启动看门狗
866 2 b=keybuf;
867 2 Delay100ms(3);
868 2 col=172,row=2;
869 2 Putedot(10);//显示空格
870 2 Delay100ms(3);
871 2 keydn=0;
872 2 }
873 1 WDT_CONTR=WDT;//启动看门狗
874 1 aminute4=a*10+b;
875 1 col=172,row=2;
876 1 Putedot(b);//显示分的低位
877 1 enterflg=0;
878 1
879 1 wr_time(); //写时间到8563
880 1 Lcmcls();
881 1
882 1 }
883
884 void main(void)
885 {
886 1 Delay(30);
887 1 col=0; row=0; Delay(40); /*延时大约40Ms,等待外设准备好 */
888 1 Lcminit(); /*液晶模块初始化,包括全屏幕清屏*/
889 1 Lcmcls();
890 1 read_count=0;
891 1 EA=1;TR1=1;ES=1;
892 1 init_serial();
893 1 while(1)
894 1 {
895 2 startbell();
896 2 readkey();
897 2 if((keydn==1)&(keybuf=='*')) adj_time();
898 2 rd_time(); //从时间芯片中读时间到second,minute,hour,week等变量中
899 2 time_to_byt();
900 2 dispdata(); /*第一行字符输出our friend over the world. 24字节 */
901 2 disptime();
902 2 WDT_CONTR=WDT;//启动看门狗
903 2 if(read_count==3)
904 2 { EA=0;TR1=0;ES=0;
905 3 dpcard();//显示卡号
906 3 read_count=0;
907 3 EA=1;TR1=1;ES=1;
908 3 }
909 2 if(read_count==3)
910 2 { EA=0;TR1=0;ES=0;
911 3 dpcard();//显示卡号
912 3 read_count=0;
913 3 EA=1;TR1=1;ES=1;
914 3 }
915 2
916 2 }
917 1
918 1
919 1 }
920
921
C51 COMPILER V7.02b G19264 04/19/2008 20:43:15 PAGE 16
922 /****************************************/
923 /* 一个字串的输出 */
924 /****************************************/
925 void Putstr(Uchar *puts,Uchar i)
926 {
927 1 Uchar j,X;
928 1 for (j=0;j<i;j++)
929 1 {
930 2 X = puts[j]; //X=0X80 OR 0X20
931 2 if (X&0x80)
932 2 {
933 3 Putcdot(X&0x7f); /*只保留低7位.全角字符输出*/
934 3 }
935 2 else Putedot(X-0x30); /*ascii码表从0x20开始,半角字符输出*/
936 2 }
937 1 }
938
939 /****************************************/
940 /* 半角字符点阵码数据输出 */
941 /****************************************/
942 void Putedot(Uchar Order)
943 {
944 1 Uchar i,bakerx,bakery; /*共定义4个局部变量 */
945 1 int x; /*偏移量,字符量少的可以定义为UCHAR */
946 1 bakerx = col; /*暂存x,y坐标,已备下半个字符使用 */
947 1 bakery = row;
948 1 x=Order * 0x10; /*半角字符,每个字符16字节 */
949 1 /*上半个字符输出,8列 */
950 1 for(i=0;i<8;i++)
951 1 {
952 2 cbyte = Ezk[x]; /*取点阵码,rom数组 */
953 2 Wrdata(cbyte); /*写输出一字节 */
954 2 x++;
955 2 col++;
956 2 if (col==LCMLIMIT){col=0;row=row+2;}; /*下一列,如果列越界换行*/
957 2 if (row>7) row=0; /*如果行越界,返回首行 */
958 2 } /*上半个字符输出结束 */
959 1
960 1 col = bakerx; /*列对齐 */
961 1 row = bakery+1; /*指向下半个字符行 */
962 1 /*下半个字符输出,8列 */
963 1 for(i=0;i<8;i++)
964 1 {
965 2 cbyte = Ezk[x]; /*取点阵码 */
966 2 Wrdata(cbyte); /*写输出一字节 */
967 2 x++;
968 2 col++;
969 2 if (col==LCMLIMIT){col=0;row=row+2;}; /*下一列,如果列越界换行*/
970 2 if (row>7) row=1; /*如果行越界,返回首行 */
971 2 } /*下半个字符输出结束 */
972 1 row=bakery;
973 1 } /*整个字符输出结束 */
974
975 void Putedotbig(Uchar Order)
976 {
977 1 Uchar i,bakerx,bakery; /*共定义4个局部变量 */
978 1 int x; /*偏移量,字符量少的可以定义为UCHAR */
979 1 bakerx = col; /*暂存x,y坐标,已备下半个字符使用 */
980 1 bakery = row;
981 1 x=Order * 144; /*半角字符,每个字符16字节 */
982 1 /*上半个字符输出,8列 */
983 1 for(i=0;i<24;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -