?? term3.lst
字號:
C51 COMPILER V7.50 TERM3 04/06/2007 17:58:07 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 source\Term3.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Term3.lst) OBJECT(Te
-rm3.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根串口現(xiàn)
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:采樣數(shù)字 Y:基準
25 // 本程序用于500套正式生產
26 // 與SDA程序的區(qū)別:1.FM接口定義變動
27 // 2.增加日期
28 // 3.增加長按關機,同時給WINCE存盤提供時間
29 // 4.增加背光調節(jié)協(xié)議
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 V7.50 TERM3 04/06/2007 17:58:07 PAGE 2
55
56
57 //----------------------------------------------------------------------------
58 //終端模塊的地址定義
59 #define ADDRESS 53568
60 //#define ADDR_H 8+0x30
61 //#define ADDR_L 6+0x30
62
63 #define ORDER 0x1E
64 #define LENGTH 19 //有效數(shù)據(jù)為19個字節(jié)
65
66 //----------------------------------------------------------------------------
67 //global constant
68 //----------------------------------------------------------------------------
69 #define BAUDRATE 57600 //?????SW_UART???
70 #define SYSCLK 24500000 //????????18.432MHz
71 #define BAUDRATE1 9600
72 #define TIME_COUNT SYSCLK/BAUDRATE1/4
73 #define TH_TIME_COUNT TIME_COUNT*3/2
74
75
76 #define TIMER2_RATE 20 // Timer 2 overflow rate in Hz
77 #define SAMPLE_RATE 50000
78
79 #define HeaderLength 6
80 #define UTCtimeLength 6
81
82 #define SW_Uart_Frame 7
83 //----------------------------------------------------------------------------
84 //全局變量
85 //----------------------------------------------------------------------------
86 sbit SLEEP = P1^0;
87 sbit RESRT = P1^1;
88 sbit Batt_Low = P1^2;
89 sbit LED = P1^3;
90 sbit KEY = P1^4;
91
92 sbit GPS_SW = P0^1;
93 sbit SW_TX = P0^2; // SW_UART發(fā)送引腳
94 sbit SW_RX = P0^3; // SW_UART接收引腳
95 bit SRI; // SW_UART接收完成標志
96 bit STI; // SW_UART發(fā)送完成標志
97 bit SREN; // SW_UART接收允許
98 bit STXBSY; // SW_UART發(fā)送忙標志
99 char RDR; // SW_UART接收數(shù)據(jù)存儲器(鎖存器)
100 char TDR; // SW_UART發(fā)送數(shù)據(jù)寄存器
101
102
103 void Port_Init(void); // Initialize Port I/O
104 void SYSCLK_Init (void); // Initialize Oscillator
105 void SW_UART_Init (void);
106 void UART0_Init (void);
107 void AD_Init (void);
108 //void DA_Init (void);
109 void Timer0_Init (void);
110 void Timer2_Init (int);
111 void Timer3_Init (void);
112 void wait_one_second (void);
113 void Key_scan(void);
114 void Send_GPS(void);
115 void Variable_Init(void);
116 void Key_process(void);
C51 COMPILER V7.50 TERM3 04/06/2007 17:58:07 PAGE 3
117 void Measure(void);
118 void send_contr_word(unsigned int Cotrdata);
119 void Control_inf(unsigned char dx1,dx2,dx3);
120 void Delay_1uS(void);
121
122 unsigned int test;
123 unsigned int currval;
124 unsigned int DA_data;
125
126 unsigned char ii;
127 unsigned char tx_data;
128
129
130 unsigned char key_pre;
131 unsigned char key_work;
132 unsigned char key_scan_time;
133 unsigned int key_time;
134 unsigned char key_zt;
135 unsigned int LcdBackLight_Delay_AfterS2410;
136
137 unsigned char SW_RecvByte;
138 unsigned char SW_Header[7];
139
140
141
142
143 unsigned char CRByte;
144 unsigned char LFByte;
145 unsigned char PulseCount;
146 unsigned char S_PulseCount[3];
147 unsigned char RecvByte;
148 unsigned char UartBuff;
149 unsigned char IsGpsFrame;
150 unsigned char FrameLength;
151 unsigned char Header[6];
152 unsigned char UTCtime[10];
153 unsigned char Longitude[10];
154 unsigned char Latitude[11];
155 unsigned char HDOP[4];
156 unsigned char DGPS;
157 unsigned char weixing[2];
158 unsigned char gps_ok;
159 unsigned char fm[4];
160 unsigned char fmbak;
161 unsigned char fmbak1;
162 unsigned char fmbak2;
163 unsigned char fmbak3;
164 unsigned char surt_js;
165 unsigned char he;
166 unsigned char FM_delay;
167 unsigned char FM_flag;
168
169 unsigned char S_Pulse_s[3];
170 unsigned char S_AdResult0[4]; //Ad Result backup for sending
171 unsigned char S_AdResult1[4]; //Ad Result backup for sending
172 unsigned char S_AdResult2[4]; //Ad Result backup for sending
173 unsigned char S_AdResult3[4]; //Ad Result backup for sending
174 unsigned char S_AdResult4[4]; //Ad Result backup for sending
175 unsigned char t1;
176
177 unsigned char ii;
178 unsigned int key_bg_time;
C51 COMPILER V7.50 TERM3 04/06/2007 17:58:07 PAGE 4
179 unsigned char POWER_SW_delay;
180
181 unsigned int zero_all;
182 unsigned int zero_front;
183 unsigned char zero_time;
184 unsigned int zero;
185 unsigned int zero_all_front;
186 unsigned char init_flag;
187 unsigned char zero_time1;
188 unsigned int zero_all1;
189 unsigned int zero_single;
190 unsigned char bujiu;
191 unsigned char bujiu_js;
192
193 unsigned char count_time;
194 unsigned char sample_time;
195 unsigned char Pulse_s;
196 unsigned char S_Pulse_s[3];
197
198 unsigned int AdResult[5];
199 unsigned int tempAdResult;
200 unsigned int tl;
201
202 unsigned int TL_Adresult;
203
204 unsigned int AdR[5];
205
206 unsigned int GPS_Current;
207 unsigned int GPS_Current_pre;
208
209 unsigned char riqi[6];
210 unsigned char GPS_Alarm[2];
211 unsigned int GPS_Alarm_js;
212 unsigned int GPS_time;
213
214 unsigned char b_light;
215
216 unsigned int key_press_time;
217
218 unsigned int test1;
219
220 unsigned char Batt_State;
221 unsigned char SW_IsFrame;
222
223 //-----------------------------------------------------------------------------
224 // MAIN Routine
225 //-----------------------------------------------------------------------------
226
227 void main (void)
228 {
229 1 // Disable Watchdog timer
230 1 PCA0MD &= ~0x40; // WDTE = 0 (clear watchdog timer
231 1 // enable)
232 1 Port_Init(); // Initialize Port I/O
233 1 SYSCLK_Init (); // Initialize Oscillator
234 1 SW_UART_Init ();
235 1 UART0_Init ();
236 1 AD_Init ();
237 1 Timer0_Init ();
238 1 Timer3_Init ();
239 1 Variable_Init();
240 1
C51 COMPILER V7.50 TERM3 04/06/2007 17:58:07 PAGE 5
241 1 // IDA0CN = 0x72;
242 1
243 1 EIE1 |= 0x10; // enable PCA interrupt
244 1 EIP1 |= 0x10;
245 1 ET0=1;
246 1 ES0=1;
247 1
248 1 EA = 1;
249 1 GPS_SW = 0;
250 1
251 1 while(1)
252 1 {
253 2
254 2 if (gps_ok>0)
255 2 {
256 3 if ((count_time>79) && (sample_time<4))
257 3 {
258 4 Measure();
259 4 count_time=0;
260 4 sample_time++;
261 4 }
262 3 }
263 2
264 2 // IsGpsFrame = 0;
265 2 if(IsGpsFrame == 1) //if a GPS frame received
266 2 {
267 3 IsGpsFrame = 0;
268 3 count_time=0;
269 3 sample_time=0;
270 3
271 3 LED = 0;
272 3 Send_GPS();
273 3 LED = 1;
274 3 IsGpsFrame=0;
275 3
276 3 }
277 2
278 2 // if (GPS_time<100) IsGpsFrame=1;
279 2 /*
280 2 if (GPS_Alarm_js==0)
281 2 {
282 2 GPS_Alarm_js=200;
283 2 if ((GPS_Current_pre>500) && (GPS_Current>500))
284 2 {
285 2 GPS_Alarm[0]=8+0x30;GPS_Alarm[1]=5+0x30;
286 2 GPS_SW=1;
287 2 GPS_Alarm_js=2000;
288 2 }
289 2 else
290 2 {
291 2 GPS_Alarm[0]=0+0x30;GPS_Alarm[1]=0+0x30;
292 2 GPS_SW=0;
293 2 }
294 2 GPS_Current_pre=GPS_Current;
295 2 }
296 2 */
297 2 if (SRI==1)
298 2 {
299 3 SRI=0;
300 3 fmbak=RDR;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -