📄 zdbwnl.lst
字号:
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 13
699 3 Disp_Digit(1,56,space); //显示空格
700 3 Mcs=0;Scs=1;
701 3 Disp_Digit(1,0,space);
702 3 }
703 2 }
704 1 else
705 1 {
706 2 d=read_clock(0x89);//读月
707 2 e=d;
708 2 d=d>>4;
709 2 e=e&0x0f;
710 2 Mcs=1;Scs=0;
711 2 Disp_Digit(1,56,zero+d*16);
712 2 Mcs=0;Scs=1;
713 2 Disp_Digit(1,0,zero+e*16);
714 2 Disp_Chinese(1,8,yue);
715 2 }
716 1
717 1 if(day==1) //日闪烁标志位
718 1 {
719 2 if(flag==1)
720 2 {
721 3 d=read_clock(0x87);//读日
722 3 e=d;
723 3 d=d>>4;
724 3 e=e&0x0f;
725 3 Mcs=0;Scs=1;
726 3 Disp_Digit(1,24,zero+d*16);
727 3 Disp_Digit(1,32,zero+e*16);
728 3 Disp_Chinese(1,40,ri);
729 3 }
730 2 else
731 2 {
732 3 Mcs=0;Scs=1;
733 3 Disp_Digit(1,24,space); //显示空格
734 3 Disp_Digit(1,32,space);
735 3 }
736 2 }
737 1 else
738 1 {
739 2 d=read_clock(0x87);//读日
740 2 e=d;
741 2 d=d>>4;
742 2 e=e&0x0f;
743 2 Mcs=0;Scs=1;
744 2 Disp_Digit(1,24,zero+d*16);
745 2 Disp_Digit(1,32,zero+e*16);
746 2 Disp_Chinese(1,40,ri);
747 2 }
748 1
749 1 if(weekk==1) //星期闪烁标志位
750 1 {
751 2 if(flag==1)
752 2 {
753 3 d=read_clock(0x8b);//读星期
754 3 Mcs=1;Scs=0;
755 3 Disp_Chinese(3,40,cone+(d-1)*32);//写入星期的汉字
756 3 }
757 2 else
758 2 {
759 3 Mcs=1;Scs=0;
760 3 Disp_Chinese(3,40,spaces); //显示空格
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 14
761 3 }
762 2 }
763 1 else
764 1 {
765 2 d=read_clock(0x8b);//读星期
766 2 Mcs=1;Scs=0;
767 2 Disp_Chinese(3,40,cone+(d-1)*32);//写入星期的汉字
768 2 }
769 1 }
770
771 /******************************************************************************/
772 void Disp2(void)//显示和闪烁函数
773 {
774 1 if(Kgb==1) //开关闪烁标志位
775 1 {
776 2 if(flag==1)
777 2 {
778 3 if(Bell_Swh == 0)//0为关
779 3 {
780 4 Mcs=0;Scs=1;
781 4 Disp_Chinese(2,32,guan);//显示关
782 4 }
783 3 else
784 3 {
785 4 Mcs=0;Scs=1;
786 4 Disp_Chinese(2,32,kai);//显示开
787 4 }
788 3 }
789 2 else
790 2 {
791 3 Mcs=0;Scs=1;
792 3 Disp_Chinese(2,32,spaces); //显示空格
793 3 }
794 2 }
795 1 else
796 1 {
797 2 if(Bell_Swh == 0)//关
798 2 {
799 3 Mcs=0;Scs=1;
800 3 Disp_Chinese(2,32,guan);
801 3 }
802 2 else
803 2 {
804 3 Mcs=0;Scs=1;
805 3 Disp_Chinese(2,32,kai);
806 3 }
807 2 }
808 1
809 1 if(Hourb==1) //时闪烁标志位
810 1 {
811 2 if(flag==1)
812 2 {
813 3 d=read_clock(0xc3);//读闹钟小时的数值
814 3 e=d;
815 3 d=d>>4;
816 3 e=e&0x0f;
817 3 Mcs=1;Scs=0;
818 3 Disp_Digit(4,48,zero+d*16);
819 3 Disp_Digit(4,56,zero+e*16);
820 3 }
821 2 else
822 2 {
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 15
823 3 Mcs=1;Scs=0;
824 3 Disp_Digit(4,48,space); //显示空格
825 3 Disp_Digit(4,56,space);
826 3 }
827 2 }
828 1 else
829 1 {
830 2 d=read_clock(0xc3);//读闹钟小时的数值
831 2 e=d;
832 2 d=d>>4;
833 2 e=e&0x0f;
834 2 Mcs=1;Scs=0;
835 2 Disp_Digit(4,48,zero+d*16);
836 2 Disp_Digit(4,56,zero+e*16);
837 2 }
838 1
839 1 if(Minb==1) //分钟闪烁标志位
840 1 {
841 2 if(flag==1)
842 2 {
843 3 d=read_clock(0xc5);//读闹钟分钟的数值
844 3 e=d;
845 3 d=d>>4;
846 3 e=e&0x0f;
847 3 Mcs=0;Scs=1;
848 3 Disp_Digit(4,8,zero+d*16);
849 3 Disp_Digit(4,16,zero+e*16);
850 3 }
851 2 else
852 2 {
853 3 Mcs=0;Scs=1;
854 3 Disp_Digit(4,8,space); //显示空格
855 3 Disp_Digit(4,16,space);
856 3 }
857 2 }
858 1 else
859 1 {
860 2 d=read_clock(0xc5);//读闹钟分钟的数值
861 2 e=d;
862 2 d=d>>4;
863 2 e=e&0x0f;
864 2 Mcs=0;Scs=1;
865 2 Disp_Digit(4,8,zero+d*16);
866 2 Disp_Digit(4,16,zero+e*16);
867 2 }
868 1
869 1 if(Secb==1) //秒闪烁标志位
870 1 {
871 2 if(flag==1)
872 2 {
873 3 d=read_clock(0xc7);//读闹钟秒的数值
874 3 e=d;
875 3 d=d>>4;
876 3 e=e&0x0f;
877 3 Mcs=0;Scs=1;
878 3 Disp_Digit(4,32,zero+d*16);
879 3 Disp_Digit(4,40,zero+e*16);
880 3 }
881 2 else
882 2 {
883 3 Mcs=0;Scs=1;
884 3 Disp_Digit(4,32,space); //显示空格
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 16
885 3 Disp_Digit(4,40,space);
886 3 }
887 2 }
888 1 else
889 1 {
890 2 d=read_clock(0xc7);//读闹钟秒的数值
891 2 e=d;
892 2 d=d>>4;
893 2 e=e&0x0f;
894 2 Mcs=0;Scs=1;
895 2 Disp_Digit(4,32,zero+d*16);
896 2 Disp_Digit(4,40,zero+e*16);
897 2 }
898 1 }
899
900 /******************************************************************************/
901 void id_case1_key(void)//id为1时的下一级选择
902 {
903 1 if(Add_Key == 0) //增加
904 1 {
905 2 Delay(100);
906 2 if(Add_Key == 0)
907 2 Set_time(id,0); //调用Set_time函数
908 2 while(Add_Key ==0);
909 2 }
910 1 if (Dec_Key==0) //减少
911 1 {
912 2 Delay(100);
913 2 if(Dec_Key == 0)
914 2 Set_time(id,1);
915 2 while(Dec_Key ==0);
916 2 }
917 1 }
918
919 /******************************************************************************/
920 void Set_time(unsigned char sel, bit sel_1) //根据选择调整相应项目并写入DS1302
921 {
922 1 signed char address,item;
923 1 signed char max,mini;
924 1 if(sel==7) {address=0x80; max=0;mini=0;} //秒
925 1 if(sel==6) {address=0x82; max=59;mini=0;} //分钟
926 1 if(sel==5) {address=0x84; max=23;mini=0;} //小时
927 1 if(sel==3) {address=0x86; max=31;mini=1;} //日
928 1 if(sel==2) {address=0x88; max=12;mini=1;} //月
929 1 if(sel==1) {address=0x8c; max=99; mini=0;} //年
930 1 if(sel==4) {address=0x8a; max=7;mini=1;} //星期
931 1
932 1 //读取1302某地址上的数值转换成10进制赋给item
933 1 item=((read_clock(address+1))/16)*10 + (read_clock(address+1))%16;
934 1 if(sel_1==0)
935 1 item++;
936 1 else
937 1 item--;
938 1 if(item>max) item=mini;
939 1 if(item<mini) item=max;
940 1
941 1 write_clock(0x8e,0x00);//允许写操作
942 1 write_clock(address,(item/10)*16+item%10);//转换成16进制写入1302
943 1 write_clock(0x8e,0x80);//写保护,禁止写操作
944 1 }
945
946 /******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -