📄 pic_adc.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Wed Feb 25 11:10:10 2009
1 processor 16F877A
2 opt pw 79
3 psect __Z49231UD_,global,delta=1
4 psect text3,local,class=CODE,delta=2
5 psect text8,local,class=CODE,delta=2
6 psect intcode,global,class=CODE,delta=2
7 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
8 psect intret,global,class=CODE,delta=2
9 psect intentry,global,class=CODE,delta=2
10 psect intsave,global,class=BANK0,space=1,delta
+ =1
11 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
12 psect rbss_2,global,class=BANK2,space=1,delta=
+ 1
13 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24
25 psect __Z49231UD_
26 0000 _delay$delay_time set ?_delay
27
28 psect text3
29 04B0 _lcd_disp
30 ; _adr assigned to ?a_lcd_disp+0
31 0000 _lcd_disp$adr set ?a_lcd_disp
32 ;_adr stored from w
33 04B0 0183 clrf 3 ;select bank 0
34 04B1 00B1 movwf ?a_lcd_disp
35 ;pic_adc.c: 63: lcd_command_writedata(0x00,adr)
+ ;
36 04B2 00B2 movwf ?_lcd_command_writedata
37 04B3 3000 movlw 0
38 04B4 24D9 fcall _lcd_command_writedata
39 ;pic_adc.c: 64: lcd_command_writedata(0xff,disp
+ _data);
40 04B5 0830 movf ?_lcd_disp,w
41 04B6 00B2 movwf ?_lcd_command_writedata
42 04B7 30FF movlw -1
43 04B8 2CD9 ljmp _lcd_command_writedata
44 ;pic_adc.c: 84: void adc_init(void)
45 ;pic_adc.c: 85: {
46 04B9 _adc_init
47 ;pic_adc.c: 86: ADCON1 = 0x8e;
48 04B9 308E movlw -114
49 04BA 1683 bsf 3,5
50 04BB 1303 bcf 3,6 ;carry unused
51 04BC 009F movwf 31 ;volatile
52 ;pic_adc.c: 87: ADCON0 = 0x81;
53 04BD 3081 movlw -127
54 04BE 1283 bcf 3,5
55 04BF 009F movwf 31 ;volatile
56 ;pic_adc.c: 88: ADIF = 0;
57 04C0 130C bcf 12,6
58 ;pic_adc.c: 89: PEIE = 1;
59 04C1 170B bsf 11,6
60 ;pic_adc.c: 90: ADIE = 1;
61 04C2 1683 bsf 3,5
62 04C3 170C bsf 12,6
63 ;pic_adc.c: 91: TRISA0 = 1;
64 04C4 1405 bsf 5,0
65 ;pic_adc.c: 92: count = 0;
66 04C5 1283 bcf 3,5
67 04C6 01A0 clrf _count ;volatile
68 ;pic_adc.c: 93: }
69 04C7 0008 return
70 ;pic_adc.c: 29: unsigned char lcd_busy(void)
71 ;pic_adc.c: 30: {
72 04C8 _lcd_busy
73 ; _temp assigned to ?a_lcd_busy+0
74 0000 _lcd_busy$temp set ?a_lcd_busy
75 ;pic_adc.c: 31: unsigned char temp;
76 04C8 30FF movlw -1
77 04C9 0183 clrf 3 ;select bank 0
78 04CA 0086 movwf 6 ;volatile
79 ;pic_adc.c: 34: RS = 0;
80 04CB 1288 bcf 8,5
81 ;pic_adc.c: 35: RW = 1;
82 04CC 1708 bsf 8,6
83 ;pic_adc.c: 36: E = 1;
84 04CD 1788 bsf 8,7
85 ;pic_adc.c: 37: TRISB = 0xff;
86 04CE 1683 bsf 3,5
87 04CF 0086 movwf 6 ;volatile
88 ;pic_adc.c: 38: temp = PORTB;
89 04D0 1283 bcf 3,5
90 04D1 0806 movf 6,w ;volatile
91 04D2 00B4 movwf ?a_lcd_busy
92 ;pic_adc.c: 39: TRISB = 0x00;
93 04D3 1683 bsf 3,5
94 04D4 0186 clrf 6 ;volatile
95 ;pic_adc.c: 40: E = 0;
96 04D5 1283 bcf 3,5
97 04D6 1388 bcf 8,7
98 ;pic_adc.c: 41: return (temp);
99 04D7 0834 movf ?a_lcd_busy,w
100 ;pic_adc.c: 42: }
101 04D8 0008 return
102 ;pic_adc.c: 44: void lcd_command_writedata(unsi
+ gned char check,unsigned char data)
103 ;pic_adc.c: 45: {
104 ; param _data assigned to ?_lcd_command_w
+ ritedata+0
105 0000 _lcd_command_writedata$data set ?_lcd_command_w
+ ritedata
106 04D9 _lcd_command_writedata
107 ; _check assigned to ?a_lcd_command_writedata+0
108 0000 _lcd_command_writedata$check set ?a_lcd_command
+ _writedata
109 ;_check stored from w
110 04D9 0183 clrf 3 ;select bank 0
111 04DA 00B3 movwf ?a_lcd_command_writedata
112 ;pic_adc.c: 46: if (check == 0x00)
113 04DB 08B3 movf ?a_lcd_command_writedata
114 04DC 1D03 btfss 3,2
115 04DD 2CE0 goto l10
116 ;pic_adc.c: 47: {
117 04DE 1288 bcf 8,5
118 ;pic_adc.c: 49: }
119 04DF 2CE1 goto l11
120 04E0 l10
121 ;pic_adc.c: 51: {
122 04E0 1688 bsf 8,5
123 04E1 l11
124 ;pic_adc.c: 53: }
125 ;pic_adc.c: 54: RW = 0;
126 04E1 1308 bcf 8,6
127 ;pic_adc.c: 55: PORTB = data;
128 04E2 0832 movf ?_lcd_command_writedata,w
129 04E3 0086 movwf 6 ;volatile
130 ;pic_adc.c: 56: E = 1;
131 04E4 1788 bsf 8,7
132 ;pic_adc.c: 57: E = 0;
133 04E5 1388 bcf 8,7
134 ;pic_adc.c: 58: while (lcd_busy() & 0x80);
135 04E6 l12
136 04E6 24C8 fcall _lcd_busy
137 04E7 00F0 movwf btemp
138 04E8 1FF0 btfss btemp,7
139 04E9 0008 return
140 04EA 2CE6 goto l12
141 ;pic_adc.c: 67: void lcd_init(void)
142 ;pic_adc.c: 68: {
143 04EB _lcd_init
144 ;pic_adc.c: 69: lcd_command_writedata(0x00,0x01
+ );
145 04EB 0183 clrf 3 ;select bank 0
146 04EC 01B2 clrf ?_lcd_command_writedata
147 04ED 0AB2 incf ?_lcd_command_writedata
148 04EE 3000 movlw 0
149 04EF 24D9 fcall _lcd_command_writedata
150 ;pic_adc.c: 70: lcd_command_writedata(0x00,0x38
+ );
151 04F0 3038 movlw 56
152 04F1 00B2 movwf ?_lcd_command_writedata
153 04F2 3000 movlw 0
154 04F3 24D9 fcall _lcd_command_writedata
155 ;pic_adc.c: 71: lcd_command_writedata(0x00,0x0e
+ );
156 04F4 300E movlw 14
157 04F5 00B2 movwf ?_lcd_command_writedata
158 04F6 3000 movlw 0
159 04F7 24D9 fcall _lcd_command_writedata
160 ;pic_adc.c: 72: lcd_command_writedata(0x00,0x06
+ );
161 04F8 3006 movlw 6
162 04F9 00B2 movwf ?_lcd_command_writedata
163 04FA 3000 movlw 0
164 04FB 2CD9 ljmp _lcd_command_writedata
165 04FC _delay
166 ; _i assigned to ?a_delay+0
167 0000 _delay$i set ?a_delay
168 ;pic_adc.c: 20: unsigned char i;
169 04FC 2D01 goto l2
170 04FD l3
171 ;pic_adc.c: 22: {
172 04FD 01B2 clrf ?a_delay
173 04FE l5
174 ;pic_adc.c: 24: {
175 ;pic_adc.c: 25: }
176 04FE 0AB2 incf ?a_delay
177 04FF 0F32 incfsz ?a_delay,w
178 0500 2CFE goto l5
179 0501 l2
180 ;pic_adc.c: 26: }
181 0501 1283 bcf 3,5
182 0502 1303 bcf 3,6 ;carry unused
183 0503 0830 movf ?_delay,w
184 0504 1903 btfsc 3,2
185 0505 03B1 decf ?_delay+1
186 0506 03B0 decf ?_delay
187 0507 0A30 incf ?_delay,w
188 0508 1903 btfsc 3,2
189 0509 0A31 incf ?_delay+1,w
190 050A 1903 btfsc 3,2
191 050B 0008 return
192 050C 2CFD goto l3
193 ;pic_adc.c: 75: void system_init(void)
194 ;pic_adc.c: 76: {
195 050D _system_init
196 ;pic_adc.c: 77: delay(10);
197 050D 300A movlw 10
198 050E 0183 clrf 3 ;select bank 0
199 050F 00B0 movwf ?_delay
200 0510 01B1 clrf ?_delay+1
201 0511 24FC fcall _delay
202 ;pic_adc.c: 78: INTCON = 0x00;
203 0512 018B clrf 11 ;volatile
204 ;pic_adc.c: 79: OPTION = 0xff;
205 0513 30FF movlw -1
206 0514 1683 bsf 3,5
207 0515 0081 movwf 1
208 ;pic_adc.c: 80: TRISB = 0x00;
209 0516 0186 clrf 6 ;volatile
210 ;pic_adc.c: 81: TRISD = 0x00;
211 0517 0188 clrf 8 ;volatile
212 ;pic_adc.c: 82: }
213 0518 1283 bcf 3,5
214 0519 0008 return
215 ;pic_adc.c: 95: void main(void)
216 ;pic_adc.c: 96: {
217 051A _main
218 ; _c assigned to ?a_main+0
219 0000 _main$c set ?a_main
220 ; _d assigned to ?a_main+1
221 0000 _main$d set ?a_main+1
222 ; _a assigned to ?a_main+2
223 0000 _main$a set ?a_main+2
224 ; _b assigned to ?a_main+3
225 0000 _main$b set ?a_main+3
226 ; _i assigned to ?a_main+4
227 0000 _main$i set ?a_main+4
228 ; _temperature_temp assigned to ?a_main+5
229 0000 _main$temperature_temp set ?a_main+5
230 ;pic_adc.c: 97: unsigned char i;
231 051A 30FF movlw 255
232 051B 1283 bcf 3,5
233 051C 1303 bcf 3,6 ;carry unused
234 051D 00B0 movwf ?_delay
235 051E 01B1 clrf ?_delay+1
236 051F 24FC fcall _delay
237 ;pic_adc.c: 102: system_init();
238 0520 250D 120A 118A fcall _system_init
239 ;pic_adc.c: 103: lcd_init();
240 0523 24EB 120A 118A fcall _lcd_init
241 ;pic_adc.c: 104: adc_init();
242 0526 24B9 fcall _adc_init
243 ;pic_adc.c: 105: ADCON0 |= 0x04;
244 0527 151F bsf 31,2 ;volatile
245 0528 L1
246 ;pic_adc.c: 106: (GIE = 1);
247 0528 178B bsf 11,7
248 ;pic_adc.c: 107: while (1)
249 0529 l24
250 ;pic_adc.c: 108: {
251 ;pic_adc.c: 110: {
252 0529 0820 movf _count,w ;volatile
253 052A 3A28 xorlw 40
254 052B 1D03 btfss 3,2
255 052C 2D29 goto l24
256 ;pic_adc.c: 112: {
257 ;pic_adc.c: 116: (GIE = 0);
258 052D 138B bcf 11,7
259 ;pic_adc.c: 117: for (i = 0; i < 40; i ++)
260 052E 01AB clrf ?a_main+4
261 052F l27
262 ;pic_adc.c: 118: {
263 ;pic_adc.c: 119: checksum = checksum + temperat
+ ure[i];
264 052F 082B movf ?a_main+4,w
265 0530 072B addwf ?a_main+4,w
266 0531 3E10 addlw _temperature^(0+256)
267 0532 0084 movwf 4
268 0533 1783 bsf 3,7
269 0534 0800 movf 0,w
270 0535 00F0 movwf btemp
271 0536 0A84 incf 4
272 0537 0800 movf 0,w
273 0538 00F1 movwf btemp+1
274 0539 0870 movf btemp,w
275 053A 07A1 addwf _checksum ;volatile
276 053B 1803 btfsc 3,0
277 053C 0AA2 incf _checksum+1 ;volatile
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -