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

📄 main.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 3 页
字号:
 231   4                                      { 
 232   5                                         if(!ISP)
 233   5                                              {
C51 COMPILER V7.05   MAIN                                                                  03/05/2003 15:44:08 PAGE 5   

 234   6                                               set=1;
 235   6                                           RXSTAT=2;
 236   6                           START_T0(20);
 237   6                                              }
 238   5                                      
 239   5                                       }
 240   4                                      else
 241   4                                      {
 242   5                      RXSTAT=0; 
 243   5                      CALL_isr_T0();
 244   5                                      }
 245   4                     }
 246   3                         
 247   3                              // RXSTAT=0;
 248   3                       break;
 249   3               case 2:
 250   3                      if(c==ADDR)
 251   3                          {   // LED= !LED;
 252   4                               RXtem[2]=c;
 253   4                   RXSTAT=3;
 254   4                               START_T0(20);
 255   4                              }
 256   3                              else
 257   3                               { 
 258   4                      RXSTAT=0; 
 259   4                      CALL_isr_T0();
 260   4                   }
 261   3                               i=0;
 262   3                      break;
 263   3               case 3:
 264   3                     RX_BEEP=c;
 265   3                          START_T0(20);
 266   3                               RXSTAT=4;
 267   3                               RXtem[3]=c;
 268   3                      /*if(c==ADDR)
 269   3                              { 
 270   3                    
 271   3                               if(set)
 272   3                               {
 273   3                                RXSTAT=4;
 274   3                                START_T0(20);
 275   3                               }
 276   3                               else
 277   3                               {
 278   3                    RXSTAT=0;
 279   3                                rxok=1;
 280   3                    CALL_isr_T0();
 281   3                               }
 282   3                                
 283   3                              }*/
 284   3                      
 285   3                  break;
 286   3                case 4:
 287   3                    if(set)
 288   3                        {
 289   4                      RX_addr=c;
 290   4                              set_ok=1;
 291   4                              set=0;
 292   4                          RXSTAT=0;
 293   4                  CALL_isr_T0();
 294   4                         }
 295   3                         else
C51 COMPILER V7.05   MAIN                                                                  03/05/2003 15:44:08 PAGE 6   

 296   3                         {
 297   4                           CRC.chrX[0]=c;
 298   4                  //SBUF=CRC.chrX[0];
 299   4                              //  while(!TI);
 300   4                      //        TI=0;
 301   4      
 302   4                               RXSTAT=5;
 303   4                               START_T0(20);
 304   4                         }
 305   3                      break;
 306   3                 case 5:
 307   3                      CRC.chrX[1]=c;
 308   3                               //SBUF=CRC.chrX[1];
 309   3                                //while(!TI);
 310   3                               // TI=0;
 311   3                              
 312   3      
 313   3                      //      if(crcx==CRC.intX)//crc交验通过
 314   3                          { 
 315   4                           rxok=1;
 316   4                  }
 317   3                               RXSTAT=0;
 318   3                           CALL_isr_T0();
 319   3                        
 320   3                    break;
 321   3                default:
 322   3                   RXSTAT=0;
 323   3                           break;
 324   3              }
 325   2      
 326   2        }
 327   1       else
 328   1       {
 329   2             TI=0;
 330   2                 
 331   2        }
 332   1      }
 333          /*************************原有的函数需改变*************************************
 334          *                                                                           *
 335          * Function:     isr_timer0                                                  *
 336          *                                                                           *
 337          * Input:        -                                                           *
 338          * Output:       -                                                           *
 339          *                                                                           *
 340          * Description:                                                              *
 341          *                                                                           *
 342          *                                                                           *
 343          ****************************************************************************/
 344          void isr_timer0(void) interrupt 1 using 2
 345          {
 346   1        TR0=0;
 347   1         if(RXTimerOUT!=0)        //此if{}else{} 为新加入的判断超时功能
 348   1          { 
 349   2             RXTimerOUT--;
 350   2          }
 351   1          else
 352   1          {
 353   2            RXSTAT=0;
 354   2            RXNOM=0;
 355   2                set=0;
 356   2          }
 357   1      
C51 COMPILER V7.05   MAIN                                                                  03/05/2003 15:44:08 PAGE 7   

 358   1      
 359   1        
 360   1        TH0=0Xac;
 361   1        TL0=0X95;
 362   1        TR0=1;   
 363   1      }
 364          //**********************************************************
 365          void Send_ok(unsigned char key)
 366          { 
 367   1         unsigned char i;
 368   1          ES=0;
 369   1          TX_EN=1; 
 370   1              //Delay1msa(5);
 371   1              for(i=0;i<8;i++)
 372   1              {
 373   2            SBUF = 0x88;                              // 发送数据
 374   2            while(0==TI);                     // 等待发送完毕
 375   2            TI = 0;                           // 清除发送标志
 376   2                SBUF = 0xff;                          // 发送数据
 377   2            while(0==TI);                     // 等待发送完毕
 378   2            TI = 0;                           // 清除发送标志
 379   2      
 380   2                SBUF = key;                           // 发送数据
 381   2            while(0==TI);                     // 等待发送完毕
 382   2            TI = 0;                           // 清除发送标志
 383   2                SBUF = key;                           // 发送数据
 384   2            while(0==TI);                     // 等待发送完毕
 385   2            TI = 0;                           // 清除发送标志
 386   2         }
 387   1         if(key_tem==0x02)
 388   1         {
 389   2           wring_send_times--;
 390   2               if(wring_send_times==0)
 391   2               {
 392   3              key_tem=0x01;
 393   3               }
 394   2         }
 395   1         else
 396   1         {
 397   2          key_tem=0x01;
 398   2         }
 399   1              TX_EN=0; 
 400   1              //Delay1msa(4);
 401   1          ES=1;
 402   1        
 403   1      }
 404          
 405          /******************************************************************
 406          * 名称:UART_SendByte
 407          * 功能:向串口发送字节数据。
 408          * 入口参数:dat   待发送的数据
 409          * 出口参数:无
 410          ******************************************************************
 411          void  UART_SendByte(uint8 dat)
 412          {  SBUF = dat;                          // 发送数据
 413             while(0==TI);                        // 等待发送完毕
 414             TI = 0;                              // 清除发送标志
 415          }
 416          
 417          
 418          /******************************************************************
 419          * 名称:UART_SendCode
C51 COMPILER V7.05   MAIN                                                                  03/05/2003 15:44:08 PAGE 8   

 420          * 功能:读取FLASH中的数据,并发送到串口。
 421          * 入口参数:addr          读取的起始地址
 422          *          no     读取的数据个数
 423          * 出口参数:无
 424          ******************************************************************
 425          void  UART_SendCode(uint16 addr, uint16 no)
 426          {  uint8 code *readp;
 427          
 428             readp = addr;
 429             for(; no>0; no--)
 430             {  UART_SendByte(*readp++);          // 读取数据并发送
 431             }
 432          }
 433          
 434          */
 435          void flash_led(unsigned char j )
 436          {  
 437   1         char i;
 438   1         for(i=0;i<j;i++)
 439   1         {
 440   2              LED=0;
 441   2              Delay1ms(50);
 442   2                  LED=1;
 443   2                      Delay1ms(50);
 444   2         }
 445   1       LED=1;   
 446   1      }
 447          //***************************************************************
 448          void flash_beep(unsigned char j )
 449          {  
 450   1         char i;
 451   1         beep_delay++;
 452   1         if(beep_delay>40000)
 453   1         {
 454   2          beep_delay=0;
 455   2          for(i=0;i<j;i++)
 456   2          {
 457   3              BEEP=0;
 458   3              Delay1ms(60);
 459   3                  BEEP=1;
 460   3                      Delay1ms(60);
 461   3          }
 462   2         }
 463   1        BEEP=0;       
 464   1         
 465   1      }
 466          //******************************************************************
 467          //**********************************************************
 468          void Setok(void)
 469          { 
 470   1        
 471   1          ES=0;
 472   1          SBUF ='O';                          // 发送数据
 473   1          while(0==TI);                       // 等待发送完毕
 474   1          TI = 0;                             // 清除发送标志
 475   1          SBUF = 'K';                         // 发送数据

⌨️ 快捷键说明

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