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 + -
显示快捷键?