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

📄 project1.lst

📁 这是一个用于RS485通讯的协议转换程序,采用89S52芯片,KEIL 51开发
💻 LST
📖 第 1 页 / 共 2 页
字号:
 195   3                               {
 196   4                    if(i>=12)
 197   4                                 i=i+4;
 198   4                    if((i==10)||(i==11))
 199   4                                 {
 200   5                                 if(rbuf[5]==0x01)
 201   5                                   i=i;
 202   5                        else if(rbuf[5]==0x02)
 203   5                                   i=i+2;
 204   5                        else if(rbuf[5]==0x03)
 205   5                                   i=i+4;
 206   5                        else if(rbuf[5]==0x04)
 207   5                               i=i+6;
 208   5                             else
 209   5                                 break;
 210   5      
 211   5                                 }
 212   4      
 213   4                    if(i==0x11)
 214   4                        i=22;
 215   4                      
 216   4      
 217   4                    if(i==23)
 218   4                    i=10;
 219   4      
 220   4                    if(i==31)
 221   4                      i=22;
 222   4                    if(i==32)
 223   4                      i=4;
 224   4                    
 225   4                            Action(i);
 226   4                                
 227   4                                flag_ea=1;
 228   4                                EA=1;                                           
 229   4                                break;
 230   4                            }
 231   3      
 232   3                      }
 233   2               r_out=1;
 234   2           r_in=0;
 235   2               }
C51 COMPILER V7.01  PROJECT1                                                               05/25/2006 15:21:24 PAGE 5   

 236   1              }  
 237          /*---------------------------------------------------------------
 238                                    ADT KEYBOARD
 239          -----------------------------------------------------------------*/
 240          void Get_Order12(void)
 241          {
 242   1              
 243   1         
 244   1                 
 245   1              if(r_out!=9)
 246   1            {
 247   2                r_out = 9;
 248   2                r_in= 1 ;
 249   2                EA=1;
 250   2      
 251   2                }
 252   1          
 253   1      /*      else if((rbuf[1])!= Camera)      
 254   1                {
 255   1                       
 256   1                        r_out=1;
 257   1                        r_in=0;
 258   1                }*/
 259   1           else
 260   1               {
 261   2                
 262   2            s=rbuf[3];    
 263   2           for(i=0;i<18;i++)
 264   2           {               
 265   3                
 266   3                 t=My_Array15[i];
 267   3              
 268   3                 if(t==s)
 269   3               {
 270   4                       
 271   4                    if(i>15)
 272   4                        i=22;
 273   4                         
 274   4                    if(i>11 && i<16)
 275   4                           i=i+6;        
 276   4                if(i==10 || i==11)
 277   4                  {
 278   5                   i=(rbuf[4]-1)*2 + i;
 279   5                   if(i>17)
 280   5                   break;
 281   5                  }
 282   4                  
 283   4                         Action(i);
 284   4                 flag_ea=1;
 285   4                         EA=1;                                                  
 286   4                         break;
 287   4                        }
 288   3                      }
 289   2           flag_ea=1;
 290   2           EA=1;
 291   2               r_out=1;
 292   2           r_in=0;
 293   2            }
 294   1        }
 295          
 296          /*--------------------------  
 297          MAIN()
C51 COMPILER V7.01  PROJECT1                                                               05/25/2006 15:21:24 PAGE 6   

 298          ----------------------------*/
 299           
 300          void main (void)
 301          {     
 302   1          P0=0xFF;
 303   1          boot_flag=0xff;
 304   1              EA =1;
 305   1          ES=0;
 306   1          
 307   1      
 308   1          RT_CON1=1;
 309   1          RT_CON2=0;
 310   1          ID5=Camera;
 311   1         
 312   1              PCON  = 0x00;
 313   1              SCON  = 0x50;                   /* SCON: mode 1, 8-bit UART, enable rcvr    */
 314   1              TMOD  = 0x21;                   /* TMOD: timer 1, mode 2, 8-bit reload      */
 315   1          
 316   1          in_p3=~P3;
 317   1          Baut  = in_p3 & 0x60; 
 318   1          Protocol = in_p3 & 0x80;
 319   1          
 320   1          SystemSet();  
 321   1      
 322   1              if (Baut==0x00)
 323   1          {
 324   2              TH1   = 0xFD;                               /* TH1:  reload value for 9600 baud         */
 325   2          }                                
 326   1          else if (Baut==0x40)
 327   1          {
 328   2              TH1   = 0xFA;                               /* TH1:  reload value for 4800 baud         */
 329   2              }
 330   1          else if (Baut==0x20)          
 331   1          {  
 332   2              TH1   = 0xF4;                               /* TH1:  reload value for 2400 baud         */
 333   2              }
 334   1          else 
 335   1              {
 336   2              TH1   = 0xE8;                               /* TH1:  reload value for 1200 baud         */
 337   2              }
 338   1                                          
 339   1          REN   = 1; 
 340   1          TR1= 1;                                     /* TR1:  timer 1 run                        */            
             -                                                          
 341   1          ES=1;                                       //使能中断
 342   1      
 343   1              if((SCONF | 0x7F)==0xFF)                    //WATCH DOG 
 344   1              {
 345   2               SCONF = 0x00;
 346   2               WDTC  = WDTC | 0x20;
 347   2              }
 348   1      
 349   1              WDTC = 0x84;
 350   1      
 351   1              /*---------------主循环----------------*/ 
 352   1          while(1)                                   
 353   1          {    
 354   2           P0=0xFF;
 355   2           if(wdt_count<20)
 356   2           WDTC = WDTC | 0x20;                              /*Clear WDT*/
 357   2      
 358   2               if(flag_ea)                                        /*wait the interrupt*/
C51 COMPILER V7.01  PROJECT1                                                               05/25/2006 15:21:24 PAGE 7   

 359   2               {
 360   3               EA=1;
 361   3               REN=1;
 362   3               }
 363   2              
 364   2           else if (rbuf[0]==0x80)
 365   2           {
 366   3            wdt_count=0;
 367   3            EA=1;
 368   3                REN=1;
 369   3            flag_ea=1;
 370   3           }
 371   2      
 372   2           else if (rbuf[0]==0xFF || rbuf[0]==0xF0 )
 373   2           { 
 374   3                if(rbuf[0]==0xFF)
 375   3                Get_Order4();
 376   3            if(rbuf[0]==0xF0)
 377   3            Get_Order12();
 378   3            EA=1;
 379   3                REN=1;
 380   3            flag_ea=1;
 381   3            wdt_count=0;
 382   3           } 
 383   2      
 384   2           else
 385   2           flag_ea=1;
 386   2              }
 387   1      }                         


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    647    ----
   CONSTANT SIZE    =    148    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     39    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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