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

📄 text1.lst

📁 单片机控制数码管显示,键盘可调节数码管显示设定温度,实现温度报警
💻 LST
📖 第 1 页 / 共 3 页
字号:
 160   2                      case BT_OFF:
 161   2                      
 162   2                              BellType = BT_OFF;
 163   2                              BellCount = 0;
 164   2                              break;
 165   2                      case BT_BUTTON:
 166   2                              BellType = BT_BUTTON;
 167   2                              BellCount = 4;          // 按键声响0.1秒
 168   2                              break;
 169   2                      case BT_WARN:
 170   2                              BellType = BT_WARN;
 171   2                              BellCount = 200;        //
 172   2                              break;
 173   2                      default:
 174   2                              break;
 175   2              }
 176   1      }
 177          void main()
 178          {
C51 COMPILER V8.02   TEXT1                                                                 06/10/2008 21:23:11 PAGE 4   

 179   1              float k,temp1;
 180   1              unsigned char tmpl,BellType = BT_OFF,BellCount=0;
 181   1              wendu_up=50;//******** wen du shang xian definde zhi 50;
 182   1              wendu_low=5;//******** wen du xia xian definde zhi 5;
 183   1              Bell = 1;
 184   1              TMOD=0x21;
 185   1              PT1=1;
 186   1              EA=1;
 187   1              ET0=1;
 188   1              ET1=1;
 189   1              TH0=0x4c;//*********************
 190   1              TL0=0x00;//**********************
 191   1              TH1=0x6c;
 192   1              TL1=0x6c;
 193   1              timesyb=6;
 194   1              TR0=0;//ding shi 0
 195   1              TR1=1;//start ding shi 1
 196   1          delay_ms();
 197   1          while(1)
 198   1          {   tmpl=adc_conv();
 199   2                      temp1=(float)tmpl;
 200   2                      k=log(temp1/(255-temp1));
 201   2                      temp1=k/3380+1/298.15;
 202   2                      temp1=1/temp1-270.15;
 203   2                      tmpl=(unsigned char)temp1;
 204   2                      led[0]=(tmpl%100)/10;
 205   2                      led[1]=tmpl%10;
 206   2                      show[0]=table[led[0]];//******************
 207   2                      show[1]=table[led[1]];//************
 208   2                      show[2]=0xbf;//******************
 209   2                      show[3]=0xbf;//************
 210   2                      if(tmpl>wendu_up||tmpl<wendu_low)
 211   2                              {BellCtrl(BT_WARN);}
 212   2                      checkkey4();
 213   2              display();
 214   2          }
 215   1      
 216   1      }
 217          /*--------------------------------------------------------------------------------------------------------
             --------------------------------*/
 218          
 219          void restart_time0(void)
 220                  {       TR0=0;
 221   1                      TH0=0x4c;
 222   1                      TL0=0x00;
 223   1                      dscount=0;
 224   1                      TR0=1;
 225   1              }
 226          void showtime(void)
 227                          {
 228   1                              ledbuf[0]=minute/10;
 229   1                              ledbuf[1]=minute%10;
 230   1                              ledbuf[2]=scend/10;
 231   1                              ledbuf[3]=scend%10;
 232   1                              show[0]=table[ledbuf[0]];
 233   1                              show[1]=table[ledbuf[1]]&0x7f;
 234   1                              show[2]=table[ledbuf[2]];
 235   1                              show[3]=table[ledbuf[3]];
 236   1                              display();
 237   1                      }
 238          void time1(void)interrupt 3                     //multiple 80*80=1s
 239                  {       if(mi<80)
C51 COMPILER V8.02   TEXT1                                                                 06/10/2008 21:23:11 PAGE 5   

 240   1                              {       if(mj<80)
 241   2                                      mj++;
 242   2                                      else {mj=0;mi++;
 243   3                                                if(key4syb==0)display();
 244   3                                                else showtime();//+++++++++++++++++主要的显示与叫;
 245   3                                                }
 246   2                              }
 247   1                       else {mi=0;scend++;
 248   2                              if(scend==60){scend=0;minute++;
 249   3                                                              if(minute==60)
 250   3                                                                      minute=0;
 251   3                                               }
 252   2                           }
 253   1              }
 254          /*--------------------------------------------------------------------------------------------------------
             ------------------------------*/
 255          void time0(void)interrupt 1      //ding shi 50ms
 256          {       TR0=0;
 257   1              if(out_out==0)
 258   1          {
 259   2          
 260   2              if(key4syb==1&&setsyb==0)
 261   2                      {key4=1;display();delay_ms();
 262   3                              if(key4==0)
 263   3                              {judgeset++;TR0=1;}
 264   3                       else
 265   3                              {judgeset=0;key4syb=0;}
 266   3                       if(judgeset==60)               //have keeping key4 for 3s,enter set state;
 267   3                              {setsyb=1;
 268   4                               key4syb=0;
 269   4                               TR0=0;TH0=0x4c;TL0=0x00;TR0=1;
 270   4                               set();                         //______-where to get into the set state 
 271   4                               }
 272   3                      }
 273   2              if(dscount<100)                                 /*count 5 scends*/
 274   2                 {dscount++;TH0=0x4c;TL0=0x00;TR0=1;}
 275   2              else {
 276   3                        setsyb=0;                                     //return to normal state
 277   3                        show[0]=table[led[0]];                                        //set to the run state
 278   3                        show[1]=table[led[1]];
 279   3                        show[2]=table[led[2]];
 280   3                        show[3]=table[led[3]];
 281   3                        TR0=0;TH0=0x4c;TL0=0x00; out_out=1;
 282   3                       }
 283   2          }
 284   1          else out_out=0;
 285   1      }
 286          /*--------------------------------------------------------------------------------------------------------
             ---------------------------*/
 287          
 288          void checkkey4(void)
 289                          {       if(setsyb==0)
 290   1                                      {key4=1;Wait8us//+++++++++++++++++++++++++++++++++have key 
 291   2                                      if(key4==0){key4syb=1;
 292   3                                      TR0=1;BellSet(BT_BUTTON);
 293   3                                      showtime();}//+++++++++++++++++++++++++++++++++++++=show time
 294   2                                      }
 295   1                      
 296   1                      }
 297          void set(void)
 298                  {
 299   1              unsigned char state=0;
C51 COMPILER V8.02   TEXT1                                                                 06/10/2008 21:23:11 PAGE 6   

 300   1              unsigned char facestate=0,set_up_tempt=1,set_donw_temp=2,set_time=3,set_scend=4,set_minute=5;
 301   1              do
 302   1                      switch (state)
 303   1                              {case 0:led[0]=wendu_up/10;
 304   2                                              led[1]=wendu_up%10;
 305   2                                              led[2]=wendu_low/10;
 306   2                                              led[3]=wendu_low%10;
 307   2                                              show[0]=table[led[0]];  //show tempter
 308   2                                              show[1]=table[led[1]];
 309   2                                              show[2]=table[led[2]];
 310   2                                              show[3]=table[led[3]];
 311   2                                              display();
 312   2                                                                      if(key1==0)
 313   2                                                                              {key1=1;display();delay_ms(); 
 314   3                                                                                      if(key1==0)     //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++hav
             -e key
 315   3                                                                                              {restart_time0();BellSet(BT_BUTTON);
 316   4                                                                                              state=set_time;
 317   4                                                                                              showtime();while(key1==0);}break;
 318   3                                                                              }
 319   2                                                                      if(key2==0)
 320   2                                                                              {key2=1;display();delay_ms(); 
 321   3                                                                                      if(key2==0)     //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++hav
             -e key

⌨️ 快捷键说明

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