st7920serial.lst
来自「这是TOPWAY公司的LCD驱动程序」· LST 代码 · 共 1,211 行 · 第 1/5 页
LST
1,211 行
699 1 clock_clk=0;
700 1 clock_Rst=0;
701 1 clock_Rst=1;
702 1 clock_out(ord);
703 1 dd=clock_in();
704 1 clock_Rst=0;
705 1 clock_clk=1;
706 1 return(dd);
707 1 }
708
709 /******************************************************************************************
710 * 函数名称 : write_clock
711 * 功能描述 :
712 * 参数 : 参数名称: 输入/输出? 类型 描述
713 *
714 * 返回值 :
715 * 作者 :
716 * 创建日期 :2006-12-19
717 * 全局变量 :
718 * 全局静态变量:
719 * 局部静态变量:
720 *----------------------------------------修改历史------------------------------------------
721 * 当前版本 : 修改人: 修改日期:
722 * 修改说明 :
723 ******************************************************************************************/
724 void write_clock(unsigned char ord, unsigned char dd)
725 {
726 1 clock_clk=0;
727 1 clock_Rst=0;
728 1 clock_Rst=1;
729 1 clock_out(ord);
730 1 clock_out(dd);
731 1 clock_Rst=0;
732 1 clock_clk=1;
733 1 }
734
735 /******************************************************************************************
736 * 函数名称 :Disp
737 * 功能描述 :显示和闪烁函数
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 13
738 * 参数 : 参数名称: 输入/输出? 类型 描述
739 *
740 * 返回值 :
741 * 作者 :
742 * 创建日期 :2006-12-19
743 * 全局变量 :
744 * 全局静态变量:
745 * 局部静态变量:
746 *----------------------------------------修改历史------------------------------------------
747 * 当前版本 : 修改人: 修改日期:
748 * 修改说明 :
749 ******************************************************************************************/
750 void Disp(void)
751 {
752 1 unsigned int i=0;
753 1 unsigned char a=0,b=0,c=0,f=0;
754 1
755 1 i=ReadTemperature();//读温度并送显
756 1 a=i/100;
757 1
758 1 LCD_set_xy(4,2);
759 1 LCD_Write_number(a);
760 1 b=i/10-a*10;
761 1 LCD_Write_number(b);
762 1 LCD_Write_number(12);//.
763 1 c=i-a*100-b*10;
764 1 LCD_Write_number(c);
765 1
766 1 if(hour==1) //小时闪烁标志位
767 1 {
768 2 if(flag==1)
769 2 {
770 3 d=read_clock(0x85);//读小时
771 3 e=d;
772 3 d=d>>4;
773 3 e=e&0x0f;
774 3 LCD_set_xy(3,3);
775 3 LCD_Write_number(d);
776 3 LCD_Write_number(e);
777 3 }
778 2 else
779 2 {
780 3 LCD_set_xy(3,3);
781 3 LCD_Write_number(10); //显示空格
782 3 LCD_Write_number(10);
783 3 }
784 2 }
785 1 else
786 1 {
787 2 d=read_clock(0x85);//读小时
788 2 e=d;
789 2 d=d>>4;
790 2 e=e&0x0f;
791 2 LCD_set_xy(3,3);
792 2 LCD_Write_number(d);
793 2 LCD_Write_number(e);
794 2 }
795 1
796 1 if(flag == 0)
797 1 LCD_Write_number(11);//显示:
798 1 else
799 1 LCD_Write_number(10);
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 14
800 1
801 1 if(min==1) //分钟闪烁标志位
802 1 {
803 2 if(flag==1)
804 2 {
805 3 d=read_clock(0x83);//读分钟
806 3 e=d;
807 3 d=d>>4;
808 3 e=e&0x0f;
809 3 LCD_Write_number(d);
810 3 LCD_Write_number(e);
811 3 }
812 2 else
813 2 {
814 3 LCD_Write_number(10); //显示空格
815 3 LCD_Write_number(10);
816 3 }
817 2 }
818 1 else
819 1 {
820 2 d=read_clock(0x83);//读分钟
821 2 e=d;
822 2 d=d>>4;
823 2 e=e&0x0f;
824 2 LCD_Write_number(d);
825 2 LCD_Write_number(e);
826 2 }
827 1
828 1 if(flag == 0)
829 1 LCD_Write_number(11);//显示:
830 1 else
831 1 LCD_Write_number(10);
832 1
833 1 if(sec==1) //秒闪烁标志位
834 1 {
835 2 if(flag==1)
836 2 {
837 3 d=read_clock(0x81);//读秒
838 3 e=d;
839 3 d=d>>4;
840 3 e=e&0x0f;
841 3 LCD_Write_number(d);//送显示
842 3 LCD_Write_number(e);
843 3 }
844 2 else
845 2 {
846 3 LCD_Write_number(10); //显示数字空格
847 3 LCD_Write_number(10);
848 3 }
849 2 }
850 1 else
851 1 {
852 2 d=read_clock(0x81);//读秒
853 2 e=d;
854 2 d=d>>4;
855 2 e=e&0x0f;
856 2 LCD_Write_number(d);
857 2 LCD_Write_number(e);
858 2 }
859 1
860 1 if(year==1) //年闪烁标志位
861 1 {
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 15
862 2 if(flag==1)
863 2 {
864 3 d=read_clock(0x8d);//读年
865 3 e=d;
866 3 d=d>>4;
867 3 e=e&0x0f;
868 3 LCD_set_xy(2,2);
869 3 LCD_Write_number(d);
870 3 LCD_Write_number(e);
871 3 }
872 2 else
873 2 {
874 3 LCD_set_xy(2,2);
875 3 LCD_Write_number(10); //显示空格
876 3 LCD_Write_number(10);
877 3 }
878 2 }
879 1 else
880 1 {
881 2 d=read_clock(0x8d);//读年
882 2 e=d;
883 2 d=d>>4;
884 2 e=e&0x0f;
885 2 LCD_set_xy(2,2);
886 2 LCD_Write_number(d);
887 2 LCD_Write_number(e);
888 2 }
889 1
890 1 if(mon==1) //月闪烁标志位
891 1 {
892 2 if(flag==1)
893 2 {
894 3 d=read_clock(0x89);//读月
895 3 e=d;
896 3 d=d>>4;
897 3 e=e&0x0f;
898 3 LCD_set_xy(2,4);
899 3 LCD_Write_number(d);
900 3 LCD_Write_number(e);
901 3
902 3 }
903 2 else
904 2 {
905 3 LCD_set_xy(2,4);
906 3 LCD_Write_number(10); //显示空格
907 3 LCD_Write_number(10);
908 3 }
909 2 }
910 1 else
911 1 {
912 2 d=read_clock(0x89);//读月
913 2 e=d;
914 2 d=d>>4;
915 2 e=e&0x0f;
916 2 LCD_set_xy(2,4);
917 2 LCD_Write_number(d);
918 2 LCD_Write_number(e);
919 2 }
920 1
921 1 if(day==1) //日闪烁标志位
922 1 {
923 2 if(flag==1)
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 16
924 2 {
925 3 d=read_clock(0x87);//读日
926 3 e=d;
927 3 d=d>>4;
928 3 e=e&0x0f;
929 3 LCD_set_xy(2,6);
930 3 LCD_Write_number(d);
931 3 LCD_Write_number(e);
932 3 }
933 2 else
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?