📄 1.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888 Sat Apr 26 09:38:20 2008
Licensed to: ONE TWO
1 processor 16F877A
2 opt pw 79
3 psect __Z88888RS_,global,delta=1
4 psect strings,global,class=STRING,delta=2
5 psect const1,local,class=CONST,delta=2
6 psect const2,local,class=CONST,delta=2
7 psect text2,local,class=CODE,delta=2
8 psect text3,local,class=CODE,delta=2
9 psect intcode,global,class=CODE,delta=2
10 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
11 psect intret,global,class=CODE,delta=2
12 psect intentry,global,class=CODE,delta=2
13 psect intsave,global,class=BANK0,space=1,delta
+ =1
14 psect text7,local,class=CODE,delta=2
15 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
16 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27
28 psect __Z88888RS_
29 0190
30 0190
31
32 psect const1
33 0032 0782 addwf 2
34 0033 _table
35 0033 343F retlw 63
36 0034 3406 retlw 6
37 0035 345B retlw 91
38 0036 344F retlw 79
39 0037 3466 retlw 102
40 0038 346D retlw 109
41 0039 347D retlw 125
42 003A 3407 retlw 7
43 003B 347F retlw 127
44 003C 346F retlw 111
45
46 psect const2
47 0027 0782 addwf 2
48 0028 _table0
49 0028 34BF retlw -65
50 0029 3486 retlw -122
51 002A 34DB retlw -37
52 002B 34CF retlw -49
53 002C 34E6 retlw -26
54 002D 34ED retlw -19
55 002E 34FD retlw -3
56 002F 3487 retlw -121
57 0030 34FF retlw -1
58 0031 34EF retlw -17
59
60 psect text2
61 06F6 _deal_ad
62 ; _temp assigned to ?a_deal_ad+0
63 0000 _deal_ad$temp set ?a_deal_ad
64 ;1.c: 30: unsigned int temp;
65 06F6 0183 clrf 3 ;select bank 0
66 06F7 081E movf 30,w ;volatile
67 06F8 00A4 movwf _ad_sample_result+1
68 06F9 1683 bsf 3,5
69 06FA 081E movf 30,w ;volatile
70 06FB 1283 bcf 3,5
71 06FC 00A3 movwf _ad_sample_result
72 ;1.c: 32: ad_flag=0;
73 06FD 01A0 clrf _ad_flag
74 ;1.c: 33: adresult=(ad_sample_result*50)>>10;
75 06FE 3032 movlw 50
76 06FF 00F2 movwf btemp+2
77 0700 01F3 clrf btemp+3
78 0701 0824 movf _ad_sample_result+1,w
79 0702 00F1 movwf btemp+1
80 0703 0823 movf _ad_sample_result,w
81 0704 00F0 movwf btemp
82 0705 120A 118A 26E1 fcall lwmul
+ 120A 118A
83 070A 300A movlw 10
84 070B 00F0 movwf btemp
85 070C u15
86 070C 1003 bcf 3,0
87 070D 0CF5 rrf btemp+5
88 070E 0CF4 rrf btemp+4
89 070F 0BF0 decfsz btemp
90 0710 2F0C goto u15
91 0711 0874 movf btemp+4,w
92 0712 00A5 movwf _adresult
93 0713 0875 movf btemp+5,w
94 0714 00A6 movwf _adresult+1
95 ;1.c: 34: temp=adresult;
96 0715 0825 movf _adresult,w
97 0716 00A7 movwf ?a_deal_ad
98 0717 0826 movf _adresult+1,w
99 0718 00A8 movwf ?a_deal_ad+1
100 ;1.c: 35: adresult=(((temp/10)<<4)&0xf0)+(adres
+ ult%10);
101 0719 300A movlw 10
102 071A 00F2 movwf btemp+2
103 071B 01F3 clrf btemp+3
104 071C 0826 movf _adresult+1,w
105 071D 00F1 movwf btemp+1
106 071E 0825 movf _adresult,w
107 071F 00F0 movwf btemp
108 0720 120A 118A 27C6 fcall lwmod
109 0723 0870 movf btemp,w
110 0724 00A9 movwf ?a_deal_ad+2
111 0725 0871 movf btemp+1,w
112 0726 00AA movwf ?a_deal_ad+3
113 0727 300A movlw 10
114 0728 00F2 movwf btemp+2
115 0729 01F3 clrf btemp+3
116 072A 0828 movf ?a_deal_ad+1,w
117 072B 00F1 movwf btemp+1
118 072C 0827 movf ?a_deal_ad,w
119 072D 00F0 movwf btemp
120 072E 120A 118A 27C6 fcall lwdiv
+ 120A 118A
121 0733 0EF4 swapf btemp+4
122 0734 0EF5 swapf btemp+5
123 0735 30F0 movlw 240
124 0736 05F5 andwf btemp+5
125 0737 0874 movf btemp+4,w
126 0738 390F andlw 15
127 0739 04F5 iorwf btemp+5
128 073A 30F0 movlw 240
129 073B 05F4 andwf btemp+4
130 073C 05F4 andwf btemp+4
131 073D 01F5 clrf btemp+5
132 073E 0829 movf ?a_deal_ad+2,w
133 073F 07F4 addwf btemp+4
134 0740 1803 btfsc 3,0
135 0741 0AF5 incf btemp+5
136 0742 082A movf ?a_deal_ad+3,w
137 0743 07F5 addwf btemp+5
138 0744 0874 movf btemp+4,w
139 0745 00A5 movwf _adresult
140 0746 0875 movf btemp+5,w
141 0747 00A6 movwf _adresult+1
142 ;1.c: 36: }
143 0748 0008 return
144 ;1.c: 47: void delay()
145 ;1.c: 48: {
146 0749 _delay
147 ; _i assigned to ?a_delay+0
148 0000 _delay$i set ?a_delay
149 ;1.c: 49: int i;
150 0749 0183 clrf 3 ;select bank 0
151 074A 01AB clrf ?a_delay
152 074B 01AC clrf ?a_delay+1
153 074C l7
154 ;1.c: 51: i=i;
155 074C 082B movf ?a_delay,w
156 074D 082C movf ?a_delay+1,w
157 074E 0AAB incf ?a_delay
158 074F 1903 btfsc 3,2
159 0750 0AAC incf ?a_delay+1
160 0751 082C movf ?a_delay+1,w
161 0752 3A80 xorlw 128
162 0753 00F0 movwf btemp
163 0754 3080 movlw 128
164 0755 0270 subwf btemp,w
165 0756 300A movlw 10
166 ;set bank bits for (((?a_delay+0)))
167 0757 1903 btfsc 3,2
168 0758 022B subwf ?a_delay,w
169 0759 1803 btfsc 3,0
170 075A 0008 return
171 075B 2F4C goto l7
172 ;1.c: 54: void display()
173 ;1.c: 55: {
174 075C _display
175 ; _data assigned to ?a_display+0
176 0000 _display$data set ?a_display
177 ; _data0 assigned to ?a_display+1
178 0000 _display$data0 set ?a_display+1
179 ; _data1 assigned to ?a_display+2
180 0000 _display$data1 set ?a_display+2
181 ; _data2 assigned to ?a_display+3
182 0000 _display$data2 set ?a_display+3
183 ;1.c: 56: unsigned char data,data0,data1,data2;
184 075C 0183 clrf 3 ;select bank 0
185 075D 0825 movf _adresult,w
186 075E 390F andlw 15
187 075F 00A8 movwf ?a_display+1
188 ;1.c: 58: data=table[data0];
189 0760 3000 movlw _table shr (0+8)
190 0761 008A movwf 10
191 0762 0828 movf ?a_display+1,w
192 0763 2032 call ((_table+-1)& (0+2047))| (($)& (0+-2048))
193 0764 120A 118A pagesel $
194 0766 00A7 movwf ?a_display
195 ;1.c: 59: data1=(adresult&0xf0)>>4;
196 0767 0826 movf _adresult+1,w
197 0768 00F1 movwf btemp+1
198 0769 0825 movf _adresult,w
199 076A 00F0 movwf btemp
200 076B 30F0 movlw 240
201 076C 05F0 andwf btemp
202 076D 01F1 clrf btemp+1
203 076E 3004 movlw 4
204 076F 00F2 movwf btemp+2
205 0770 u45
206 0770 1003 bcf 3,0
207 0771 0CF1 rrf btemp+1
208 0772 0CF0 rrf btemp
209 0773 0BF2 decfsz btemp+2
210 0774 2F70 goto u45
211 0775 0870 movf btemp,w
212 0776 00A9 movwf ?a_display+2
213 ;1.c: 60: data2=table0[data1];
214 0777 3000 movlw _table0 shr (0+8)
215 0778 008A movwf 10
216 0779 0829 movf ?a_display+2,w
217 077A 2027 call ((_table0+-1)& (0+2047))| (($)& (0+-2048)
+ )
218 077B 120A 118A pagesel $
219 077D 00AA movwf ?a_display+3
220 ;1.c: 61: RB4=1;RB3=1;
221 077E 1606 bsf 6,4
222 077F 1586 bsf 6,3
223 ;1.c: 62: RB1=0;
224 0780 1086 bcf 6,1
225 ;1.c: 63: if(RB1==0) { PORTD=data; delay(); POR
+ TD=0x00;RB1=1; RB2=0; }
226 0781 1886 btfsc 6,1
227 0782 2F89 goto l11
228 0783 0827 movf ?a_display,w
229 0784 0088 movwf 8 ;volatile
230 0785 2749 fcall _delay
231 0786 0188 clrf 8 ;volatile
232 0787 1486 bsf 6,1
233 0788 1106 bcf 6,2
234 0789 l11
235 ;1.c: 64: if(RB2==0) { PORTD=data2; delay(); PO
+ RTD=0x00;RB2=1; }
236 0789 1906 btfsc 6,2
237 078A 0008 return
238 078B 082A movf ?a_display+3,w
239 078C 0088 movwf 8 ;volatile
240 078D 2749 fcall _delay
241 078E 0188 clrf 8 ;volatile
242 078F 1506 bsf 6,2
243 ;1.c: 65: }
244 0790 0008 return
245 0791 _ad_initial
246 0791 1683 bsf 3,5
247 0792 1303 bcf 3,6 ;carry unused
248 0793 1405 bsf 5,0 ;volatile
249 ;1.c: 21: ADCON0=0x41;
250 0794 3041 movlw 65
251 0795 1283 bcf 3,5
252 0796 009F movwf 31 ;volatile
253 ;1.c: 22: ADCON1=0x82;
254 0797 3082 movlw -126
255 0798 1683 bsf 3,5
256 0799 009F movwf 31 ;volatile
257 ;1.c: 23: ADIF=0;
258 079A 1283 bcf 3,5
259 079B 130C bcf 12,6
260 ;1.c: 24: ADIE=1;
261 079C 1683 bsf 3,5
262 079D 170C bsf 12,6
263 ;1.c: 26: }
264 079E 1283 bcf 3,5
265 079F 0008 return
266 07A0 _initial
267 ;1.c: 15: INTCON=0x00;
268 07A0 018B clrf 11 ;volatile
269 ;1.c: 16: ADCON1=0x07;
270 07A1 3007 movlw 7
271 07A2 1683 bsf 3,5
272 07A3 1303 bcf 3,6 ;carry unused
273 07A4 009F movwf 31 ;volatile
274 ;1.c: 17: }
275 07A5 1283 bcf 3,5
276 07A6 0008 return
277 ;1.c: 67: void main()
278 ;1.c: 68: {
279 07A7 _main
280 ;1.c: 69: TRISB=0x00;
281 07A7 1683 bsf 3,5
282 07A8 1303 bcf 3,6 ;carry unused
283 07A9 0186 clrf 6 ;volatile
284 ;1.c: 70: TRISD=0x00;
285 07AA 0188 clrf 8 ;volatile
286 ;1.c: 71: initial();
287 07AB 27A0 fcall _initial
288 ;1.c: 72: ad_initial();
289 07AC 2791 fcall _ad_initial
290 ;1.c: 73: INTCON=0xc0;
291 07AD 30C0 movlw -64
292 07AE 008B movwf 11 ;volatile
293 07AF l15
294 ;1.c: 74: while(1)
295 ;1.c: 75: {
296 07AF 275C 120A 118A fcall _display
297 ;1.c: 77: if(ad_flag==1)
298 07B2 0B20 decfsz _ad_flag,w
299 07B3 2FB7 goto l17
300 ;1.c: 78: deal_ad();
301 07B4 26F6 120A 118A fcall _deal_ad
302 07B7 l17
303 ;1.c: 79: if(ad_delay>0x0f)
304 07B7 3000 movlw 0
305 07B8 0222 subwf _ad_delay+1,w
306 07B9 3010 movlw 16
307 07BA 1903 btfsc 3,2
308 07BB 0221 subwf _ad_delay,w
309 07BC 1C03 btfss 3,0
310 07BD 2FC2 goto l18
311 ;1.c: 80: {
312 07BE 01A1 clrf _ad_delay
313 07BF 01A2 clrf _ad_delay+1
314 ;1.c: 82: ADCON0=ADCON0|0x04;
315 07C0 151F bsf 31,2 ;volatile
316 ;1.c: 83: }
317 07C1 2FAF goto l15
318 07C2 l18
319 07C2 0AA1 incf _ad_delay
320 07C3 1903 btfsc 3,2
321 07C4 0AA2 incf _ad_delay+1
322 ;1.c: 85: }
323 07C5 2FAF goto l15
324
325 psect intcode
326 000B _ad
327 000B int_func
328 ;1.c: 41: if(ADIF==1)
329 000B 0183 clrf 3 ;select bank 0
330 000C 1F0C btfss 12,6
331 000D 2811 goto l4
332 ;1.c: 42: { ADIF=0;
333 000E 130C bcf 12,6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -