📄 adc.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Wed Feb 25 11:10:35 2009
1 processor 16F877A
2 opt pw 79
3 psect __Z49231UD_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text4,local,class=CODE,delta=2
6 psect text9,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 04EC _delay
32 ; _i assigned to ?a_delay+0
33 0000 _delay$i set ?a_delay
34 ;adc.c: 21: unsigned char i;
35 04EC 2CF1 goto l2
36 04ED l3
37 ;adc.c: 23: {
38 04ED 01B3 clrf ?a_delay
39 04EE l5
40 ;adc.c: 25: {
41 ;adc.c: 26: }
42 04EE 0AB3 incf ?a_delay
43 04EF 0F33 incfsz ?a_delay,w
44 04F0 2CEE goto l5
45 04F1 l2
46 ;adc.c: 27: }
47 04F1 1283 bcf 3,5
48 04F2 1303 bcf 3,6 ;carry unused
49 04F3 0831 movf ?_delay,w
50 04F4 1903 btfsc 3,2
51 04F5 03B2 decf ?_delay+1
52 04F6 03B1 decf ?_delay
53 04F7 0A31 incf ?_delay,w
54 04F8 1903 btfsc 3,2
55 04F9 0A32 incf ?_delay+1,w
56 04FA 1903 btfsc 3,2
57 04FB 0008 return
58 04FC 2CED goto l3
59 ;adc.c: 30: unsigned char lcd_busy(void)
60 ;adc.c: 31: {
61 04FD _lcd_busy
62 ; _temp assigned to ?a_lcd_busy+0
63 0000 _lcd_busy$temp set ?a_lcd_busy
64 ;adc.c: 32: unsigned char temp;
65 04FD 30FF movlw -1
66 04FE 0183 clrf 3 ;select bank 0
67 04FF 0086 movwf 6 ;volatile
68 ;adc.c: 35: RS = 0;
69 0500 1288 bcf 8,5
70 ;adc.c: 36: RW = 1;
71 0501 1708 bsf 8,6
72 ;adc.c: 37: E = 1;
73 0502 1788 bsf 8,7
74 ;adc.c: 38: TRISB = 0xff;
75 0503 1683 bsf 3,5
76 0504 0086 movwf 6 ;volatile
77 ;adc.c: 39: temp = PORTB;
78 0505 1283 bcf 3,5
79 0506 0806 movf 6,w ;volatile
80 0507 00B5 movwf ?a_lcd_busy
81 ;adc.c: 40: TRISB = 0x00;
82 0508 1683 bsf 3,5
83 0509 0186 clrf 6 ;volatile
84 ;adc.c: 41: E = 0;
85 050A 1283 bcf 3,5
86 050B 1388 bcf 8,7
87 ;adc.c: 42: return (temp);
88 050C 0835 movf ?a_lcd_busy,w
89 ;adc.c: 43: }
90 050D 0008 return
91 ;adc.c: 45: void lcd_command_writedata(unsigned
+ char check,unsigned char data)
92 ;adc.c: 46: {
93 ; param _data assigned to ?_lcd_command_w
+ ritedata+0
94 0000 _lcd_command_writedata$data set ?_lcd_command_w
+ ritedata
95 050E _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 050E 0183 clrf 3 ;select bank 0
100 050F 00B4 movwf ?a_lcd_command_writedata
101 ;adc.c: 47: if (check == 0x00)
102 0510 08B4 movf ?a_lcd_command_writedata
103 0511 1D03 btfss 3,2
104 0512 2D15 goto l10
105 ;adc.c: 48: {
106 0513 1288 bcf 8,5
107 ;adc.c: 50: }
108 0514 2D16 goto l11
109 0515 l10
110 ;adc.c: 52: {
111 0515 1688 bsf 8,5
112 0516 l11
113 ;adc.c: 54: }
114 ;adc.c: 55: RW = 0;
115 0516 1308 bcf 8,6
116 ;adc.c: 56: PORTB = data;
117 0517 0833 movf ?_lcd_command_writedata,w
118 0518 0086 movwf 6 ;volatile
119 ;adc.c: 57: E = 1;
120 0519 1788 bsf 8,7
121 ;adc.c: 58: E = 0;
122 051A 1388 bcf 8,7
123 ;adc.c: 59: while (lcd_busy() & 0x80);
124 051B l12
125 051B 24FD fcall _lcd_busy
126 051C 00F0 movwf btemp
127 051D 1FF0 btfss btemp,7
128 051E 0008 return
129 051F 2D1B goto l12
130 0520 _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 0520 0183 clrf 3 ;select bank 0
135 0521 00B2 movwf ?a_lcd_disp
136 ;adc.c: 64: lcd_command_writedata(0x00,adr);
137 0522 00B3 movwf ?_lcd_command_writedata
138 0523 3000 movlw 0
139 0524 250E fcall _lcd_command_writedata
140 ;adc.c: 65: lcd_command_writedata(0xff,disp_dat
+ a);
141 0525 0831 movf ?_lcd_disp,w
142 0526 00B3 movwf ?_lcd_command_writedata
143 0527 30FF movlw -1
144 0528 2D0E ljmp _lcd_command_writedata
145 ;adc.c: 95: void tempature_disp(void)
146 ;adc.c: 96: {
147 0529 _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.c: 97: unsigned char i;
161 0529 0183 clrf 3 ;select bank 0
162 052A 1C20 btfss _disp_reload/(0+8),_disp_reload& (0+7)
163 052B 0008 return
164 ;adc.c: 102: {
165 052C 138B bcf 11,7
166 ;adc.c: 104: for (i = 0; i < 40; i ++)
167 052D 01AC clrf ?a_tempature_disp+4
168 052E l21
169 ;adc.c: 105: {
170 ;adc.c: 106: checksum = checksum + temperature[
+ i];
171 052E 082C movf ?a_tempature_disp+4,w
172 052F 072C addwf ?a_tempature_disp+4,w
173 0530 3E10 addlw _temperature^(0+256)
174 0531 0084 movwf 4
175 0532 1783 bsf 3,7
176 0533 0800 movf 0,w
177 0534 00F0 movwf btemp
178 0535 0A84 incf 4
179 0536 0800 movf 0,w
180 0537 00F1 movwf btemp+1
181 0538 0870 movf btemp,w
182 0539 07A2 addwf _checksum ;volatile
183 053A 1803 btfsc 3,0
184 053B 0AA3 incf _checksum+1 ;volatile
185 053C 0871 movf btemp+1,w
186 053D 07A3 addwf _checksum+1 ;volatile
187 ;adc.c: 107: }
188 053E 0AAC incf ?a_tempature_disp+4
189 053F 3028 movlw 40
190 0540 022C subwf ?a_tempature_disp+4,w
191 0541 1C03 btfss 3,0
192 0542 2D2E goto l21
193 ;adc.c: 108: squ = (double)checksum;
194 0543 0823 movf _checksum+1,w ;volatile
195 0544 00F1 movwf btemp+1
196 0545 0822 movf _checksum,w ;volatile
197 0546 00F0 movwf btemp
198 0547 120A 118A 2765 fcall lwtofl
199 054A 0870 movf btemp,w
200 054B 00A4 movwf _squ ;volatile
201 054C 0871 movf btemp+1,w
202 054D 00A5 movwf _squ+1 ;volatile
203 054E 0872 movf btemp+2,w
204 054F 00A6 movwf _squ+2 ;volatile
205 0550 0873 movf btemp+3,w
206 0551 00A7 movwf _squ+3 ;volatile
207 ;adc.c: 109: squ = squ / 4;
208 0552 01F4 clrf btemp+4
209 0553 01F5 clrf btemp+5
210 0554 3080 movlw 128
211 0555 00F6 movwf btemp+6
212 0556 3040 movlw 64
213 0557 00F7 movwf btemp+7
214 0558 3024 movlw _squ ;volatile
215 0559 0084 movwf 4
216 055A 1383 bcf 3,7
217 055B 120A 118A 2687 fcall fldiv_f
218 ;adc.c: 110: temperature_temp = (unsigned long)
+ ((100 * squ) / 1023);
219 055E 1283 bcf 3,5
220 055F 1303 bcf 3,6 ;carry unused
221 0560 0824 movf _squ,w ;volatile
222 0561 00F4 movwf btemp+4
223 0562 0825 movf _squ+1,w ;volatile
224 0563 00F5 movwf btemp+5
225 0564 0826 movf _squ+2,w ;volatile
226 0565 00F6 movwf btemp+6
227 0566 0827 movf _squ+3,w ;volatile
228 0567 00F7 movwf btemp+7
229 0568 01F0 clrf btemp
230 0569 01F1 clrf btemp+1
231 056A 30C8 movlw 200
232 056B 00F2 movwf btemp+2
233 056C 3042 movlw 66
234 056D 00F3 movwf btemp+3
235 056E 120A 118A 276B fcall flmul
236 0571 01F4 clrf btemp+4
237 0572 30C0 movlw 192
238 0573 00F5 movwf btemp+5
239 0574 307F movlw 127
240 0575 00F6 movwf btemp+6
241 0576 3044 movlw 68
242 0577 00F7 movwf btemp+7
243 0578 120A 118A 27BB fcall fldiv
244 057B 120A 118A 2693 fcall fltol
245 057E 0870 movf btemp,w
246 057F 00AD movwf ?a_tempature_disp+5
247 0580 0871 movf btemp+1,w
248 0581 00AE movwf ?a_tempature_disp+6
249 0582 0872 movf btemp+2,w
250 0583 00AF movwf ?a_tempature_disp+7
251 0584 0873 movf btemp+3,w
252 0585 00B0 movwf ?a_tempature_disp+8
253 ;adc.c: 111: a = temperature_temp / 100;
254 0586 3064 movlw 100
255 0587 00F4 movwf btemp+4
256 0588 01F5 clrf btemp+5
257 0589 01F6 clrf btemp+6
258 058A 01F7 clrf btemp+7
259 058B 082D movf ?a_tempature_disp+5,w
260 058C 00F0 movwf btemp
261 058D 082E movf ?a_tempature_disp+6,w
262 058E 00F1 movwf btemp+1
263 058F 082F movf ?a_tempature_disp+7,w
264 0590 00F2 movwf btemp+2
265 0591 0830 movf ?a_tempature_disp+8,w
266 0592 00F3 movwf btemp+3
267 0593 120A 118A 26C4 fcall lldiv
+ 120A 118A
268 0598 0870 movf btemp,w
269 0599 00AA movwf ?a_tempature_disp+2
270 ;adc.c: 112: lcd_disp(0x85, a + 0x30);
271 059A 3E30 addlw 48
272 059B 00B1 movwf ?_lcd_disp
273 059C 3085 movlw -123
274 059D 2520 fcall _lcd_disp
275 ;adc.c: 113: d = temperature_temp % 100;
276 059E 3064 movlw 100
277 059F 00F4 movwf btemp+4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -