📄 485-pc-bus.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-79926 Wed Apr 29 08:43:34 2009
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z79926RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text3,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 text5,local,class=CODE,delta=2
12 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23
24 psect __Z79926RS_
25 0190
26 0190
27
28 psect text0
29 079F _send_serial
30 ; _count assigned to ?a_send_serial+0
31 0000 _send_serial$count set ?a_send_serial
32 ;_count stored from w
33 079F 0183 clrf 3 ;select bank 0
34 07A0 00B0 movwf ?a_send_serial
35 ;485-PC-BUS.c: 19: TXEN=1;
36 07A1 1683 bsf 3,5
37 07A2 1698 bsf 24,5
38 ;485-PC-BUS.c: 20: TXREG=count;
39 07A3 1283 bcf 3,5
40 07A4 0830 movf ?a_send_serial,w
41 07A5 0099 movwf 25 ;volatile
42 07A6 l3
43 ;485-PC-BUS.c: 21: while(1)
44 ;485-PC-BUS.c: 22: {
45 07A6 1683 bsf 3,5
46 07A7 1C98 btfss 24,1
47 07A8 2FA6 goto l3
48 ;485-PC-BUS.c: 25: TXEN=0;
49 07A9 1298 bcf 24,5
50 ;485-PC-BUS.c: 27: }
51 07AA 1283 bcf 3,5
52 07AB 0008 return
53 ;485-PC-BUS.c: 39: void sciinitial()
54 ;485-PC-BUS.c: 40: {
55 07AC _sciinitial
56 ;485-PC-BUS.c: 41: TXSTA=0x04;
57 07AC 3004 movlw 4
58 07AD 1683 bsf 3,5
59 07AE 1303 bcf 3,6 ;carry unused
60 07AF 0098 movwf 24 ;volatile
61 ;485-PC-BUS.c: 42: RCSTA=0x80;
62 07B0 3080 movlw -128
63 07B1 1283 bcf 3,5
64 07B2 0098 movwf 24 ;volatile
65 ;485-PC-BUS.c: 43: TRISC=0x80;
66 07B3 1683 bsf 3,5
67 07B4 0087 movwf 7 ;volatile
68 ;485-PC-BUS.c: 44: SPBRG=0x33;
69 07B5 3033 movlw 51
70 07B6 0099 movwf 25 ;volatile
71 ;485-PC-BUS.c: 45: PIR1=0x00;
72 07B7 1283 bcf 3,5
73 07B8 018C clrf 12 ;volatile
74 ;485-PC-BUS.c: 46: PIE1=PIE1|0x20;
75 07B9 1683 bsf 3,5
76 07BA 168C bsf 12,5 ;volatile
77 ;485-PC-BUS.c: 47: CREN=1;
78 07BB 1283 bcf 3,5
79 07BC 1618 bsf 24,4
80 ;485-PC-BUS.c: 48: TXEN=1;
81 07BD 1683 bsf 3,5
82 07BE 1698 bsf 24,5
83 ;485-PC-BUS.c: 49: }
84 07BF 1283 bcf 3,5
85 07C0 0008 return
86 ;485-PC-BUS.c: 30: void initial()
87 ;485-PC-BUS.c: 31: {
88 07C1 _initial
89 ;485-PC-BUS.c: 32: INTCON=0x00;
90 07C1 018B clrf 11 ;volatile
91 ;485-PC-BUS.c: 33: ADCON1=0x07;
92 07C2 3007 movlw 7
93 07C3 1683 bsf 3,5
94 07C4 1303 bcf 3,6 ;carry unused
95 07C5 009F movwf 31 ;volatile
96 ;485-PC-BUS.c: 34: PIE1=0;
97 07C6 018C clrf 12 ;volatile
98 ;485-PC-BUS.c: 35: PIE2=0;
99 07C7 018D clrf 13 ;volatile
100 ;485-PC-BUS.c: 36: }
101 07C8 1283 bcf 3,5
102 07C9 0008 return
103 ;485-PC-BUS.c: 85: main()
104 ;485-PC-BUS.c: 86: {
105 07CA _main
106 ;485-PC-BUS.c: 87: initial();
107 07CA 27C1 fcall _initial
108 ;485-PC-BUS.c: 88: sciinitial();
109 07CB 27AC fcall _sciinitial
110 ;485-PC-BUS.c: 89: TRISD2=0;
111 07CC 1683 bsf 3,5
112 07CD 1108 bcf 8,2
113 ;485-PC-BUS.c: 91: RD2=0;
114 07CE 1283 bcf 3,5
115 07CF 1108 bcf 8,2
116 ;485-PC-BUS.c: 92: flag=0;
117 07D0 01A0 clrf _flag
118 ;485-PC-BUS.c: 93: INTCON=INTCON|0xc0;
119 07D1 30C0 movlw -64
120 07D2 048B iorwf 11 ;volatile
121 ;485-PC-BUS.c: 94: rcount=0;
122 07D3 01A4 clrf _rcount
123 07D4 l21
124 ;485-PC-BUS.c: 95: while(1)
125 ;485-PC-BUS.c: 96: {
126 07D4 0B20 decfsz _flag,w
127 07D5 2FD4 goto l21
128 ;485-PC-BUS.c: 98: {
129 07D6 01A0 clrf _flag
130 ;485-PC-BUS.c: 100: RD2=1;
131 07D7 1508 bsf 8,2
132 ;485-PC-BUS.c: 101: if(rcount>4)
133 07D8 3005 movlw 5
134 07D9 0224 subwf _rcount,w
135 07DA 1C03 btfss 3,0
136 07DB 2FF7 goto l24
137 ;485-PC-BUS.c: 102: {
138 07DC 01A4 clrf _rcount
139 ;485-PC-BUS.c: 104: if((r_buf[1]==0x30)&&(r_buf
+ [2]==0x31))
140 07DD 0829 movf _r_buf+1,w
141 07DE 3A30 xorlw 48
142 07DF 1D03 btfss 3,2
143 07E0 2FEA goto l25
144 07E1 082A movf _r_buf+2,w
145 07E2 3A31 xorlw 49
146 07E3 1D03 btfss 3,2
147 07E4 2FEA goto l25
148 ;485-PC-BUS.c: 105: {
149 07E5 3042 movlw 66
150 07E6 279F fcall _send_serial
151 ;485-PC-BUS.c: 107: send_serial(0x0a);
152 07E7 300A movlw 10
153 07E8 279F fcall _send_serial
154 ;485-PC-BUS.c: 108: }
155 07E9 2FF7 goto l24
156 07EA l25
157 ;485-PC-BUS.c: 110: {
158 07EA 01A3 clrf _k
159 07EB l30
160 07EB 3005 movlw 5
161 07EC 0223 subwf _k,w
162 07ED 1803 btfsc 3,0
163 07EE 2FF7 goto l24
164 ;485-PC-BUS.c: 112: send_serial(r_buf[k]);
165 07EF 0823 movf _k,w
166 07F0 3E28 addlw _r_buf
167 07F1 0084 movwf 4
168 07F2 1383 bcf 3,7
169 07F3 0800 movf 0,w
170 07F4 279F fcall _send_serial
171 07F5 0AA3 incf _k
172 07F6 2FEB goto l30
173 ;485-PC-BUS.c: 113: }
174 07F7 l24
175 ;485-PC-BUS.c: 114: }
176 07F7 01A1 clrf _i
177 07F8 l34
178 07F8 3032 movlw 50
179 07F9 0221 subwf _i,w
180 07FA 1803 btfsc 3,0
181 07FB 2FFE goto l32
182 07FC 0AA1 incf _i
183 07FD 2FF8 goto l34
184 07FE l32
185 ;485-PC-BUS.c: 116: RD2=0;
186 07FE 1108 bcf 8,2
187 ;485-PC-BUS.c: 117: }
188 07FF 2FD4 goto l21
189
190 psect intcode
191 ;485-PC-BUS.c: 51: void interrupt LOW_ISR()
192 ;485-PC-BUS.c: 52: {
193 000D _LOW_ISR
194 000D int_func
195 ; _a assigned to ?a_LOW_ISR+0
196 0000 _LOW_ISR$a set ?a_LOW_ISR
197 ; _flag_recover assigned to ?a_LOW_ISR+1
198 0000 _LOW_ISR$flag_recover set ?a_LOW_ISR+1
199 ; _flag_startrec assigned to ?a_LOW_ISR+2
200 0000 _LOW_ISR$flag_startrec set ?a_LOW_ISR+2
201 ;485-PC-BUS.c: 53: unsigned char a=1,flag_recov
+ er=0,flag_startrec=0;
202 000D 0183 clrf 3 ;select bank 0
203 000E 01B1 clrf ?a_LOW_ISR
204 000F 0AB1 incf ?a_LOW_ISR
205 0010 01B2 clrf ?a_LOW_ISR+1
206 0011 01B3 clrf ?a_LOW_ISR+2
207 ;485-PC-BUS.c: 54: if(RCIF==1)
208 0012 1E8C btfss 12,5
209 0013 2839 goto l8
210 ;485-PC-BUS.c: 55: {
211 0014 128C bcf 12,5
212 ;485-PC-BUS.c: 57: while(!flag_recover)
213 ;485-PC-BUS.c: 73: }
214 ;485-PC-BUS.c: 75: }
215 0015 l10
216 0015 08B2 movf ?a_LOW_ISR+1
217 0016 1D03 btfss 3,2
218 0017 2837 goto l12
219 ;485-PC-BUS.c: 58: {
220 0018 l13
221 0018 1E8C btfss 12,5
222 0019 2818 goto l13
223 ;485-PC-BUS.c: 60: recdata = RCREG;
224 001A 081A movf 26,w ;volatile
225 001B 00A5 movwf _recdata
226 ;485-PC-BUS.c: 61: RCIF=0;
227 001C 128C bcf 12,5
228 ;485-PC-BUS.c: 62: if((!flag_startrec)&&(recdat
+ a==0x24))
229 001D 08B3 movf ?a_LOW_ISR+2
230 001E 1D03 btfss 3,2
231 001F 2826 goto l16
232 0020 0825 movf _recdata,w
233 0021 3A24 xorlw 36
234 0022 1D03 btfss 3,2
235 0023 2826 goto l16
236 ;485-PC-BUS.c: 63: {
237 0024 01B3 clrf ?a_LOW_ISR+2
238 0025 0AB3 incf ?a_LOW_ISR+2
239 0026 l16
240 ;485-PC-BUS.c: 65: }
241 0026 08B3 movf ?a_LOW_ISR+2
242 0027 1903 btfsc 3,2
243 0028 2815 goto l10
244 ;485-PC-BUS.c: 68: {
245 0029 0824 movf _rcount,w
246 002A 3E28 addlw _r_buf
247 002B 0084 movwf 4
248 002C 1383 bcf 3,7
249 002D 0825 movf _recdata,w
250 002E 0080 movwf 0
251 ;485-PC-BUS.c: 70: rcount ++;
252 002F 0AA4 incf _rcount
253 ;485-PC-BUS.c: 71: if(recdata == 0x2a)
254 0030 0825 movf _recdata,w
255 0031 3A2A xorlw 42
256 0032 1D03 btfss 3,2
257 0033 2815 goto l10
258 ;485-PC-BUS.c: 72: {flag_recover = 1;}
259 0034 01B2 clrf ?a_LOW_ISR+1
260 0035 0AB2 incf ?a_LOW_ISR+1
261 0036 2815 goto l10
262 0037 l12
263 ;485-PC-BUS.c: 78: flag=1;
264 0037 01A0 clrf _flag
265 0038 0AA0 incf _flag
266 ;485-PC-BUS.c: 79: }
267 0039 l8
268
269 psect intsave_0
270 0070 saved_w
271 0070 ds 1
272
273 psect intret
274 0039 0835 movf saved_fsr,w
275 003A 0084 movwf 4 ;restore FSR
276 003B 0836 movf saved_pclath,w
277 003C 008A movwf 10
278 003D int_restore
279 003D 0834 movf saved_status,w
280 003E 0083 movwf 3
281 003F 0EF0 swapf saved_w
282 0040 0E70 swapf saved_w,w
283 0041 0009 retfie
284
285 psect intentry
286 0004 int_entry
287 0004 00F0 movwf saved_w
288 0005 0803 movf 3,w
289 0006 0183 clrf 3
290 0007 00B4 movwf saved_status
291 0008 0804 movf 4,w
292 0009 00B5 movwf saved_fsr
293 000A 080A movf 10,w
294 000B 00B6 movwf saved_pclath
295 000C 018A clrf 10
296
297 psect intsave
298 0034 saved_status
299 0034 ds 1
300 0035 saved_fsr
301 0035 ds 1
302 0036 saved_pclath
303 0036 ds 1
304
305 psect text5
306 0000
307 0000
308 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -