📄 term3.lst
字号:
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 + -