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

📄 f334.lst

📁 使用单片机C8050F330对无线发射接受模块进行配置与控制,使组件成为一个无线通讯中的基站.
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.02   F334                                                                  07/13/2006 10:09:54 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE F334
OBJECT MODULE PLACED IN F334.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE source\F334.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\F334.lst) OBJECT(F334
                    -.obj)

line level    source

   1          //-----------------------------------------------------------------------------
   2          // T2Cal33x.c
   3          //-----------------------------------------------------------------------------
   4          // Copyright 2002 Cygnal Integrated Products, Inc.
   5          //
   6          // AUTH: CATHY
   7          // DATE: 04 FEB 03
   8          // 资源配置情况:VREF既作为内部A/D基准,又输出给外部电路
   9          //               1根DA
  10          //               3根A/D
  11          //                       4根串口现
  12          //               1根复位
  13          //               2根电源
  14          //               一个定时器+
  15          //               两个GPIO,
  16          //               3根SPI,
  17          // Target: C8051F33x
  18          // Tool chain: KEIL C51 6.03 / KEIL EVAL C51
  19          // 程序说明:
  20          //      
  21          // 用在带GPS天线短路保护的便携式SVA导航仪上
  22          // SJQQC版本,带日期输出
  23          //            带天线短路告警,没告警输出为0,有告警输出为85
  24          // 算法改为:(X * 5 - Y)/ 25 = 角度    X:采样数字   Y:基准
  25          // 本程序用于500套正式生产
  26          // 与SDA程序的区别:1.FM接口定义变动
  27          //                  2.增加日期
  28          //                  3.增加长按关机,同时给WINCE存盘提供时间
  29          //                  4.增加背光调节协议
  30          //                  
  31          // 
  32          
  33          //-----------------------------------------------------------------------------
  34          // Includes
  35          //-----------------------------------------------------------------------------
  36          
  37          #include <c8051f330.h>                 // SFR declarations
  38          #include<math.h>
  39          #include <intrins.h>
  40          
  41          //-----------------------------------------------------------------------------
  42          // 16-bit SFR Definitions for 'F33x
  43          //-----------------------------------------------------------------------------
  44          
  45          sfr16 DAC0     = 0x96;                 // 10?DAC?????
  46          //sfr16 TMR0RL   = 0xca;                 //  ???0???????
  47          //sfr16 TMR1RL   = 0xca;                 //  ???1???????
  48          sfr16 TMR2RL   = 0xca;                  // ???2???????
  49          sfr16 TMR3RL   = 0x92;                  // ???3???????
  50          //sfr16 TMR0     = 0xCC;                 //  ???0?????
  51          //sfr16 TMR1     = 0xCC;                 //  ???1?????
  52          sfr16 TMR2     = 0xcc;                 //  ???2?????
  53          sfr16 TMR3     = 0x94;                 //  ???3?????
  54          sfr16 ADC0     = 0xbd;                 // ADC Data Word Register
C51 COMPILER V8.02   F334                                                                  07/13/2006 10:09:54 PAGE 2   

  55          
  56          
  57          sbit  BG_EN = P1^3;
  58          sbit  S2410_PWR = P1^4;//sbit  S2410_PWR = P1^7;
  59          sbit  PWR_KEY = P1^6;
  60          sbit  LED_TEST = P1^7;
  61          
  62          sbit  bh_en = P0^7;
  63          sbit  bh_clk  = P1^0;
  64          sbit  bh_data   =       P1^1;
  65          //----------------------------------------------------------------------------
  66          //global constant
  67          //----------------------------------------------------------------------------
  68          #define BAUDRATE                  57600     //?????SW_UART???
  69          #define SYSCLK                  24500000     //????????18.432MHz
  70          #define BAUDRATE1                  9600
  71          #define TIME_COUNT     SYSCLK/BAUDRATE1/4
  72          //#define TIME_COUNT     SYSCLK/BAUDRATE/4     //????????PCA???
  73                                                       //(PCA?????SYSCLK/4??)
  74          
  75          #define TH_TIME_COUNT     TIME_COUNT*3/2     //3/2???,?????????
  76                                                       //??????????RX????
  77                                                                                                   //?????????,????
  78                                                                                                   //??????????????
  79          
  80          #define TIMER2_RATE     20                   // Timer 2 overflow rate in Hz
  81          #define SAMPLE_RATE     50000 
  82                                                                  
  83          #define HeaderLength 6
  84          #define UTCtimeLength 6                                  
  85          //----------------------------------------------------------------------------
  86          //全局变量
  87          //----------------------------------------------------------------------------
  88          sbit    GPS_SW = P1^5;
  89          sbit    SW_RX = P0^3;                        // SW_UART接收引脚
  90          sbit    SW_TX = P0^2;                        // SW_UART发送引脚
  91          bit     SRI;                                 // SW_UART接收完成标志
  92          bit     STI;                                 // SW_UART发送完成标志
  93          bit     SREN;                                // SW_UART接收允许
  94          bit     STXBSY;                              // SW_UART发送忙标志
  95          char    RDR;                                 // SW_UART接收数据存储器(锁存器)
  96          char    TDR;                                 // SW_UART发送数据寄存器
  97          
  98          void PORT_Init(void);                        // Initialize Port I/O
  99          void SYSCLK_Init (void);                     // Initialize Oscillator
 100          void SW_UART_Init (void);
 101          void UART0_Init (void);
 102          void AD_Init (void);
 103          void DA_Init (void);
 104          void Timer0_Init (void);
 105          void Timer2_Init (int);
 106          void Timer3_Init (void);
 107          void wait_one_second (void);
 108          void Key_scan(void);
 109          void Send_GPS(void);
 110          void Variable_Init(void);
 111          void Key_process(void);
 112          void Measure(void);
 113          void send_contr_word(unsigned int Cotrdata);
 114          void Control_inf(unsigned char dx1,dx2,dx3);
 115          void Delay_1uS(void);
 116          
C51 COMPILER V8.02   F334                                                                  07/13/2006 10:09:54 PAGE 3   

 117          unsigned int test;
 118          unsigned int  currval;
 119          unsigned int  DA_data;
 120          
 121          unsigned char ii;
 122          unsigned char tx_data;
 123          
 124          
 125          unsigned char key_pre;
 126          unsigned char key_work;
 127          unsigned char key_scan_time;
 128          unsigned int  key_time;
 129          unsigned char key_zt;
 130          unsigned int  LcdBackLight_Delay_AfterS2410;
 131          
 132          
 133          unsigned char CRByte;
 134          unsigned char LFByte;
 135          unsigned char PulseCount;
 136          unsigned char S_PulseCount[3];
 137          unsigned char RecvByte;
 138          unsigned char UartBuff;
 139          unsigned char IsGpsFrame;
 140          unsigned char FrameLength;
 141          unsigned char Header[6];
 142          unsigned char UTCtime[10];
 143          unsigned char Longitude[10];
 144          unsigned char Latitude[11];
 145          unsigned char HDOP[4];
 146          unsigned char DGPS;
 147          unsigned char weixing[2];
 148          unsigned char gps_ok;
 149          unsigned char fm[4];
 150          unsigned char fmbak;
 151          unsigned char fmbak1;
 152          unsigned char fmbak2;
 153          unsigned char fmbak3;
 154          unsigned char surt_js;
 155          unsigned char he;
 156          unsigned char FM_delay;
 157          unsigned char FM_flag;
 158          
 159          unsigned char S_Pulse_s[3];
 160          unsigned char S_AdResult0[4];                 //Ad Result backup for sending 
 161          unsigned char S_AdResult1[4];                 //Ad Result backup for sending   
 162          unsigned char S_AdResult2[4];                 //Ad Result backup for sending                         
 163          unsigned char S_AdResult3[4];                 //Ad Result backup for sending   
 164          unsigned char S_AdResult4[4];                 //Ad Result backup for sending 
 165          unsigned char t1;
 166          
 167          unsigned char ii;
 168          unsigned int key_bg_time;
 169          unsigned char POWER_SW_delay;
 170          
 171          unsigned int zero_all;
 172          unsigned int zero_front;
 173          unsigned char zero_time;
 174          unsigned int zero;
 175          unsigned int zero_all_front;
 176          unsigned char init_flag;
 177          unsigned char zero_time1;
 178          unsigned int zero_all1;
C51 COMPILER V8.02   F334                                                                  07/13/2006 10:09:54 PAGE 4   

 179          unsigned int zero_single;
 180          unsigned char bujiu;
 181          unsigned char bujiu_js;
 182          
 183          unsigned char count_time;
 184          unsigned char sample_time;
 185          unsigned char Pulse_s;
 186          unsigned char S_Pulse_s[3];
 187          
 188          unsigned int AdResult[5];
 189          unsigned int tempAdResult;
 190          unsigned int tl;
 191          
 192          unsigned int TL_Adresult;
 193          
 194          unsigned int AdR[5];
 195          
 196          unsigned int GPS_Current;
 197          unsigned int GPS_Current_pre;
 198          
 199          unsigned char riqi[6];
 200          unsigned char GPS_Alarm[2];
 201          unsigned int GPS_Alarm_js;
 202          unsigned int GPS_time;
 203          
 204          unsigned char b_light;
 205          
 206          unsigned int key_press_time;
 207          
 208          unsigned int test1;
 209          
 210          //-----------------------------------------------------------------------------
 211          // MAIN Routine
 212          //-----------------------------------------------------------------------------
 213          
 214          void main (void) 
 215          {
 216   1      
 217   1         // Disable Watchdog timer
 218   1         PCA0MD &= ~0x40;                    // WDTE = 0 (clear watchdog timer 
 219   1                                             // enable)
 220   1         PORT_Init();                        // Initialize Port I/O
 221   1         SYSCLK_Init ();                     // Initialize Oscillator
 222   1         SW_UART_Init ();
 223   1         UART0_Init ();
 224   1         DA_Init ();
 225   1         AD_Init ();
 226   1         Timer0_Init ();
 227   1         Timer3_Init ();
 228   1         Variable_Init();
 229   1       //  LED_EN=1;
 230   1         EIE1  |= 0x10;                      // enable PCA interrupt
 231   1         EIP1  |= 0x10;
 232   1         ET0=1;
 233   1         ES0=1;
 234   1      
 235   1         Control_inf(88,0,1);
 236   1         EA = 1;
 237   1         DAC0=0x0000;
 238   1         while(1)
 239   1         {
 240   2         
C51 COMPILER V8.02   F334                                                                  07/13/2006 10:09:54 PAGE 5   

 241   2            if (key_scan_time>20) 
 242   2               {
 243   3                 key_scan_time=0;
 244   3                 Key_scan();
 245   3           }
 246   2      
 247   2               Key_process();
 248   2      
 249   2          if (gps_ok>0)
 250   2           {
 251   3                 if ((count_time>79) && (sample_time<4))
 252   3             {      
 253   4               Measure();
 254   4                       AdR[sample_time]=TL_Adresult;
 255   4               count_time=0;                      
 256   4               sample_time++;
 257   4             }
 258   3           }
 259   2           IsGpsFrame = 0;
 260   2           if(IsGpsFrame)                   //if a GPS frame received
 261   2           {
 262   3             TR0=0;                       //stop count the pulse,send the last counter
 263   3             S_Pulse_s[0]=((Pulse_s/100)+0X30);              //hundred
 264   3             S_Pulse_s[1]=((Pulse_s % 100)/10+0X30);         //ten
 265   3             S_Pulse_s[2]=(((Pulse_s % 100) % 10)+0X30);     //one
 266   3             Pulse_s=0;  
 267   3             TR0=1;                       //restart counter0

⌨️ 快捷键说明

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