st7920serial.lst
来自「这是TOPWAY公司的LCD驱动程序」· LST 代码 · 共 1,211 行 · 第 1/5 页
LST
1,211 行
934 2 {
935 3 LCD_set_xy(2,6);
936 3 LCD_Write_number(10); //显示空格
937 3 LCD_Write_number(10);
938 3 }
939 2 }
940 1 else
941 1 {
942 2 d=read_clock(0x87);//读日
943 2 e=d;
944 2 d=d>>4;
945 2 e=e&0x0f;
946 2 LCD_set_xy(2,6);
947 2 LCD_Write_number(d);
948 2 LCD_Write_number(e);
949 2 }
950 1
951 1 if(weekk==1) //星期闪烁标志位
952 1 {
953 2 if(flag==1)
954 2 {
955 3 d=read_clock(0x8b);//读星期
956 3 LCD_Write_week(d);
957 3 }
958 2 else
959 2 {
960 3 LCD_Write_week(8); //显示空格
961 3 }
962 2 }
963 1 else
964 1 {
965 2 d=read_clock(0x8b);//读星期
966 2 LCD_Write_week(d);
967 2 }
968 1 }
969
970 /******************************************************************************************
971 * 函数名称 :Disp2
972 * 功能描述 :显示和闪烁函数
973 * 参数 : 参数名称: 输入/输出? 类型 描述
974 *
975 * 返回值 :
976 * 作者 :
977 * 创建日期 :2006-12-19
978 * 全局变量 :
979 * 全局静态变量:
980 * 局部静态变量:
981 *----------------------------------------修改历史------------------------------------------
982 * 当前版本 : 修改人: 修改日期:
983 * 修改说明 :
984 ******************************************************************************************/
985 void Disp2(void)
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 17
986 {
987 1 if(Kgb==1) //开关闪烁标志位
988 1 {
989 2 if(flag==1)
990 2 {
991 3 if(Bell_Swh == 0)//0为关
992 3 {
993 4 LCD_Write_string(1,6,guan);//显示关
994 4 }
995 3 else
996 3 {
997 4 LCD_Write_string(1,6,kai);//显示开
998 4 }
999 3 }
1000 2 else
1001 2 {
1002 3 LCD_Write_string(1,6,space_c); //显示空格
1003 3 }
1004 2 }
1005 1 else
1006 1 {
1007 2 if(Bell_Swh == 0)//关
1008 2 {
1009 3 LCD_Write_string(1,6,guan);
1010 3 }
1011 2 else
1012 2 {
1013 3 LCD_Write_string(1,6,kai);
1014 3 }
1015 2 }
1016 1
1017 1 if(Hourb==1) //时闪烁标志位
1018 1 {
1019 2 if(flag==1)
1020 2 {
1021 3 d=read_clock(0xc3);//读闹钟小时的数值
1022 3 e=d;
1023 3 d=d>>4;
1024 3 e=e&0x0f;
1025 3 LCD_set_xy(3,3);
1026 3 LCD_Write_number(d);
1027 3 LCD_Write_number(e);
1028 3 }
1029 2 else
1030 2 {
1031 3 LCD_set_xy(3,3);
1032 3 LCD_Write_number(10); //显示空格
1033 3 LCD_Write_number(10);
1034 3 }
1035 2 }
1036 1 else
1037 1 {
1038 2 d=read_clock(0xc3);//读闹钟小时的数值
1039 2 e=d;
1040 2 d=d>>4;
1041 2 e=e&0x0f;
1042 2 LCD_set_xy(3,3);
1043 2 LCD_Write_number(d);
1044 2 LCD_Write_number(e);
1045 2 }
1046 1
1047 1 if(flag == 0)
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 18
1048 1 LCD_Write_number(11);//显示:构成闪烁壮
1049 1 else
1050 1 LCD_Write_number(10);
1051 1
1052 1 if(Minb==1) //分钟闪烁标志位
1053 1 {
1054 2 if(flag==1)
1055 2 {
1056 3 d=read_clock(0xc5);//读闹钟分钟的数值
1057 3 e=d;
1058 3 d=d>>4;
1059 3 e=e&0x0f;
1060 3 LCD_Write_number(d);
1061 3 LCD_Write_number(e);
1062 3 }
1063 2 else
1064 2 {
1065 3 LCD_Write_number(10); //显示空格
1066 3 LCD_Write_number(10);
1067 3 }
1068 2 }
1069 1 else
1070 1 {
1071 2 d=read_clock(0xc5);//读闹钟分钟的数值
1072 2 e=d;
1073 2 d=d>>4;
1074 2 e=e&0x0f;
1075 2 LCD_Write_number(d);
1076 2 LCD_Write_number(e);
1077 2 }
1078 1 }
1079
1080 /******************************************************************************************
1081 * 函数名称 :id_case1_key
1082 * 功能描述 :id为1时的下一级选择
1083 * 参数 : 参数名称: 输入/输出? 类型 描述
1084 *
1085 * 返回值 :
1086 * 作者 :
1087 * 创建日期 :2006-12-19
1088 * 全局变量 :
1089 * 全局静态变量:
1090 * 局部静态变量:
1091 *----------------------------------------修改历史------------------------------------------
1092 * 当前版本 : 修改人: 修改日期:
1093 * 修改说明 :
1094 ******************************************************************************************/
1095 void id_case1_key(void)
1096 {
1097 1 if(Add_Key == 0) //增加
1098 1 {
1099 2 Delay(100);
1100 2 if(Add_Key == 0)
1101 2 Set_time(id,0); //调用Set_time函数
1102 2 while(Add_Key ==0);
1103 2 }
1104 1 if (Dec_Key==0) //减少
1105 1 {
1106 2 Delay(100);
1107 2 if(Dec_Key == 0)
1108 2 Set_time(id,1);
1109 2 while(Dec_Key ==0);
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 19
1110 2 }
1111 1 }
1112
1113 /******************************************************************************************
1114 * 函数名称 :Set_time
1115 * 功能描述 :根据选择调整相应项目并写入DS1302
1116 * 参数 : 参数名称: 输入/输出? 类型 描述
1117 *
1118 * 返回值 :
1119 * 作者 :
1120 * 创建日期 :2006-12-19
1121 * 全局变量 :
1122 * 全局静态变量:
1123 * 局部静态变量:
1124 *----------------------------------------修改历史------------------------------------------
1125 * 当前版本 : 修改人: 修改日期:
1126 * 修改说明 :
1127 ******************************************************************************************/
1128 void Set_time(unsigned char sel, bit sel_1)
1129 {
1130 1 signed char address,item;
1131 1 signed char max,mini;
1132 1 if(sel==7)
1133 1 {
1134 2 address=0x80;
1135 2 max=0;
1136 2 mini=0;
1137 2 } //秒
1138 1 if(sel==6)
1139 1 {
1140 2 address=0x82;
1141 2 max=59;
1142 2 mini=0;
1143 2 } //分钟
1144 1 if(sel==5)
1145 1 {
1146 2 address=0x84;
1147 2 max=23;
1148 2 mini=0;
1149 2 } //小时
1150 1 if(sel==3)
1151 1 {
1152 2 address=0x86;
1153 2 max=31;
1154 2 mini=1;
1155 2 } //日
1156 1 if(sel==2)
1157 1 {
1158 2 address=0x88;
1159 2 max=12;
1160 2 mini=1;
1161 2 } //月
1162 1 if(sel==1)
1163 1 {
1164 2 address=0x8c;
1165 2 max=99;
1166 2
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?