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

📄 key_scan.lst

📁 一个基于51单片机的定时报警设计电路及程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 143   4                                              }
 144   3                                      break;
 145   3                              }
 146   2                         break;
 147   2                      case 0xfb ://调节亮度键
 148   2                              key++;
 149   2                              if(key==8)key=0;
 150   2                              break;
 151   2                      case 0xf7 ://增加键
 152   2                              Key45_v++;
 153   2                              if(Key45_v==10)Key45_v=0;
 154   2                              break;
 155   2                      case 0xef ://减少键
 156   2                              Key45_v--;
 157   2                              if(Key45_v==-1)Key45_v=9;
 158   2                              break;
 159   2               }
 160   1      }
 161          
 162          void scan_key()
 163          {
 164   1              switch(Keystate)
 165   1              {
 166   2                      case KEY_IDEL :
 167   2                              Key_v=P3;
 168   2                              if(Key_v!=KEY_STATE)
 169   2                              {
 170   3                                      Keystate=KEY_DELAY;
 171   3                                      KeyDelaytime=0;
 172   3                              P3=0xff;
 173   3                              }
 174   2                      break;
 175   2                      case KEY_DELAY :
 176   2                              if(KeyDelaytime>=KEY_DELAY_TIME)
 177   2                              {
 178   3                                      P3=0xff;
 179   3                                      Key_v=P3;
C51 COMPILER V7.08   KEY_SCAN                                                              04/18/2008 23:24:27 PAGE 4   

 180   3                                      if(Key_v!=KEY_STATE)
 181   3                                      {
 182   4                                              key_pro(Key_v);
 183   4                                              Keystate=WAIT_KEY_OPEN;
 184   4                                      }
 185   3                                      else
 186   3                                      {
 187   4                                              Keystate=KEY_IDEL;
 188   4                                      }
 189   3                              }
 190   2                      break;
 191   2                      case WAIT_KEY_OPEN :
 192   2                              P3=0xff;
 193   2                              Key_v=P3;
 194   2                              if(Key_v==KEY_STATE)Keystate=KEY_IDEL;
 195   2                      break;
 196   2         }
 197   1      }
 198          
 199          
 200                                  
 201          int main()
 202          {
 203   1      //      unsigned char min_low,min_high,hrs_low,hrs_high;
 204   1              unsigned char min_lowtemp,min_hightemp,hrs_lowtemp,hrs_hightemp;
 205   1              P0 = 0xff;
 206   1              P2 = 0xff;
 207   1              TMOD = 0x01;
 208   1              TH0 = 0xfe;
 209   1              TL0 = 0x0c;
 210   1              IE = 0x82;
 211   1              flag=0;
 212   1              key=0;
 213   1              alarm_disp_contol=0;
 214   1              BEEP=0;
 215   1              Key45_v=0;
 216   1              led_control=0;
 217   1              alarm_conter=0;
 218   1              Keystate=KEY_IDEL;
 219   1              Machine_State=DISP_TIME;
 220   1              TR0=1;
 221   1              while(1)
 222   1              {
 223   2                      scan_key();
 224   2              
 225   2                      switch(Machine_State)
 226   2                      {
 227   3                              case DISP_TIME :
 228   3                                      disp_time();
 229   3                                      for(i=0;i<alarm_conter;i++)
*** ERROR C202 IN LINE 229 OF KEY_SCAN.C: 'i': undefined identifier
 230   3                                      {
 231   4                                              if(Min==alarm_time[i][0]&&Hrs==alarm_time[i][1])
*** ERROR C202 IN LINE 231 OF KEY_SCAN.C: 'i': undefined identifier
 232   4                                              {
 233   5                                                      BEEP=1;
 234   5                                              }
 235   4                                              else
 236   4                                              {
 237   5                                                      BEEP=0;
 238   5                                              }
 239   4                                       }
C51 COMPILER V7.08   KEY_SCAN                                                              04/18/2008 23:24:27 PAGE 5   

 240   3                              break;
 241   3                              case SET_TIME:
 242   3                                      led_buf[led_control]=zimo[Key45_v];
 243   3                              break;
 244   3                              case SET_ALARM_TIME:
 245   3                                      led_buf[led_control]=zimo[Key45_v];
 246   3                              break;
 247   3                              case DISP_ALARM_TIME:
 248   3                                      led_buf[4]=zimo[alarm_disp_contol+1];
 249   3                                      min_hightemp=(alarm_time[alarm_disp_contol][0]&0xf0)>>4;
 250   3                                      min_lowtemp=alarm_time[alarm_disp_contol][0]&0x0f;
 251   3                                      hrs_hightemp=(alarm_time[alarm_disp_contol][1]&0xf0)>>4;
 252   3                                      hrs_lowtemp=alarm_time[alarm_disp_contol][1]&0x0f;
 253   3                                      led_buf[3]=zimo[hrs_hightemp];
 254   3                                      led_buf[2]=zimo[hrs_lowtemp];
 255   3                                      led_buf[1]=zimo[min_hightemp];
 256   3                                      led_buf[0]=zimo[min_lowtemp];
 257   3                         break;
 258   3                      }
 259   2              }
 260   1      }
 261          
 262          void timer0(void) interrupt 1
 263          {
 264   1              TH0=0xfe;
 265   1              TL0=0x0c;
 266   1              KeyDelaytime++;
 267   1              time_base++;
 268   1              if(flag<key+1)
 269   1              {
 270   2                      P0=led_buf[n];
 271   2                      P2=disflag[n];
 272   2               }
 273   1              else
 274   1              {
 275   2                      P2=0x00;
 276   2                      P0=0;
 277   2               }
 278   1               flag++;
 279   1               if(flag==8)
 280   1               {
 281   2                      n++;
 282   2                      if(n==6)
 283   2                      {
 284   3                              n=0;
 285   3                      }
 286   2                      flag=0;
 287   2              }
 288   1      }

C51 COMPILATION COMPLETE.  0 WARNING(S),  2 ERROR(S)

⌨️ 快捷键说明

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