⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 funclcd.lst

📁 Keil C51完整的128X64LCD显示的电子打铃仪代码,内含DS1302X5045等操作代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 978   1                      Msingle_font_pattern (space1,2,40,0);
 979   1                      Msingle_font_pattern (English_Offset[(DATE[0]>>4)&0x0F],2,48,0);
 980   1                      Msingle_font_pattern (English_Offset[DATE[0]&0x0F],2,56,0);
 981   1                      Msingle_font_pattern (English_Offset[10],2,64,0);
 982   1                      Msingle_font_pattern (English_Offset[(DATE[1]>>4)&0x0F],2,72,0);
 983   1                      Msingle_font_pattern (English_Offset[DATE[1]&0x0F],2,80,0);
 984   1                      Msingle_font_pattern (English_Offset[10],2,88,0);
 985   1                      Msingle_font_pattern (English_Offset[(DATE[2]>>4)&0x0F],2,96,0);
C51 COMPILER V7.50   FUNCLCD                                                               06/10/2006 08:26:02 PAGE 17  

 986   1                      Msingle_font_pattern (English_Offset[(DATE[2]&0x0F)],2,104,0);
 987   1            
 988   1              Display_Line(4,0,5,0,Student);
 989   1                      Display_Line(6,0,6,0,Teacher);
 990   1      
 991   1              Delay_Ret(T0_6S);
 992   1      
 993   1              while(1)
 994   1              {
 995   2                  if(ret_Flag)break;
 996   2                   kk=KeyScan();
 997   2                   
 998   2                   if(kk==NOKEY_PRESS)continue;
 999   2                   
1000   2                   NoDelay_Ret();
1001   2                   Light_On();
1002   2                   
1003   2                   if(kk==BACK)
1004   2                   {
1005   3                       ClearRAM(0,8);
1006   3                       return;
1007   3                   }
1008   2                   else
1009   2                   {
1010   3                      Status_Beep();
1011   3                   }
1012   2               }          
1013   1      }
1014          
1015          //===========================================================================================
1016          // 子菜单处理事件
1017          //===========================================================================================
1018          //系统设置菜单处理,菜单序号:0
1019          //Function:     Simple_Lanague,TaiWan_Lanague,English_Lanague   
1020          //Description:  Display System infomation
1021          //Parameters:   NO.
1022          //Call:                 HzDisplay,Msingle_font_pattern,Display_Pic
1023          //Returns:              NO.
1024          //=================================================
1025          //背光设置      
1026          void LcdLightProc(void)
1027          {        
1028   1           bool  First_bool    =   FALSE;
1029   1           uint8 inum          =   0;
1030   1           uint8 tempv                 =       0;
1031   1           uint8 tcol          =   72;
1032   1           uint8 KeyTempValue;
1033   1           
1034   1           Display_Line(2,0,8,0,ShowTip[3]);
1035   1           
1036   1           Delay_Ret(T0_6S);
1037   1      
1038   1           while(1)
1039   1           {
1040   2           
1041   2              Msingle_font_pattern(English_Offset[Light_DelayTime/10], 4, tcol, 1);
1042   2              Msingle_font_pattern(English_Offset[Light_DelayTime%10], 4, tcol+8, 1);
1043   2              
1044   2              if(ret_Flag)
1045   2                      {
1046   3                              ClearRAM(0,8);
1047   3                              break;
C51 COMPILER V7.50   FUNCLCD                                                               06/10/2006 08:26:02 PAGE 18  

1048   3              }
1049   2      
1050   2              KeyTempValue=KeyScan();
1051   2              
1052   2              if(KeyTempValue==NOKEY_PRESS)
1053   2                  continue;
1054   2                  
1055   2              NoDelay_Ret(); 
1056   2              Light_On();
1057   2              
1058   2              if(KeyTempValue==PAGEUP)
1059   2              {
1060   3                    Light_DelayTime++;
1061   3                                if(Light_DelayTime>60)Light_DelayTime=0x00;
1062   3              }
1063   2              else if(KeyTempValue==PAGEDOWN)
1064   2                      {
1065   3                                if(Light_DelayTime==0x00)Light_DelayTime=60;
1066   3                                Light_DelayTime--;
1067   3                      }
1068   2                      else if(KeyTempValue==ENTER)
1069   2              {
1070   3                 
1071   3                 if (Light_DelayTime==T0_NOUSE)
1072   3                 {
1073   4                      LightOnOff      =       FALSE;
1074   4                      Light_DT        =       0x00;
1075   4                 }
1076   3                 else
1077   3                 {
1078   4                      LightOnOff      =       TRUE; 
1079   4                      Light_DT        =       (uint16)((Light_DelayTime*100));
1080   4                      Light_DT        =       Light_DT/TIME_VMS;
1081   4                 }
1082   3                 //保存数据
1083   3                 W_ByteToDS1302_RAM(Light_RAMAddr,Light_DelayTime);   
1084   3              }
1085   2              else if(KeyTempValue==BACK)
1086   2              {
1087   3                              ClearRAM(0,8);
1088   3                  return;
1089   3              }
1090   2              else
1091   2              {   //按键无效
1092   3                  Status_Beep();
1093   3              }
1094   2           }
1095   1      }
1096          
1097          
1098          //===========================================================================================
1099          //按键音设置
1100          void BeepProc(void)
1101          {
1102   1          uint8   keyTempValue;
1103   1          uint8   Key_Flag=0x01;
1104   1          
1105   1          HzDisplay(kai,0,32,1);
1106   1          HzDisplay(guan,2,32, 0);
1107   1          Delay_Ret(T0_6S);
1108   1          
1109   1          while(1)
C51 COMPILER V7.50   FUNCLCD                                                               06/10/2006 08:26:02 PAGE 19  

1110   1          {
1111   2              if(ret_Flag)
1112   2                      {
1113   3                              ClearRAM(0,8);
1114   3                              break;
1115   3               }
1116   2              keyTempValue=KeyScan();
1117   2              
1118   2              if(keyTempValue==NOKEY_PRESS)
1119   2              continue;
1120   2              NoDelay_Ret();
1121   2              Light_On();
1122   2              
1123   2              if(keyTempValue==PAGEUP)
1124   2              {
1125   3                  Key_Flag=BEEP_OPEN;
1126   3                  HzDisplay(kai,0,32,1);
1127   3                  HzDisplay(guan,2,32, 0);
1128   3              }
1129   2              else if(keyTempValue==PAGEDOWN)
1130   2              {
1131   3                  Key_Flag=BEEP_CLOSE;
1132   3                  HzDisplay(kai,0,32,0);
1133   3                  HzDisplay(guan,2,32, 1);
1134   3              }
1135   2              else if(keyTempValue==ENTER)
1136   2              {
1137   3                      //保存
1138   3                              W_ByteToDS1302_RAM(Beep_RAMAddr,Key_Flag);      //按键音关
1139   3                              if(Key_Flag==BEEP_OPEN)
1140   3                              BeepOnOff=TRUE;
1141   3                          else
1142   3                              BeepOnOff=FALSE;
1143   3              }
1144   2              else if(keyTempValue==BACK)
1145   2              {
1146   3                  //返回上一级菜单
1147   3                              ClearRAM(0,8);
1148   3                  return;
1149   3              }
1150   2              else
1151   2              {   
1152   3                  //按键无效
1153   3                  Status_Beep();
1154   3              }
1155   2          }
1156   1      }
1157          
1158          
1159          //删除打铃点
1160          void DelTimer()
1161          {
1162   1              uint8 kv,temp=0,TimerCount;
1163   1              Display_Line(0,16,6,0,ShowTip[8]);
1164   1              Display_Line(4,32,3,0,ShowTip[5]);
1165   1              TimerCount=EepromRead(Timers);
1166   1              Delay_Ret(T0_6S);
1167   1            
1168   1              while(1)
1169   1              {
1170   2                      if(ret_Flag)
1171   2                      {
C51 COMPILER V7.50   FUNCLCD                                                               06/10/2006 08:26:02 PAGE 20  

1172   3                              ClearRAM(0,8);
1173   3                              break;
1174   3              }
1175   2                      Msingle_font_pattern (English_Offset[temp/10],4,88,1);
1176   2                      Msingle_font_pattern (English_Offset[temp%10],4,96,1);
1177   2                      kv=KeyScan();
1178   2                      if(kv==NOKEY_PRESS)continue;
1179   2                      NoDelay_Ret();
1180   2              Light_On();
1181   2                      switch(kv)
1182   2                      {
1183   3                              case MOVE:
1184   3                                      break;
1185   3                              case ESC:
1186   3                                      ClearRAM(0,8);
1187   3                                      return;
1188   3                              case ENTER://要加提示,目前未加
1189   3                                      if(temp==37)
1190   3                                      {//清除所有设定点数
1191   4                                              for(temp=0x10;temp<160;temp++)
1192   4                                              {
1193   5                                                      EepromWrite(temp,0x00);
1194   5                                                      TimerArray[temp].BitEnable=0x11;
1195   5                                              }
1196   4                                              temp=0x00;
1197   4                                      }
1198   3                                      else
1199   3                                      {//清除指定点数
1200   4                                              TimerArray[temp].BitEnable=0x11;
1201   4                                      }
1202   3                                      break;
1203   3                              default:
1204   3                                      if(kv==PAGEUP)temp++;
1205   3                                      else if(kv==PAGEDOWN&&temp>0)temp--;
1206   3                                      if(temp>TimerCount)temp=0;
1207   3                                      else if(temp<=0)temp=37;
1208   3                                      break;
1209   3                      }
1210   2              }       
1211   1      }
1212          
1213          //查看打铃点设置
1214          void ViewTimer()
1215          {
1216   1              uint8 kv,temp=0,temp0=0,tempp=0,hh,mm,TimerCount,tt;
1217   1              bit n_flag=1,m_flag=0,h_flag=0,Change_Flag=0;
1218   1      
1219   1              Display_Line(0,0,6,0,Sh

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -