📄 sub.lst
字号:
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE SUB
OBJECT MODULE PLACED IN ..\TMP\SUB.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\SUB.C BROWSE DEBUG OBJECTEXTEND PRINT(..\TMP\SUB.lst) OBJECT(..\TMP\SUB.o
-bj)
stmt level source
1 #include <inc.h>
2
3 void delay(unsigned int i)
4 {
5 1 while(i != 0)
6 1 {
7 2 WDI = ~WDI;
8 2 i--;
9 2 }
10 1 }
11
12 void Beep(unsigned int t )
13 {
14 1 while(t--)
15 1 {
16 2 beep=0;
17 2 }
18 1 beep=1;
19 1 }
20
21 unsigned char scankey(void)
22 {
23 1 unsigned char key;
24 1 BUTTON1=1;
25 1 // BUTTON2=1;
26 1 //key=0;
27 1 delay(10);
28 1 key=BUTTON1;
29 1 if(BUTTON1==0) delay(50);
30 1 if(BUTTON1==0)
31 1 {
32 2 while(BUTTON1==0);
33 2 return 1;
34 2 }
35 1 else return 0;
36 1 //key=0;
37 1 delay(10);
38 1 /* key=BUTTON2;
39 1 if(BUTTON2==0) delay(100);
40 1 if(BUTTON2==0)
41 1 {
42 1 while(BUTTON2==0);
43 1 return 2;
44 1 } */
45 1 /// else return 0;
46 1
47 1
48 1 /* if(BUTTON1==0) i=1;
49 1 goto button_exit;
50 1 if(BUTTON2==0) i=2;
51 1 goto button_exit;
52 1 button_exit:
53 1 key=i;
54 1 if(key==0&&KeyCount<=KEY_DLY_COUNT)
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 2
55 1 {
56 1 KeyCount=0;
57 1 return;
58 1 }
59 1 if(key==0&&KeyCount>KEY_DLY_COUNT)
60 1 {
61 1 KeyCount=0;
62 1 NewKey = 1;
63 1 KeyValue = PrevKey;
64 1 // Beep(8);
65 1 return;
66 1 }
67 1 if(key!=0&&KeyCount<220)
68 1 {
69 1 KeyCount++;
70 1 PrevKey=key;
71 1 return;
72 1 }
73 1 if(key!=0&&KeyCount>=220)
74 1 {
75 1 if( ++KeyRepeat > 100 )
76 1 {
77 1 KeyRepeat = 0;
78 1 NewKey = 1;
79 1 KeyValue = PrevKey;
80 1 // Beep(8);
81 1 return;
82 1 }
83 1 } */
84 1 }
85
86 void out595()
87 {
88 1 unsigned char i;
89 1
90 1 for(i=0x80;i!=0;i/=2)
91 1 {
92 2 SER = 1;
93 2 if( (i & VAL_595) == 0 ) SER = 0;
94 2 delay(2);
95 2 SRCLK = 0;
96 2 delay(2);
97 2 SRCLK = 1;
98 2 delay(2);
99 2 }
100 1 RCLK = 0;
101 1 delay(2);
102 1 RCLK = 1;
103 1 }
104
105 void timer0() interrupt 1 using 2
106 {
107 1 TR0=0;
108 1 TL0=0xfe;
109 1 TH0=0xed; //5ms定时
110 1 TR0=1;
111 1 WDI = ~WDI;
112 1 del_coun++;
113 1 if(del_coun>=200)
114 1 {
115 2 del_coun=0;
116 2 addtime();
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 3
117 2 }
118 1
119 1 display();
120 1 }
121
122 void addtime(void)
123 {
124 1 js_coun0++;
125 1 if(key1)
126 1 {
127 2 js_coun1++;
128 2 if(js_coun1>=60) js_coun1=60;
129 2 if(js60s_flag==0 && js_coun1>=60) js60s_flag=1;
130 2 }
131 1 }
132
133 void display(void)
134 {
135 1 switch(DISP_COUN)
136 1 {
137 2 case 0:
138 2 VAL_595 = DISP_LED0;
139 2 out595();
140 2 L1= 0;
141 2 L2= 1;
142 2 // L3= 1;
143 2 // L4= 1;
144 2 break;
145 2 case 1:
146 2 VAL_595 = DISP_LED1;
147 2 out595();
148 2 L1= 1;
149 2 L2= 0;
150 2 // L3= 1;
151 2 // L4= 1;
152 2 break;
153 2 /* case 2:
154 2 VAL_595 = DISP_LED2;
155 2 out595();
156 2 L1= 1;
157 2 L2= 1;
158 2 L3= 0;
159 2 L4= 1;
160 2 break;
161 2 case 3:
162 2 VAL_595 = DISP_LED3;
163 2 out595();
164 2 L1= 1;
165 2 L2= 1;
166 2 L3= 1;
167 2 L4= 0;
168 2 break; */
169 2 }
170 1 if(DISP_COUN++ >=2) DISP_COUN=0;
171 1 }
172
173 void keyloop(void)
174 {
175 1 unsigned char i;
176 1 for(i=0;i<4;i++)
177 1 {
178 2 KeyValue=scankey();
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 4
179 2 switch(KeyValue)
180 2 {
181 3 case 0: break;
182 3 case 1: key1=~key1;
183 3 if( key1) js_coun1=0;
184 3 break;
185 3 /* case 2: key2=~key2;
186 3 if( key2) js_coun2=0;
187 3 break; */
188 3 }
189 2
190 2 if(key1)
191 2 {
192 3 DISP_LED0=BCD[(js_coun1/10)%10];
193 3 DISP_LED1=BCD[js_coun1%10];
194 3 }
195 2 else
196 2 {
197 3 DISP_LED0 = 0xc0;
198 3 DISP_LED1 = 0xc0;
199 3 js60s_flag=0;
200 3 }
201 2 /* if(key2)
202 2 {
203 2 DISP_LED2=BCD[(js_coun2/10)%10];
204 2 DISP_LED3=BCD[js_coun2%10];
205 2 }
206 2 else
207 2 {
208 2 DISP_LED2 = 0xc0;
209 2 DISP_LED3 = 0xc0;
210 2 } */
211 2 }
212 1 }
213
214 unsigned int calcCRC(unsigned char sendLen)
215 {
216 1 unsigned int CRC=0xffff;
217 1 bit f;
218 1 unsigned char i,j;
219 1
220 1 for(i=0;i<sendLen;i++)
221 1 {
222 2 CRC ^= sendData[i];
223 2 for(j=0;j<8;j++)
224 2 {
225 3 if( (CRC&1) != 0)
226 3 {
227 4 f = true;
228 4 }
229 3 else
230 3 {
231 4 f = false;
232 4 }
233 3 CRC >>= 1;
234 3 if(f)
235 3 {
236 4 CRC ^= 0xA001;
237 4 }
238 3 }
239 2 }
240 1 return CRC;
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 5
241 1 }
242
243 /////////控制函数
244 void net_send(unsigned char c)
245 {
246 1 RX_DX = 1;
247 1 SBUF=c;
248 1 while (!TI) ;
249 1 TI = 0;
250 1 RX_DX = 0;
251 1 }
252
253 bit net_sendData() ////发送
254 {
255 1 unsigned char i;
256 1
257 1 for(i=0;i<commInLong;i++)
258 1 {
259 2 net_send(sendData[i]);
260 2 }
261 1 return 0;
262 1 }
263
264 unsigned char whp_getTemp()
265 {
266 1
267 1 unsigned char sendLen;
268 1 unsigned int i;
269 1
270 1 sendData[0] = 1;
271 1 sendData[1] = 4;
272 1 sendData[2] = 0;
273 1 sendData[3] = 0;
274 1 sendData[4] = 0;
275 1 sendData[5] = 1;
276 1
277 1 sendLen = 6;
278 1 i = calcCRC(sendLen);
279 1 sendData[6] = (unsigned char)(i & 0xff);
280 1 sendData[7] = (unsigned char)(i>>8);
281 1
282 1 commInLong=8;
283 1 commOutLong = 0;
284 1 pVal=0;
285 1 if(net_sendData()!=0)
286 1 {
287 2 return 1;
288 2 }
289 1 incept_flag = 1;
290 1 delay(5000);
291 1 incept_flag = 0;
292 1 // pVal=commOutLong;
293 1 // if(c!=9)
294 1 // {
295 1 // return 2;
296 1 // }
297 1 /* if( (receData[3] & 0x80) == 1)
298 1 {
299 1 receData[3] &= 0x7f;
300 1 pVal = receData[3]*256+receData[4];
301 1 // pVal =0- pVal;
302 1
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 6
303 1 }
304 1 else*/ pVal=receData[3]*256+receData[4];
305 1
306 1 pVal =pVal/25-100;
307 1 return 0;
308 1 delay(2000);
309 1 }
310
311 unsigned char whp_getSvTemp()
312 {
313 1
314 1 unsigned char sendLen;
315 1 unsigned int i;
316 1
317 1 sendData[0] = 1;
318 1 sendData[1] = 3;
319 1 sendData[2] = 0;
320 1 sendData[3] = 2;
321 1 sendData[4] = 0;
322 1 sendData[5] = 1;
323 1
324 1 sendLen = 6;
325 1 i = calcCRC(sendLen);
326 1 sendData[6] = (unsigned char)(i & 0xff);
327 1 sendData[7] = (unsigned char)(i>>8);
328 1
329 1 commInLong=8;
330 1 if(net_sendData()!=0)
331 1 {
332 2 return 1;
333 2 }
334 1 commOutLong = 0;
335 1 incept_flag = 1;
336 1 delay(5000);
337 1 incept_flag = 0;
338 1 if(commOutLong<7)
339 1 {
340 2 return 2;
341 2 }
342 1 /* if( (receData[3] & 0x80) == 1)
343 1 {
344 1 receData[3] &= 0x7f;
345 1 sVal=receData[3]*256+receData[4];
346 1 // sVal =0 - sVal;
347 1 }
348 1 else*/ sVal=(receData[3]*256+receData[4]);
349 1
350 1 sVal =sVal/25-100;
351 1 return 0;
352 1 delay(2000);
353 1 }
354
355 void serial() interrupt 4 using 2
356 {
357 1 unsigned char c;
358 1
359 1 if(_testbit_(RI))
360 1 {
361 2 c = SBUF;
362 2 if(incept_flag == 1)
363 2 {
364 3 if(commOutLong<15)
C51 COMPILER V6.02 SUB 08/26/2003 16:13:26 PAGE 7
365 3 {
366 4 receData[commOutLong++]=c;
367 4 }
368 3 }
369 2 }
370 1 }
371
372 /*
373 unsigned char dprintf(char *fmt, ...)
374 {
375 va_list arg_ptr;
376 unsigned char uLen;
377 va_start(arg_ptr, fmt);
378 uLen = (unsigned char)vsprintf(sendData, fmt, arg_ptr);
379 va_end(arg_ptr);
380 return uLen;
381 }
382 */
383
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 683 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -