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

📄 term3.lst

📁 使用单片机C8050F330对无线发射接受模块进行配置与控制,使组件成为一个无线通讯中的基站.
💻 LST
📖 第 1 页 / 共 4 页
字号:
 301   3                 if (fmbak==245) surt_js=1;
 302   3                 if ((fmbak==240) && (surt_js==1)) surt_js=2;
C51 COMPILER V7.50   TERM3                                                                 04/06/2007 17:58:07 PAGE 6   

 303   3                 else if ((fmbak==204) && (surt_js==1)) surt_js=6;
 304   3                 if ((surt_js==2) && (fmbak<201))
 305   3                 {
 306   4                       surt_js=3;
 307   4               fmbak3=fmbak;
 308   4               he=229+fmbak;
 309   4                 }
 310   3                 if ((surt_js==2) && (fmbak==250))
 311   3                 {
 312   4                       surt_js=3;
 313   4               fmbak3=fmbak;
 314   4                       he=229+fmbak;
 315   4                 }
 316   3                 if ((surt_js==6) && (fmbak<10))
 317   3                 {
 318   4                       surt_js=7;
 319   4               fmbak3=fmbak;
 320   4                       he=193+fmbak;
 321   4                 }
 322   3      
 323   3                 if ((surt_js==7) && (he==fmbak))    
 324   3                 {
 325   4                       surt_js=0;
 326   4                       if (fmbak3<10) b_light=fmbak3+0x30;
 327   4                       if (fmbak3>4) DAC0=(fmbak3-5)*15000;
 328   4                       else DAC0=0;
 329   4                 }
 330   3                 if ((surt_js==3) && (he==fmbak))
 331   3                 {
 332   4                       surt_js=0;
 333   4                       if (fmbak3==250)
 334   4                       {
 335   5                         fm[0]=(2+0x30);       //hundred
 336   5                 fm[1]=(5+0x30);  //ten
 337   5                 fm[2]=(0+0x30);     //one   
 338   5                 Control_inf(fmbak1,fmbak2,0);
 339   5                       }
 340   4                       else
 341   4                       {
 342   5                 fm[0]=(fmbak3/100+0x30);       //hundred
 343   5                 fm[1]=((fmbak3 % 100)/10+0x30);  //ten
 344   5                 fm[2]=(((fmbak3 % 100) % 10)+0x30);     //one   
 345   5                     fmbak1=fmbak3/10+88;
 346   5                     fmbak2=fm[2]-0x30;
 347   5                     Control_inf(fmbak1,fmbak2,1);
 348   5               }
 349   4                 }
 350   3                 
 351   3             RDR=0;
 352   3               }
 353   2      
 354   2         }
 355   1      }
 356          
 357          /////////////////////////////////////
 358          // Config2 Code Configuration File //
 359          /////////////////////////////////////
 360          //----------------------------------------------------------------------------
 361          // P0.0---VREF;  SW_TX0(由于目前在该程序中ADC和DAC尚未初始化,所以SW_TX0暂被
 362          //                       分配在P0.0口上面;否则一切正常初始化完成后,已被分配
 363          //                       在P0.2脚上)
 364          // P0.1---IDA;
C51 COMPILER V7.50   TERM3                                                                 04/06/2007 17:58:07 PAGE 7   

 365          // P0.2---GPIO;  待一切初始化正常后,将作为SW_TX0使用。
 366          // P0.3---CEX0;  SW_RX0
 367          // P0.4---TX0;
 368          // P0.5---RX0;
 369          // P0.6---T0
 370          // P0.7---GPIO;  SW_SPI
 371          // P1.0---GPIO;  SW_SPI
 372          // P1.1---GPIO;  SW_SPI
 373          // P1.2---AIN0
 374          // P1.3---GPIO
 375          // P1.4---GPIO
 376          // P1.5---GPIO;  
 377          // P1.6---GPIO;  
 378          // P1.7---GPIO;  
 379          // Peripheral specific initialization functions,
 380          // Called from the Init_Device() function
 381          void Port_Init()
 382          {
 383   1              P0MDIN    =  0xFE;
 384   1          P0SKIP    =  0x07;
 385   1              P0MDOUT   |= 0x16;
 386   1      
 387   1              P1MDIN    =  0xFF;
 388   1          P1SKIP    =  0x00;
 389   1              P1MDOUT   |= 0x00;
 390   1      
 391   1          XBR0      =  0x01;
 392   1          XBR1      =  0xC1;
 393   1       
 394   1      }
 395          
 396          //-----------------------------------------------------------------------------
 397          // SYSCLK_Init
 398          //-----------------------------------------------------------------------------
 399          //
 400          // This routine initializes the system clock to use the internal oscillator
 401          // at its maximum frequency.
 402          // Also enables the Missing Clock Detector.
 403          //
 404          
 405          void SYSCLK_Init (void)
 406          {
 407   1         OSCICN |= 0x03;                     // Configure internal oscillator for
 408   1                                             // its maximum frequency
 409   1         RSTSRC  = 0x04;                     // Enable missing clock detector
 410   1      
 411   1      }
 412          
 413          //-----------------------------------------------------------------------------
 414          // UART0_Init
 415          //-----------------------------------------------------------------------------
 416          //
 417          // Configure the UART0 using Timer1, for <BAUDRATE> and 8-N-1.
 418          //
 419          void UART0_Init (void)
 420          {
 421   1         SCON0 = 0x10;                       // SCON0: 8-bit variable bit rate
 422   1                                             //        level of STOP bit is ignored
 423   1                                             //        RX enabled
 424   1                                             //        ninth bits are zeros
 425   1                                             //        clear RI0 and TI0 bits
 426   1         if (SYSCLK/BAUDRATE/2/256 < 1) {
C51 COMPILER V7.50   TERM3                                                                 04/06/2007 17:58:07 PAGE 8   

 427   2            TH1 = -(SYSCLK/BAUDRATE/2);
 428   2            CKCON &= ~0x0B;                  // T1M = 1; SCA1:0 = xx
 429   2            CKCON |=  0x08;
 430   2         } else if (SYSCLK/BAUDRATE/2/256 < 4) {
 431   2            TH1 = -(SYSCLK/BAUDRATE/2/4);
 432   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01                  
 433   2            CKCON |=  0x09;
 434   2         } else if (SYSCLK/BAUDRATE/2/256 < 12) {
 435   2            TH1 = -(SYSCLK/BAUDRATE/2/12);
 436   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
 437   2         } else {
 438   2            TH1 = -(SYSCLK/BAUDRATE/2/48);
 439   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
 440   2            CKCON |=  0x02;
 441   2         }
 442   1      
 443   1         TL1 = TH1;                          // init Timer1
 444   1         TMOD &= ~0xf0;                      // TMOD: timer 1 in 8-bit autoreload
 445   1         TMOD |=  0x20;                       
 446   1         TR1 = 1;                            // START Timer1
 447   1         TI0 = 1;                            // Indicate TX0 ready
 448   1      }
 449          
 450          void SW_UART_Init (void)
 451          {  
 452   1          PCA0MD    = 0x02;                   //PCA counter use SYSCLK/4 as timebase
 453   1              PCA0CPM1  = 0x49;                   //PCA0CPM1:capture triggered by
 454   1                                                  //negative edge on P0.3,enable module1
 455   1                                                                                      //interrupt
 456   1          PCA0CPM0  = 0x11;                   //PCA0CPM0:software timer mode,enable 
 457   1                                                  //module 0 interrupt
 458   1          
 459   1          PCA0CN    |= 0x40;                  //enables the PCA Counter/Timer.
 460   1      
 461   1              CCF0      = 0;
 462   1              CCF1      = 0;
 463   1              SRI       = 0;                      //????????
 464   1              STI       = 0;                      // ????????
 465   1          SW_TX     = 1;                      // TX????????
 466   1          STXBSY    = 0;                      // ??SW_UART???
 467   1              SREN      = 1;                      //????
 468   1      }
 469          
 470          //-----------------------------------------------------------------------------
 471          // ???0???
 472          //-----------------------------------------------------------------------------
 473          
 474          void Timer0_Init (void)
 475          {
 476   1        TMOD|=0X06;         //COUNT0
 477   1        TL0=0X0FF;    //interrupt when every pulse come
 478   1        TH0=0X0FF;
 479   1        EA=1;
 480   1        ET0=1;                      //COUNT0 INT ENABLE
 481   1        TR0=1;                      //COUNT0 START
 482   1      }
 483          
 484          void Timer0_ISR (void) interrupt 1
 485          {
 486   1        Pulse_s++;
 487   1      }
 488          
C51 COMPILER V7.50   TERM3                                                                 04/06/2007 17:58:07 PAGE 9   

 489          //-----------------------------------------------------------------------------
 490          // ADC0_Init ADBUSY, LP tracking, no Interrupt, ADC disabled
 491          //-----------------------------------------------------------------------------
 492          //
 493          // Configure ADC0 to use ADBUSY as conversion source, and to sense the output 
 494          // of the temp sensor.  Disables ADC end of conversion interrupt. Leaves ADC 
 495          // disabled.
 496          //
 497          void AD_Init (void)
 498          {
 499   1         ADC0CN = 0x40;                      // ADC0 disabled; LP tracking
 500   1                                             // mode; ADC0 conversions are initiated 
 501   1                                             // on a write to ADBusy
 502   1         AMX0P  = 0x0a;                      // Temp sensor selected at + input
 503   1         AMX0N  = 0x11;                      // Single-ended mode
 504   1      
 505   1         ADC0CF = (SYSCLK/3000000) << 3;     // ADC conversion clock <= 3MHz   
 506   1      
 507   1         ADC0CF &= ~0x04;                    // Make ADC0 right-justified
 508   1         REF0CN = 0x0E;                      // enable temp sensor, VREF = VDD, bias
 509   1                                             // generator is on.
 510   1      
 511   1         //EIE1 |=  0x08;                      // Enable ADC0 interrupt
 512   1         ADC0CN = 0x80;
 513   1         AD0BUSY = 1;
 514   1      }
 515          
 516          
 517          void Timer3_ISR (void) interrupt 14   //2.5ms
 518          {
 519   1         TMR3CN &= ~0x80;   
 520   1         key_scan_time++;  
 521   1      
 522   1         count_time++;
 523   1      
 524   1         key_press_time++;
 525   1      
 526   1         if (LcdBackLight_Delay_AfterS2410>0) LcdBackLight_Delay_AfterS2410--;
 527   1         else if (key_zt==99)
 528   1         {
 529   2         }
 530   1      
 531   1         if (key_time>0) key_time--;else key_time=0;
 532   1                           
 533   1         test++;
 534   1      
 535   1         if (GPS_Alarm_js>0) GPS_Alarm_js--;else GPS_Alarm_js=0;
 536   1      
 537   1         if (GPS_time>0) GPS_time--;else GPS_time=0;
 538   1      
 539   1         if (FM_delay>0) FM_delay--;else FM_delay=0;
 540   1      
 541   1      }
 542          
 543          void Measure (void)
 544          {
 545   1        // (X*5-Y)/25=Z    X:采样数字   Y:基准(mV)  Z:角度
 546   1         AMX0P  = 0x0a;
 547   1         AMX0N  = 0x11;
 548   1         AD0INT = 0;
 549   1         AD0BUSY = 1;
 550   1         while (!AD0INT);                 // Wait for conversion to complete
C51 COMPILER V7.50   TERM3                                                                 04/06/2007 17:58:07 PAGE 10  

 551   1         AD0INT = 0;                      // Clear end-of-conversion indicator
 552   1         TL_Adresult=ADC0;                    // Store latest ADC conversion          
 553   1         
 554   1         AMX0P  = 0x00;
 555   1         AMX0N  = 0x11;
 556   1         AD0INT = 0;
 557   1         AD0BUSY = 1;
 558   1         while (!AD0INT);                 // Wait for conversion to complete
 559   1         AD0INT = 0;                      // Clear end-of-conversion indicator
 560   1         GPS_Current=ADC0;                    // Store latest ADC conversion 
 561   1      }
 562          
 563          //-----------------------------------------------------------------------------
 564          //  ???3???
 565          //-----------------------------------------------------------------------------
 566          void Timer3_Init ()
 567          {
 568   1         TMR3CN = 0x00;                                     
 569   1         CKCON |= 0x40;   
 570   1         TMR3RL  = -60000;               
 571   1         TMR3    = TMR3RL;                  
 572   1         EIE1 |= 0x80;                      
 573   1         TMR3CN |= 0x04;                
 574   1      
 575   1      }
 576          
 577          /*****************************************
 578          *      Uart Interrupt
 579          *
 580          *****************************************/
 581          void Rcv_INT(void) interrupt 4
 582          {
 583   1        unsigned char tmp;
 584   1        RI0=0;
 585   1        tmp=RecvByte;
 586   1        UartBuff=SBUF0;
 587   1        RecvByte++;  
 588   1        if (RecvByte<HeaderLength+1)
 589   1        {
 590   2          Header[tmp]=UartBuff;
 591   2        }
 592   1        if(RecvByte==HeaderLength)
 593   1        {
 594   2          if((Header[0]=='$')&&(Header[1]=='G')&&(Header[2]=='P')&&(Header[3]=='G')&&(Header[4]=='G')&&(Header[5
             -]=='A'))   
 595   2          {                  //if it is a "$GPGGA" frame
 596   3            FrameLength=1;
 597   3          }
 598   2              else  if((Header[0]=='$')&&(Header[1]=='G')&&(Header[2]=='P')&&(Header[3]=='R')&&(Header[4]=='M')&&(Heade
             -r[5]=='C'))   
 599   2          {                  //if it is a "$GPGGA" frame
 600   3            FrameLength=3;
 601   3          }
 602   2          else 
 603   2         { 
 604   3            FrameLength=2;                //if it is other frame,discard it
 605   3          }                              
 606   2      

⌨️ 快捷键说明

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