📄 adc_wdt.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Thu Feb 26 20:36:22 2009
1 processor 16F877A
2 opt pw 79
3 psect __Z49231UD_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text2,local,class=CODE,delta=2
6 psect text11,local,class=CODE,delta=2
7 psect intcode,global,class=CODE,delta=2
8 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
9 psect intret,global,class=CODE,delta=2
10 psect intentry,global,class=CODE,delta=2
11 psect intsave,global,class=BANK0,space=1,delta
+ =1
12 psect rbit_0,global,bit,class=BANK0,space=1,de
+ lta=1
13 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
14 psect rbss_2,global,class=BANK2,space=1,delta=
+ 1
15 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26
27 psect __Z49231UD_
28 0000 _delay$delay_time set ?_delay
29
30 psect text0
31 04CC _delay
32 ; _i assigned to ?a_delay+0
33 0000 _delay$i set ?a_delay
34 ;adc_wdt.c: 21: unsigned char i;
35 04CC 2CD1 goto l2
36 04CD l3
37 ;adc_wdt.c: 23: {
38 04CD 01B2 clrf ?a_delay
39 04CE l5
40 ;adc_wdt.c: 25: {
41 ;adc_wdt.c: 26: }
42 04CE 0AB2 incf ?a_delay
43 04CF 0F32 incfsz ?a_delay,w
44 04D0 2CCE goto l5
45 04D1 l2
46 ;adc_wdt.c: 27: }
47 04D1 1283 bcf 3,5
48 04D2 1303 bcf 3,6 ;carry unused
49 04D3 0830 movf ?_delay,w
50 04D4 1903 btfsc 3,2
51 04D5 03B1 decf ?_delay+1
52 04D6 03B0 decf ?_delay
53 04D7 0A30 incf ?_delay,w
54 04D8 1903 btfsc 3,2
55 04D9 0A31 incf ?_delay+1,w
56 04DA 1903 btfsc 3,2
57 04DB 0008 return
58 04DC 2CCD goto l3
59 ;adc_wdt.c: 40: unsigned char lcd_busy(void)
60 ;adc_wdt.c: 41: {
61 04DD _lcd_busy
62 ; _temp assigned to ?a_lcd_busy+0
63 0000 _lcd_busy$temp set ?a_lcd_busy
64 ;adc_wdt.c: 42: unsigned char temp;
65 04DD 30FF movlw -1
66 04DE 0183 clrf 3 ;select bank 0
67 04DF 0086 movwf 6 ;volatile
68 ;adc_wdt.c: 45: RS = 0;
69 04E0 1288 bcf 8,5
70 ;adc_wdt.c: 46: RW = 1;
71 04E1 1708 bsf 8,6
72 ;adc_wdt.c: 47: E = 1;
73 04E2 1788 bsf 8,7
74 ;adc_wdt.c: 48: TRISB = 0xff;
75 04E3 1683 bsf 3,5
76 04E4 0086 movwf 6 ;volatile
77 ;adc_wdt.c: 49: temp = PORTB;
78 04E5 1283 bcf 3,5
79 04E6 0806 movf 6,w ;volatile
80 04E7 00B4 movwf ?a_lcd_busy
81 ;adc_wdt.c: 50: TRISB = 0x00;
82 04E8 1683 bsf 3,5
83 04E9 0186 clrf 6 ;volatile
84 ;adc_wdt.c: 51: E = 0;
85 04EA 1283 bcf 3,5
86 04EB 1388 bcf 8,7
87 ;adc_wdt.c: 52: return (temp);
88 04EC 0834 movf ?a_lcd_busy,w
89 ;adc_wdt.c: 53: }
90 04ED 0008 return
91 ;adc_wdt.c: 55: void lcd_command_writedata(unsi
+ gned char check,unsigned char data)
92 ;adc_wdt.c: 56: {
93 ; param _data assigned to ?_lcd_command_w
+ ritedata+0
94 0000 _lcd_command_writedata$data set ?_lcd_command_w
+ ritedata
95 04EE _lcd_command_writedata
96 ; _check assigned to ?a_lcd_command_writedata+0
97 0000 _lcd_command_writedata$check set ?a_lcd_command
+ _writedata
98 ;_check stored from w
99 04EE 0183 clrf 3 ;select bank 0
100 04EF 00B3 movwf ?a_lcd_command_writedata
101 ;adc_wdt.c: 57: if (check == 0x00)
102 04F0 08B3 movf ?a_lcd_command_writedata
103 04F1 1D03 btfss 3,2
104 04F2 2CF5 goto l12
105 ;adc_wdt.c: 58: {
106 04F3 1288 bcf 8,5
107 ;adc_wdt.c: 60: }
108 04F4 2CF6 goto l13
109 04F5 l12
110 ;adc_wdt.c: 62: {
111 04F5 1688 bsf 8,5
112 04F6 l13
113 ;adc_wdt.c: 64: }
114 ;adc_wdt.c: 65: RW = 0;
115 04F6 1308 bcf 8,6
116 ;adc_wdt.c: 66: PORTB = data;
117 04F7 0832 movf ?_lcd_command_writedata,w
118 04F8 0086 movwf 6 ;volatile
119 ;adc_wdt.c: 67: E = 1;
120 04F9 1788 bsf 8,7
121 ;adc_wdt.c: 68: E = 0;
122 04FA 1388 bcf 8,7
123 ;adc_wdt.c: 69: while (lcd_busy() & 0x80);
124 04FB l14
125 04FB 24DD fcall _lcd_busy
126 04FC 00F0 movwf btemp
127 04FD 1FF0 btfss btemp,7
128 04FE 0008 return
129 04FF 2CFB goto l14
130 0500 _lcd_disp
131 ; _adr assigned to ?a_lcd_disp+0
132 0000 _lcd_disp$adr set ?a_lcd_disp
133 ;_adr stored from w
134 0500 0183 clrf 3 ;select bank 0
135 0501 00B1 movwf ?a_lcd_disp
136 ;adc_wdt.c: 74: lcd_command_writedata(0x00,adr)
+ ;
137 0502 00B2 movwf ?_lcd_command_writedata
138 0503 3000 movlw 0
139 0504 24EE fcall _lcd_command_writedata
140 ;adc_wdt.c: 75: lcd_command_writedata(0xff,disp
+ _data);
141 0505 0830 movf ?_lcd_disp,w
142 0506 00B2 movwf ?_lcd_command_writedata
143 0507 30FF movlw -1
144 0508 2CEE ljmp _lcd_command_writedata
145 ;adc_wdt.c: 105: void tempature_disp(void)
146 ;adc_wdt.c: 106: {
147 0509 _tempature_disp
148 ; _c assigned to ?a_tempature_disp+0
149 0000 _tempature_disp$c set ?a_tempature_disp
150 ; _d assigned to ?a_tempature_disp+1
151 0000 _tempature_disp$d set ?a_tempature_disp+1
152 ; _a assigned to ?a_tempature_disp+2
153 0000 _tempature_disp$a set ?a_tempature_disp+2
154 ; _b assigned to ?a_tempature_disp+3
155 0000 _tempature_disp$b set ?a_tempature_disp+3
156 ; _i assigned to ?a_tempature_disp+4
157 0000 _tempature_disp$i set ?a_tempature_disp+4
158 ; _temperature_temp assigned to ?a_tempature_di
+ sp+5
159 0000 _tempature_disp$temperature_temp set ?a_tempatu
+ re_disp+5
160 ;adc_wdt.c: 107: unsigned char i;
161 ;adc_wdt.c: 37: asm("clrwdt");
162 0509 0064 clrwdt ;#
163 ;adc_wdt.c: 38: }
164 050A 0183 clrf 3 ;select bank 0
165 ;adc_wdt.c: 112: if (disp_reload)
166 050B 1C20 btfss _disp_reload/(0+8),_disp_reload& (0+7)
167 050C 0008 return
168 ;adc_wdt.c: 113: {
169 050D 138B bcf 11,7
170 ;adc_wdt.c: 115: for (i = 0; i < 40; i ++)
171 050E 01AB clrf ?a_tempature_disp+4
172 050F l23
173 ;adc_wdt.c: 116: {
174 ;adc_wdt.c: 117: checksum = checksum + temperat
+ ure[i];
175 050F 082B movf ?a_tempature_disp+4,w
176 0510 072B addwf ?a_tempature_disp+4,w
177 0511 3E10 addlw _temperature^(0+256)
178 0512 0084 movwf 4
179 0513 1783 bsf 3,7
180 0514 0800 movf 0,w
181 0515 00F0 movwf btemp
182 0516 0A84 incf 4
183 0517 0800 movf 0,w
184 0518 00F1 movwf btemp+1
185 0519 0870 movf btemp,w
186 051A 07A2 addwf _checksum ;volatile
187 051B 1803 btfsc 3,0
188 051C 0AA3 incf _checksum+1 ;volatile
189 051D 0871 movf btemp+1,w
190 051E 07A3 addwf _checksum+1 ;volatile
191 ;adc_wdt.c: 118: }
192 051F 0AAB incf ?a_tempature_disp+4
193 0520 3028 movlw 40
194 0521 022B subwf ?a_tempature_disp+4,w
195 0522 1C03 btfss 3,0
196 0523 2D0F goto l23
197 ;adc_wdt.c: 119: squ = (double)checksum;
198 0524 0823 movf _checksum+1,w ;volatile
199 0525 00F1 movwf btemp+1
200 0526 0822 movf _checksum,w ;volatile
201 0527 00F0 movwf btemp
202 0528 120A 118A 272E fcall lwtoft
203 052B 0870 movf btemp,w
204 052C 00A4 movwf _squ ;volatile
205 052D 0871 movf btemp+1,w
206 052E 00A5 movwf _squ+1 ;volatile
207 052F 0872 movf btemp+2,w
208 0530 00A6 movwf _squ+2 ;volatile
209 ;adc_wdt.c: 120: squ = squ / 4;
210 0531 01F3 clrf btemp+3
211 0532 3080 movlw 128
212 0533 00F4 movwf btemp+4
213 0534 3040 movlw 64
214 0535 00F5 movwf btemp+5
215 0536 3024 movlw _squ ;volatile
216 0537 0084 movwf 4
217 0538 1383 bcf 3,7
218 0539 120A 118A 2670 fcall ftdiv_f
219 ;adc_wdt.c: 121: temperature_temp = (unsigned l
+ ong)((100 * squ) / 1023);
220 053C 1283 bcf 3,5
221 053D 1303 bcf 3,6 ;carry unused
222 053E 0824 movf _squ,w ;volatile
223 053F 00F3 movwf btemp+3
224 0540 0825 movf _squ+1,w ;volatile
225 0541 00F4 movwf btemp+4
226 0542 0826 movf _squ+2,w ;volatile
227 0543 00F5 movwf btemp+5
228 0544 01F0 clrf btemp
229 0545 30C8 movlw 200
230 0546 00F1 movwf btemp+1
231 0547 3042 movlw 66
232 0548 00F2 movwf btemp+2
233 0549 120A 118A 26B1 fcall ftmul
234 054C 30C0 movlw 192
235 054D 00F3 movwf btemp+3
236 054E 307F movlw 127
237 054F 00F4 movwf btemp+4
238 0550 3044 movlw 68
239 0551 00F5 movwf btemp+5
240 0552 120A 118A 2679 fcall ftdiv
241 0555 120A 118A 26F2 fcall fttol
242 0558 0870 movf btemp,w
243 0559 00AC movwf ?a_tempature_disp+5
244 055A 0871 movf btemp+1,w
245 055B 00AD movwf ?a_tempature_disp+6
246 055C 0872 movf btemp+2,w
247 055D 00AE movwf ?a_tempature_disp+7
248 055E 0873 movf btemp+3,w
249 055F 00AF movwf ?a_tempature_disp+8
250 ;adc_wdt.c: 122: a = temperature_temp / 100;
251 0560 3064 movlw 100
252 0561 00F4 movwf btemp+4
253 0562 01F5 clrf btemp+5
254 0563 01F6 clrf btemp+6
255 0564 01F7 clrf btemp+7
256 0565 082C movf ?a_tempature_disp+5,w
257 0566 00F0 movwf btemp
258 0567 082D movf ?a_tempature_disp+6,w
259 0568 00F1 movwf btemp+1
260 0569 082E movf ?a_tempature_disp+7,w
261 056A 00F2 movwf btemp+2
262 056B 082F movf ?a_tempature_disp+8,w
263 056C 00F3 movwf btemp+3
264 056D 120A 118A 2775 fcall lldiv
+ 120A 118A
265 0572 0870 movf btemp,w
266 0573 00A9 movwf ?a_tempature_disp+2
267 ;adc_wdt.c: 123: lcd_disp(0x85, a + 0x30);
268 0574 3E30 addlw 48
269 0575 00B0 movwf ?_lcd_disp
270 0576 3085 movlw -123
271 0577 2500 fcall _lcd_disp
272 ;adc_wdt.c: 124: d = temperature_temp % 100;
273 0578 3064 movlw 100
274 0579 00F4 movwf btemp+4
275 057A 01F5 clrf btemp+5
276 057B 01F6 clrf btemp+6
277 057C 01F7 clrf btemp+7
278 057D 082C movf ?a_tempature_disp+5,w
279 057E 00F0 movwf btemp
280 057F 082D movf ?a_tempature_disp+6,w
281 0580 00F1 movwf btemp+1
282 0581 082E movf ?a_tempature_disp+7,w
283 0582 00F2 movwf btemp+2
284 0583 082F movf ?a_tempature_disp+8,w
285 0584 00F3 movwf btemp+3
286 0585 120A 118A 2775 fcall llmod
287 0588 0874 movf btemp+4,w
288 0589 00A8 movwf ?a_tempature_disp+1
289 ;adc_wdt.c: 125: b = d / 10;
290 058A 300A movlw 10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -