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

📄 mmm.lst

📁 用51控制对401的收发程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 167   4                               }
 168   3                       break;
 169   3                case 2:              //接收长度
 170   3                  
 171   3                      RX_len=c;
 172   3                              if(RX_len>16)
 173   3                                {
 174   4                                  RX_len=0;
 175   4                                  RXSTAT=0;
C51 COMPILER V7.07   MMM                                                                   02/25/2009 22:17:42 PAGE 4   

 176   4                                      CALL_isr_T0();
 177   4                                }
 178   3                               else
 179   3                               {
 180   4                                RXNOM=0;
 181   4                        START_T0(20);
 182   4                    RXSTAT=3;
 183   4                               }
 184   3                      break;
 185   3                case 3:
 186   3                     
 187   3                      RXtem[RXNOM]=c;
 188   3                              RXNOM++;
 189   3                              if(RXNOM==RX_len)
 190   3                              {
 191   4                                RXSTAT=4;  
 192   4                              }
 193   3                               START_T0(20);
 194   3                      break;
 195   3                 case 4:
 196   3                       add=0;
 197   3                           for(i=0;i<RXNOM;i++)
 198   3                    {
 199   4                         add=add+RXtem[i];
 200   4                     }
 201   3                                if(c==add)
 202   3                                {
 203   4                                  rxok=1;
 204   4                                }
 205   3                  
 206   3                    CALL_isr_T0();
 207   3                                RXSTAT=0;
 208   3                                break;
 209   3                default:
 210   3                   RXSTAT=0;
 211   3                           break;
 212   3              }
 213   2      
 214   2        }
 215   1       else
 216   1       {
 217   2             TI=0;
 218   2                 
 219   2        }
 220   1      }
 221          /*************************原有的函数需改变*************************************
 222          *                                                                           *
 223          * Function:     isr_timer0                                                  *
 224          *                                                                           *
 225          * Input:        -                                                           *
 226          * Output:       -                                                           *
 227          *                                                                           *
 228          * Description:                                                              *
 229          *                                                                           *
 230          *                                                                           *
 231          ****************************************************************************/
 232          void isr_timer0(void) interrupt 1 using 2
 233          {
 234   1        TR0=0;
 235   1         if(RXTimerOUT!=0)        //此if{}else{} 为新加入的判断超时功能
 236   1          { 
 237   2             RXTimerOUT--;
C51 COMPILER V7.07   MMM                                                                   02/25/2009 22:17:42 PAGE 5   

 238   2          }
 239   1          else
 240   1          {
 241   2            RXSTAT=0;
 242   2            RXNOM=0;
 243   2          }
 244   1      
 245   1      
 246   1        
 247   1        TH0=0X4c;
 248   1        TL0=0X95;
 249   1        TR0=1;   
 250   1      }
 251          //***********************************************************
 252          void Send_ok(void)
 253          {
 254   1         char i;
 255   1              ES=0;
 256   1      for(i=0;i<2;i++)
 257   1      {
 258   2              SBUF=0Xff;
 259   2              while(!TI);
 260   2              TI=0; 
 261   2              SBUF=0X55;
 262   2              while(!TI);
 263   2              TI=0;
 264   2              SBUF=0XAA;
 265   2              while(!TI);
 266   2              TI=0;
 267   2      }
 268   1              ES=1;
 269   1      }
 270          //***************************************************
 271          void test(void)
 272          {
 273   1         while(1)
 274   1         { 
 275   2           TX_EN=! TX_EN;
 276   2          Delay1ms(5);
 277   2          TX_EN=! TX_EN;
 278   2          Delay1ms(5);
 279   2         }
 280   1      
 281   1      }
 282          //**************************************************************************
 283          void main(void)
 284          {
 285   1          // unsigned int xx;
 286   1      
 287   1           unsigned char i;
 288   1               unsigned long yyy=0;
 289   1              Test_led=!Test_led;
 290   1              Delay100ms(5);
 291   1              Test_led=!Test_led;
 292   1              wdog=! wdog;
 293   1          TX_EN=0;
 294   1              init_com();
 295   1      //      ES=0;
 296   1       //test();
 297   1      
 298   1              ES=1;
 299   1          i=0;
C51 COMPILER V7.07   MMM                                                                   02/25/2009 22:17:42 PAGE 6   

 300   1          PWR_UP=1;
 301   1          CS=01;
 302   1          EA=1;
 303   1      
 304   1        while(1)
 305   1         {
 306   2           wdog=! wdog;
 307   2           TX_EN=0;
 308   2           RX=1;
 309   2            if(rxok)
 310   2            { 
 311   3                  rxok=0;
 312   3                      TX_EN=1;
 313   3              RX=1;
 314   3                      TX=1;
 315   3                  Delay1ms(3);
 316   3                  Send_ok();
 317   3            
 318   3             // Delay1ms(1);
 319   3              TX_EN=0;
 320   3                  RX=1;
 321   3                      Delay1ms(3);
 322   3                              Test_led=!Test_led;
 323   3                       Delay1ms(60);
 324   3                  Test_led=!Test_led; 
 325   3                }
 326   2                      //      Test_led=!Test_led;
 327   2         }
 328   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    483    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     28       5
   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 + -