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

📄 text1.lst

📁 单片机通信程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 235   3             a[i]=a[i+1]; 
 236   3             a[i+1]=temp;} 
 237   2        } 
 238   1      
 239   1             for(i=1;i<=4;i++)
 240   1             {
 241   2               sum+=a[i];
C51 COMPILER V8.02   TEXT1                                                                 02/26/2009 16:22:34 PAGE 5   

 242   2              }
 243   1         baochi=(uint)(sum/4);
 244   1         wendu=(baochi-1394)*10/87;
 245   1      }
 246          
 247          
 248            /*******************显示设置温度用**********************************/
 249          
 250          void dtwd()
 251          {
 252   1      
 253   1      if(hide_t1<2)
 254   1          {display_char(10,1,(table[0]+'0')); 
 255   2              
 256   2      
 257   2              }
 258   1          else
 259   1              {
 260   2              
 261   2           display_char(10,1,' '); 
 262   2              
 263   2              }
 264   1              if(hide_t2<2)
 265   1              {display_char(11,1,(table[1]+'0')); 
 266   2              
 267   2      
 268   2              }
 269   1          else
 270   1              {
 271   2              
 272   2           display_char(11,1,' '); 
 273   2              
 274   2              }
 275   1      }
 276          
 277          /*****************************************************/
 278          
 279            /********************设置**************************/
 280          void set()
 281          {
 282   1      switch(count)
 283   1      {case 1:do{lstemp=table[0];
 284   3                         if(up==1){up=0;lstemp++;}
 285   3                         if(down==1){down=0;lstemp--;}  
 286   3                         if(lstemp>0x09)lstemp=0;
 287   3                         if(lstemp==-1)lstemp=0x09;
 288   3                                          table[0]=lstemp;
 289   3                                         hide_t1++;
 290   3                                         hide_t2=0;
 291   3                                         if(hide_t1>3)
 292   3                                         hide_t1=0;
 293   3                         dtwd();
 294   3                  } 
 295   2                    while(count==2);break;
 296   2         case 2:
 297   2               do{
 298   3                  lstemp=table[1];
 299   3                        if(up==1){up=0;lstemp++;}
 300   3                         if(down==1){down=0;lstemp--;}  
 301   3                         if(lstemp>0x09)lstemp=0;
 302   3                         if(lstemp==-1)lstemp=0x09;
 303   3                                         table[1]=lstemp;
C51 COMPILER V8.02   TEXT1                                                                 02/26/2009 16:22:34 PAGE 6   

 304   3                                         hide_t2++;
 305   3                                         hide_t1=0;
 306   3                                         if(hide_t2>3)
 307   3                                         hide_t2=0;
 308   3                        dtwd();
 309   3                       }
 310   2                        while(count==3);break; 
 311   2               case 3:  do {(stPID.setpoint)=wen_du=(uint)((table[0])*10+table[1]); ET1=0;count=0;done=0;dl_1ms(
             -);display_char(10,1,(table[0]+'0'));dl_1ms();display_char(11,1,(table[1]+'0'));  ET1=1;dl_1ms();EX0=1;}while (count==4);
             -break;
 312   2                                  
 313   2                default:  (stPID.setpoint)=wen_du=(uint)((table[0])*10+table[1]); ET1=0;count=0;done=0;dl_1ms();
             -display_char(10,1,(table[0]+'0'));dl_1ms();display_char(11,1,(table[1]+'0')); ET1=1;dl_1ms(); EX0=1; break;
 314   2      }
 315   1      }
 316          
 317          /*****************************************************/
 318          
 319          void key_clockontrol(void)                    //键盘映射
 320          { switch(key)
 321   1        {case 0x10:done=1;up=0;down=0;count++;break;
 322   2         case 0x20:up=1;break;
 323   2         case 0x40:down=1;break;
 324   2         case 0x80:done=1;count=3;break;
 325   2         default:break;}
 326   1      }
 327          /******************************************************************/
 328          
 329          void keyboard() interrupt 2 using 3  //键盘扫描
 330          {    
 331   1              unsigned char i,j,w;
 332   1              
 333   1          
 334   1              EX1=0;
 335   1              EX0=0;
 336   1              key=0;
 337   1         delay();
 338   1              if(~XBYTE[0xf800]&0x0f)
 339   1              {
 340   2                      w=XBYTE[0xf8f0]&0x0f;
 341   2                              if(~w&0x0f)
 342   2                              {
 343   3                                      i=4;
 344   3                                      j=w;
 345   3                                      w=0xff;
 346   3                              }
 347   2              w=XBYTE[0xf8e8]&0x0f;
 348   2                              if(~w&0x0f)
 349   2                              {
 350   3                                      i=3;
 351   3                                      j=w;
 352   3                                      w=0xff;
 353   3                              }
 354   2                      w=XBYTE[0xf8d8]&0x0f;
 355   2                              if(~w&0x0f)
 356   2                              {
 357   3                                      i=2;
 358   3                                      j=w;
 359   3                                      w=0xff;
 360   3                              }
 361   2                      w=XBYTE[0xf8b8]&0x0f;
 362   2                              if(~w&0x0f)
C51 COMPILER V8.02   TEXT1                                                                 02/26/2009 16:22:34 PAGE 7   

 363   2                              {
 364   3                                      i=1;
 365   3                                      j=w;
 366   3                                      w=0xff;
 367   3                              }
 368   2                      w=XBYTE[0xf878]&0x0f;
 369   2                              if(~w&0x0f)
 370   2                              {
 371   3                                      i=0;
 372   3                                      j=w;
 373   3                                      w=0xff;
 374   3                              }
 375   2              w=~j;
 376   2              key=(w<<4)|i;
 377   2              }
 378   1              while(~XBYTE[0xf800]&0xf);
 379   1              key_clockontrol();
 380   1              EX1=1;
 381   1      }
 382          
 383          
 384          
 385          
 386          
 387          
 388           /****************************************************************/
 389          
 390          void main()
 391          {
 392   1      stPID.proportion=4;
 393   1      stPID.integral=0;
 394   1      stPID.derivative=2;
 395   1          inttilcs();    //液晶初始化
 396   1          EX0=1;
 397   1              
 398   1              TH1=(65536-1000)/256;
 399   1          TL1=(65536-1000)%256;
 400   1              EX1=1;
 401   1              IT0=1;
 402   1              TCON=0x55;
 403   1              TMOD=0X19;
 404   1              TH0=TL0=0;
 405   1              TR0=1;
 406   1              p12=1;
 407   1      
 408   1              EA=1;
 409   1      
 410   1              while(1)
 411   1      {if(c>6||c==6)
 412   2        {
 413   3              pxbj();
 414   3          c=0;
 415   3              diswendu();
 416   3      /*******************发射所得到的温度数据***************************************/
 417   3       TR0=0;
 418   3       TR1=0;
 419   3       EX0=0;
 420   3       EX1=0;
 421   3       transmit(wendu);
 422   3       EX0=1;
 423   3       EX1=1;
 424   3       TR0=1;
C51 COMPILER V8.02   TEXT1                                                                 02/26/2009 16:22:34 PAGE 8   

 425   3       TR1=1;
 426   3      
 427   3      
 428   3      
 429   3      /*****************************************************************************/
 430   3               p12=1;
 431   3           dtwd(); 
 432   3           fout=PIDCalc(&stPID,wendu);
 433   3           ET1=1;
 434   3               if(fout>0)
 435   3                        {  p15=1;
 436   4                          display_char(10,0,'k');
 437   4                        }
 438   3                        if(fout<0){
 439   4                                    p15=0;
 440   4                                    display_char(10,0,'g');}
 441   3                           }
 442   2          if(fout==0)
 443   2              {ET1=0;
 444   3           p15=0;
 445   3           display_char(10,0,' ');
 446   3               }
 447   2              if(done==1)
 448   2                      {
 449   3                         
 450   3                set();}    //进入调整模式
 451   2                        
 452   2                         delay();
 453   2              
 454   2                }
 455   1      
 456   1      
 457   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1757    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     79      27
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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