📄 ad.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-34349 Thu Oct 26 15:45:38 2006
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z34349RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text1,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 text2,local,class=CODE,delta=2
12 psect text3,local,class=CODE,delta=2
13 psect text4,local,class=CODE,delta=2
14 psect text5,local,class=CODE,delta=2
15 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
16 psect rbss_1,global,class=BANK1,space=1,delta=
+ 1
17 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27 0000
28
29 psect __Z34349RS_
30 0190
31 0190
32
33 psect text0
34 ;mcp2510.h: 247: extern void mcp_read_can ( uch
+ ar buffer, uchar* ext, unsigned long* can_id,
35 ;mcp2510.h: 257: extern void mcp_write_can (uch
+ ar buffer, uchar ext, unsigned long can_id,
36 0936 _adinitial
37 ;AD.c: 38: ADCON0=0x41;
38 0936 3041 movlw 65
39 0937 0183 clrf 3 ;select bank 0
40 0938 009F movwf 31 ;volatile
41 ;AD.c: 41: ADCON1=0X84;
42 0939 3084 movlw -124
43 093A 1683 bsf 3,5
44 093B 009F movwf 31 ;volatile
45 ;AD.c: 42: PIE1=0X00;
46 093C 018C clrf 12 ;volatile
47 ;AD.c: 43: PIE2=0X00;
48 093D 018D clrf 13 ;volatile
49 ;AD.c: 44: ADIF=0;
50 093E 1283 bcf 3,5
51 093F 130C bcf 12,6
52 ;AD.c: 45: ADIE=1;
53 0940 1683 bsf 3,5
54 0941 170C bsf 12,6
55 ;AD.c: 46: PEIE=1;
56 0942 170B bsf 11,6
57 ;AD.c: 48: TRISA0=3;
58 0943 1405 bsf 5,0
59 ;AD.c: 49: (GIE = 1);
60 0944 178B bsf 11,7
61 ;AD.c: 53: ADGO=1;
62 0945 1283 bcf 3,5
63 0946 151F bsf 31,2
64 ;AD.c: 55: flagperend = 0;
65 0947 01A0 clrf _flagperend
66 ;AD.c: 56: gCurVolt = 0;
67 0948 1683 bsf 3,5
68 0949 01A8 clrf _gCurVolt^(0+128)
69 094A 01A9 clrf (_gCurVolt+1)^(0+128)
70 ;AD.c: 57: }
71 094B 1283 bcf 3,5
72 094C 0008 return
73
74 psect intcode
75 000D _adint
76 000D int_func
77 ;AD.c: 64: if(TMR1IE&&TMR1IF)
78 000D 1683 bsf 3,5
79 000E 1303 bcf 3,6 ;carry unused
80 000F 1C0C btfss 12,0
81 0010 2815 goto l5
82 0011 1283 bcf 3,5
83 0012 1C0C btfss 12,0
84 0013 2815 goto l5
85 ;AD.c: 65: {
86 0014 100C bcf 12,0
87 0015 l5
88 ;AD.c: 68: }
89 0015 1683 bsf 3,5
90 0016 1E0D btfss 13,4
91 0017 281D goto l6
92 0018 1283 bcf 3,5
93 0019 1E0D btfss 13,4
94 001A 281D goto l6
95 ;AD.c: 70: {
96 001B 1283 bcf 3,5
97 001C 120D bcf 13,4
98 001D l6
99 ;AD.c: 75: {
100 001D 1683 bsf 3,5
101 ;AD.c: 73: }
102 001E 1D0B btfss 11,2
103 001F 2835 goto L1
104 0020 0AA3 incf _tc^(0+128)
105 0021 1903 btfsc 3,2
106 0022 0AA4 incf (_tc+1)^(0+128)
107 ;AD.c: 77: if(tc>1000)
108 0023 3003 movlw 3
109 0024 0224 subwf (_tc+1)^(0+128),w
110 0025 30E9 movlw 233
111 0026 1903 btfsc 3,2
112 0027 0223 subwf _tc^(0+128),w
113 0028 1C03 btfss 3,0
114 0029 2830 goto l8
115 ;AD.c: 78: {
116 002A 01A3 clrf _tc^(0+128)
117 002B 01A4 clrf (_tc+1)^(0+128)
118 ;AD.c: 80: if(gOffLineCnt<10)
119 002C 300A movlw 10
120 002D 022F subwf _gOffLineCnt^(0+128),w
121 002E 1C03 btfss 3,0
122 ;AD.c: 81: gOffLineCnt++;
123 002F 0AAF incf _gOffLineCnt^(0+128)
124 ;AD.c: 82: }
125 0030 l8
126 ;AD.c: 83: TMR0=255;
127 0030 30FF movlw -1
128 0031 1283 bcf 3,5
129 0032 0081 movwf 1 ;volatile
130 ;AD.c: 84: T0IF = 0;
131 0033 110B bcf 11,2
132 ;AD.c: 85: }
133 0034 1683 bsf 3,5
134 0035 L1
135 0035 1F0C btfss 12,6
136 0036 2853 goto l4
137 0037 1283 bcf 3,5
138 0038 1F0C btfss 12,6
139 0039 2853 goto l4
140 ;AD.c: 87: {
141 003A 1283 bcf 3,5
142 003B 130C bcf 12,6
143 ;AD.c: 89: adresult.adre[0]=ADRESL;
144 003C 1683 bsf 3,5
145 003D 081E movf 30,w ;volatile
146 003E 00A6 movwf _adresult^(0+128)
147 ;AD.c: 90: adresult.adre[1]=ADRESH;
148 003F 1283 bcf 3,5
149 0040 081E movf 30,w ;volatile
150 0041 1683 bsf 3,5
151 0042 00A7 movwf (_adresult+1)^(0+128)
152 ;AD.c: 92: if(adresult.y1>0x400)
153 0043 3A80 xorlw 128
154 0044 00F0 movwf btemp
155 0045 3084 movlw 132
156 0046 0270 subwf btemp,w
157 0047 3001 movlw 1
158 ;set bank bits for (((_adresult))^0x80)
159 0048 1903 btfsc 3,2
160 0049 0226 subwf _adresult^(0+128),w
161 004A 1803 btfsc 3,0
162 ;AD.c: 93: {
163 004B 0000 nop ;#
164 ;AD.c: 98: }
165 004C 0000 nop ;#
166 ;AD.c: 100: asm("nop");
167 004D 0000 nop ;#
168 ;AD.c: 101: asm("nop");
169 004E 0000 nop ;#
170 ;AD.c: 102: asm("nop");
171 004F 0000 nop ;#
172 ;AD.c: 106: flagperend=1;
173 0050 1283 bcf 3,5
174 0051 01A0 clrf _flagperend
175 0052 0AA0 incf _flagperend
176 ;AD.c: 107: }
177 0053 l4
178 0053 1303 bcf 3,6 ;carry unused
179 0054 1283 bcf 3,5
180
181 psect intsave_0
182 007E saved_w
183 007E ds 1
184
185 psect intret
186 0057 086E movf saved_pclath,w
187 0058 008A movwf 10
188 0059 int_restore
189 0059 086D movf saved_status,w
190 005A 0083 movwf 3
191 005B 0EFE swapf saved_w
192 005C 0E7E swapf saved_w,w
193 005D 0009 retfie
194
195 psect intentry
196 0004 int_entry
197 0004 00FE movwf saved_w
198 0005 0803 movf 3,w
199 0006 0183 clrf 3
200 0007 00ED movwf saved_status
201 0008 080A movf 10,w
202 0009 00EE movwf saved_pclath
203 000A 018A clrf 10
204 ;AD.c: 110: void AdcRead(char channel,int *adcv
+ aule)
205 ;AD.c: 111: {
206 ; param _adcvaule assigned to ?_AdcRead+0
207 0000 _AdcRead$adcvaule set ?_AdcRead
208
209 psect intsave
210 006D saved_status
211 006D ds 1
212 006E saved_pclath
213 006E ds 1
214
215 psect text2
216 09E4 _AdcRead
217 ; _channel assigned to ?a_AdcRead+0
218 0000 _AdcRead$channel set ?a_AdcRead
219 ;_channel stored from w
220 09E4 0183 clrf 3 ;select bank 0
221 09E5 00A2 movwf ?a_AdcRead
222 ;AD.c: 112: flagperend=0;
223 09E6 01A0 clrf _flagperend
224 ;AD.c: 113: ADCON0 = (channel << 3) | 0x41;
225 09E7 00F0 movwf btemp
226 09E8 1003 bcf 3,0
227 09E9 0DF0 rlf btemp
228 09EA 1003 bcf 3,0
229 09EB 0DF0 rlf btemp
230 09EC 1003 bcf 3,0
231 09ED 0D70 rlf btemp,w
232 09EE 3841 iorlw 65
233 09EF 009F movwf 31 ;volatile
234 ;AD.c: 114: asm("nop");
235 09F0 0000 nop ;#
236 ;AD.c: 115: asm("nop");
237 09F1 0000 nop ;#
238 ;AD.c: 116: asm("nop");
239 09F2 0000 nop ;#
240 ;AD.c: 117: DelayF(1);
241 09F3 01A3 clrf ?_DelayF
242 09F4 0AA3 incf ?_DelayF
243 09F5 01A4 clrf ?_DelayF+1
244 09F6 120A 158A 22AB fcall _DelayF
+ 120A 158A
245 ;AD.c: 118: ADGO = 1;
246 09FB 151F bsf 31,2
247 ;AD.c: 119: while(flagperend=0);
248 09FC 01A0 clrf _flagperend
249 ;AD.c: 120: *adcvaule = adresult.y1;
250 09FD 0821 movf ?_AdcRead,w
251 09FE 0084 movwf 4
252 09FF 1383 bcf 3,7
253 0A00 1683 bsf 3,5
254 0A01 0826 movf _adresult^(0+128),w
255 0A02 0080 movwf 0
256 0A03 0A84 incf 4
257 0A04 0827 movf (_adresult+1)^(0+128),w
258 0A05 0080 movwf 0
259 ;AD.c: 121: }
260 0A06 1283 bcf 3,5
261 0A07 0008 return
262
263 psect text3
264 ;AD.c: 157: char checkVolt(void)
265 ;AD.c: 158: {
266 0965 _checkVolt
267 ;AD.c: 159: if((gCurVolt<gMin_Volt) || (gCurVol
+ t > gMax_Volt))
268 0965 1683 bsf 3,5
269 0966 1303 bcf 3,6 ;carry unused
270 0967 0829 movf (_gCurVolt+1)^(0+128),w
271 0968 3A80 xorlw 128
272 0969 00F0 movwf btemp
273 096A 082E movf (_gMin_Volt+1)^(0+128),w
274 096B 3A80 xorlw 128
275 096C 0270 subwf btemp,w
276 096D 1D03 btfss 3,2
277 096E 2971 goto u145
278 096F 082D movf _gMin_Volt^(0+128),w
279 0970 0228 subwf _gCurVolt^(0+128),w
280 0971 u145
281 0971 1C03 btfss 3,0
282 0972 34FF retlw -1
283 0973 082C movf (_gMax_Volt+1)^(0+128),w
284 0974 3A80 xorlw 128
285 0975 00F0 movwf btemp
286 0976 0829 movf (_gCurVolt+1)^(0+128),w
287 0977 3A80 xorlw 128
288 0978 0270 subwf btemp,w
289 0979 1D03 btfss 3,2
290 097A 297D goto u155
291 097B 0828 movf _gCurVolt^(0+128),w
292 097C 022B subwf _gMax_Volt^(0+128),w
293 097D u155
294 097D 1C03 btfss 3,0
295 ;AD.c: 160: return -1;
296 097E 34FF retlw -1
297 097F 3400 retlw 0
298
299 psect text4
300 ;AD.c: 165: int temp_get(void)
301 ;AD.c: 166: {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -