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