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

📄 term3.lst

📁 使用单片机C8051F330对无线发射接收模块进行配置与控制,使组件成为无线通讯中的终端,可与基站进行双向通讯
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   TERM3                                                                 11/21/2006 18:11:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TERM3
OBJECT MODULE PLACED IN Term3.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE score\Term3.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Term3.lst) OBJECT(Ter
                    -m3.obj)

line level    source

   1          //-----------------------------------------------------------------------------
   2          // Includes
   3          //-----------------------------------------------------------------------------
   4          
   5          #include <c8051f330.h>                 // SFR declarations
   6          #include<math.h>
   7          #include <intrins.h>
   8          
   9          //-----------------------------------------------------------------------------
  10          // 16-bit SFR Definitions for 'F33x
  11          //-----------------------------------------------------------------------------
  12          
  13          sfr16 DAC0     = 0x96;                 // 10?DAC?????
  14          //sfr16 TMR0RL   = 0xca;                 //  ???0???????
  15          //sfr16 TMR1RL   = 0xca;                 //  ???1???????
  16          sfr16 TMR2RL   = 0xca;                  // ???2???????
  17          sfr16 TMR3RL   = 0x92;                  // ???3???????
  18          //sfr16 TMR0     = 0xCC;                 //  ???0?????
  19          //sfr16 TMR1     = 0xCC;                 //  ???1?????
  20          sfr16 TMR2     = 0xcc;                 //  ???2?????
  21          sfr16 TMR3     = 0x94;                 //  ???3?????
  22          sfr16 ADC0     = 0xbd;                 // ADC Data Word Register
  23          
  24          //----------------------------------------------------------------------------
  25          //终端模块的地址定义
  26          #define     ADDRESS    65535
  27          
  28          #define  ORDER     0x1E                           
  29          #define  LENGTH      19               //有效数据为19个字节
  30          
  31          //----------------------------------------------------------------------------
  32          //global constant
  33          //----------------------------------------------------------------------------
  34          #define BAUDRATE                  57600     //?????SW_UART???
  35          #define SYSCLK                  24500000     //????????18.432MHz
  36          #define BAUDRATE1                  9600
  37          #define TIME_COUNT     SYSCLK/BAUDRATE1/4
  38          //#define TIME_COUNT     SYSCLK/BAUDRATE/4     //????????PCA???
  39                                                       //(PCA?????SYSCLK/4??)
  40          
  41          #define TH_TIME_COUNT     TIME_COUNT*3/2     //3/2???,?????????
  42                                                       //??????????RX????
  43                                                                                                   //?????????,????
  44                                                                                                   //??????????????
  45          
  46          #define TIMER2_RATE     20                   // Timer 2 overflow rate in Hz
  47          #define SAMPLE_RATE     50000 
  48                                                                  
  49          #define HeaderLength  6
  50          #define UTCtimeLength 6 
  51          
  52          #define SW_HeaderLength 7
  53          //----------------------------------------------------------------------------
  54          //全局变量
C51 COMPILER V7.50   TERM3                                                                 11/21/2006 18:11:14 PAGE 2   

  55          //----------------------------------------------------------------------------
  56          sbit    SLEEP       = P1^0;
  57          sbit    RESRT       = P1^1;
  58          sbit    Batt_Low    = P1^2;
  59          sbit    LED             = P1^3;
  60          sbit    KEY         = P1^4;
  61          
  62          sbit    GPS_SW      = P0^1;
  63          sbit    SW_TX       = P0^2;                  // SW_UART发送引脚
  64          sbit    SW_RX       = P0^3;                  // SW_UART接收引脚
  65          bit     SRI;                                 // SW_UART接收完成标志
  66          bit     STI;                                 // SW_UART发送完成标志
  67          bit     SREN;                                // SW_UART接收允许
  68          bit     STXBSY;                              // SW_UART发送忙标志
  69          char idata RDR;                              // SW_UART接收数据存储器(锁存器)
  70          char idata TDR;                              // SW_UART发送数据寄存器
  71          
  72          void Port_Init(void);                        // Initialize Port I/O
  73          void SYSCLK_Init (void);                     // Initialize Oscillator
  74          void SW_UART_Init (void);
  75          void UART0_Init (void);
  76          void AD_Init (void);
  77          void Timer0_Init (void);
  78          void Timer2_Init (int);
  79          void Timer3_Init (void);
  80          void wait_one_second (void);
  81          void Key_scan(void);
  82          void Send_GPS(void);
  83          void Variable_Init(void);
  84          void Key_process(void);
  85          void Measure(void);
  86          void Delay_1uS(unsigned int  j);
  87          void SW_Uart_Receive(void);
  88          void Send_GPS1(void);
  89          void Send_Term(void);
  90          void SW_UartRecevie();
  91          unsigned int test;
  92          unsigned int  currval;
  93          unsigned int  DA_data;
  94          
  95          unsigned char ii;
  96          unsigned char tx_data;
  97          
  98          
  99          unsigned char key_pre;
 100          unsigned char key_work;
 101          unsigned char key_scan_time;
 102          unsigned int  key_time;
 103          unsigned char key_zt;
 104          unsigned int  LcdBackLight_Delay_AfterS2410;
 105          
 106          unsigned char idata SW_RecvByte;                           //接收到的字节数
 107          unsigned char idata SW_UartBuff;                           //接收数据缓冲
 108          unsigned char idata SW_Header[7];                          //接收数据侦头
 109          unsigned char idata SW_Recv_Command;               //接收到的命
 110          unsigned char idata SW_Command[2];
 111          unsigned int  idata SW_RecvAddress;                //接收到的地址
 112          unsigned char idata SW_Address[5];                    //
 113          unsigned char idata SW_FrameLength;                   //判断是否为寻找自己的数
 114          unsigned char idata SW_IsFrame;
 115          unsigned char idata SW_RecvOver;
 116          unsigned char idata SW_CRByte;
C51 COMPILER V7.50   TERM3                                                                 11/21/2006 18:11:14 PAGE 3   

 117          unsigned char idata SW_LFByte;
 118          
 119          
 120          unsigned char CRByte;
 121          unsigned char LFByte;
 122          unsigned char PulseCount;
 123          unsigned char S_PulseCount[3];
 124          unsigned char RecvByte;
 125          unsigned char UartBuff;
 126          unsigned char IsGpsFrame;
 127          //unsigned char SW_FrameLength;
 128          unsigned char FrameLength;
 129          unsigned char idata Header[6];
 130          unsigned char idata UTCtime[10];
 131          unsigned char idata Latitude[11];
 132          unsigned char idata Longitude[10];
 133          unsigned char HDOP[4];
 134          unsigned char DGPS;
 135          unsigned char weixing[2];
 136          unsigned char gps_ok;
 137          unsigned char fm[4];
 138          unsigned char fmbak;
 139          unsigned char fmbak1;
 140          unsigned char fmbak2;
 141          unsigned char fmbak3;
 142          unsigned char surt_js;
 143          unsigned char he;
 144          unsigned char FM_delay;
 145          unsigned char FM_flag;
 146          
 147          unsigned char S_Pulse_s[3];
 148          unsigned char S_AdResult0[4];                 //Ad Result backup for sending 
 149          unsigned char S_AdResult1[4];                 //Ad Result backup for sending   
 150          unsigned char S_AdResult2[4];                 //Ad Result backup for sending                         
 151          unsigned char S_AdResult3[4];                 //Ad Result backup for sending   
 152          unsigned char S_AdResult4[4];                 //Ad Result backup for sending 
 153          unsigned char t1;
 154          
 155          unsigned char ii;
 156          unsigned int key_bg_time;
 157          unsigned char POWER_SW_delay;
 158          
 159          unsigned int zero_all;
 160          unsigned int zero_front;
 161          unsigned char zero_time;
 162          unsigned int zero;
 163          unsigned int zero_all_front;
 164          unsigned char init_flag;
 165          unsigned char zero_time1;
 166          unsigned int zero_all1;
 167          unsigned int zero_single;
 168          unsigned char bujiu;
 169          unsigned char bujiu_js;
 170          
 171          unsigned char count_time;
 172          unsigned char sample_time;
 173          unsigned char Pulse_s;
 174          unsigned char S_Pulse_s[3];
 175          
 176          unsigned int AdResult[5];
 177          unsigned int tempAdResult;
 178          unsigned int tl;
C51 COMPILER V7.50   TERM3                                                                 11/21/2006 18:11:14 PAGE 4   

 179          
 180          unsigned int TL_Adresult;
 181          
 182          unsigned int AdR[5];
 183          
 184          unsigned int GPS_Current;
 185          unsigned int GPS_Current_pre;
 186          
 187          unsigned char riqi[6];
 188          unsigned char GPS_Alarm[2];
 189          unsigned int GPS_Alarm_js;
 190          unsigned int GPS_time;
 191          
 192          unsigned char b_light;
 193          
 194          unsigned int key_press_time;
 195          
 196          unsigned int test1;
 197          
 198          unsigned char Batt_State;
 199          
 200          //-----------------------------------------------------------------------------
 201          // MAIN Routine
 202          //-----------------------------------------------------------------------------
 203          
 204          void main (void) 
 205          {
 206   1      
 207   1        unsigned char G = 0;
 208   1         // Disable Watchdog timer
 209   1         PCA0MD &= ~0x40;                    // WDTE = 0 (clear watchdog timer 
 210   1                                             // enable)
 211   1         Port_Init();                        // Initialize Port I/O
 212   1         SYSCLK_Init ();                     // Initialize Oscillator
 213   1         SW_UART_Init ();
 214   1         UART0_Init ();
 215   1      
 216   1         AD_Init ();
 217   1         Timer0_Init ();
 218   1         Timer3_Init ();
 219   1         Variable_Init();
 220   1      
 221   1         EIE1  |= 0x10;                      // enable PCA interrupt
 222   1         EIP1  |= 0x10;
 223   1         ET0=1;
 224   1         ES0=1;
 225   1      
 226   1         EA = 1;
 227   1      
 228   1         while(1)
 229   1         {
 230   2           SW_UartRecevie();
 231   2      
 232   2      //       Send_GPS1();
 233   2      //       Send_GPS();
 234   2      //       Send_Term();
 235   2          
 236   2                   LED = 1;
 237   2         }
 238   1      }
 239          
 240          /////////////////////////////////////
C51 COMPILER V7.50   TERM3                                                                 11/21/2006 18:11:14 PAGE 5   

 241          // Config2 Code Configuration File //
 242          /////////////////////////////////////
 243          //----------------------------------------------------------------------------
 244          // P0.0---VREF;  SW_TX0(由于目前在该程序中ADC和DAC尚未初始化,所以SW_TX0暂被
 245          //                       分配在P0.0口上面;否则一切正常初始化完成后,已被分配
 246          //                       在P0.2脚上)
 247          // P0.1---IDA;
 248          // P0.2---GPIO;  待一切初始化正常后,将作为SW_TX0使用。
 249          // P0.3---CEX0;  SW_RX0
 250          // P0.4---TX0;
 251          // P0.5---RX0;
 252          // P0.6---T0
 253          // P0.7---GPIO;  SW_SPI
 254          // P1.0---GPIO;  SW_SPI
 255          // P1.1---GPIO;  SW_SPI
 256          // P1.2---AIN0
 257          // P1.3---GPIO
 258          // P1.4---GPIO
 259          // P1.5---GPIO;  
 260          // P1.6---GPIO;  
 261          // P1.7---GPIO;  
 262          // Peripheral specific initialization functions,
 263          // Called from the Init_Device() function
 264          void Port_Init()
 265          {
 266   1              P0MDIN    =  0xFE;
 267   1          P0SKIP    =  0x07;
 268   1              P0MDOUT   |= 0x14;
 269   1      
 270   1              P1MDIN    =  0xFF;
 271   1          P1SKIP    =  0x00;
 272   1              P1MDOUT   |= 0x00;
 273   1      
 274   1          XBR0      =  0x01;
 275   1          XBR1      =  0xC1;                    
 276   1      }
 277          
 278          //-----------------------------------------------------------------------------
 279          // SYSCLK_Init
 280          //-----------------------------------------------------------------------------
 281          //
 282          // This routine initializes the system clock to use the internal oscillator
 283          // at its maximum frequency.
 284          // Also enables the Missing Clock Detector.
 285          //
 286          
 287          void SYSCLK_Init (void)
 288          {
 289   1         OSCICN |= 0x03;                     // Configure internal oscillator for
 290   1                                             // its maximum frequency
 291   1         RSTSRC  = 0x04;                     // Enable missing clock detector
 292   1      
 293   1      }
 294          
 295          //-----------------------------------------------------------------------------
 296          // UART0_Init
 297          //-----------------------------------------------------------------------------
 298          //
 299          // Configure the UART0 using Timer1, for <BAUDRATE> and 8-N-1.
 300          //
 301          void UART0_Init (void)
 302          {
C51 COMPILER V7.50   TERM3                                                                 11/21/2006 18:11:14 PAGE 6   

 303   1         SCON0 = 0x10;                       // SCON0: 8-bit variable bit rate
 304   1                                             //        level of STOP bit is ignored
 305   1                                             //        RX enabled
 306   1                                             //        ninth bits are zeros
 307   1                                             //        clear RI0 and TI0 bits
 308   1         if (SYSCLK/BAUDRATE/2/256 < 1) {
 309   2            TH1 = -(SYSCLK/BAUDRATE/2);
 310   2            CKCON &= ~0x0B;                  // T1M = 1; SCA1:0 = xx
 311   2            CKCON |=  0x08;
 312   2         } else if (SYSCLK/BAUDRATE/2/256 < 4) {
 313   2            TH1 = -(SYSCLK/BAUDRATE/2/4);
 314   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01                  
 315   2            CKCON |=  0x09;
 316   2         } else if (SYSCLK/BAUDRATE/2/256 < 12) {
 317   2            TH1 = -(SYSCLK/BAUDRATE/2/12);
 318   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
 319   2         } else {
 320   2            TH1 = -(SYSCLK/BAUDRATE/2/48);
 321   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
 322   2            CKCON |=  0x02;
 323   2         }
 324   1      

⌨️ 快捷键说明

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