📄 interrupt.lst
字号:
HI-TECH Software PICC Macro Assembler V9.50PL2
Mon Oct 22 15:46:20 2007
1 processor 16F873A
2 opt pw 79
3 psect text0,local,class=CODE,delta=2
4 psect text1,local,class=CODE,delta=2
5 psect intcode,global,class=CODE,delta=2
6 psect intsave_2,global,ovrld,class=BANK2,space
+ =1,delta=1
7 psect intsave_3,global,ovrld,class=BANK3,space
+ =1,delta=1
8 psect intsave_1,global,ovrld,class=BANK1,space
+ =1,delta=1
9 psect intsave_0,global,ovrld,class=BANK0,space
+ =1,delta=1
10 psect intret,global,class=CODE,delta=2
11 psect intentry,global,class=CODE,delta=2
12 psect intsave,global,class=BANK0,space=1,delta
+ =1
13 psect text2,local,class=CODE,delta=2
14 psect text3,local,class=CODE,delta=2
15 psect rbit_0,global,bit,class=BANK0,space=1,de
+ lta=1
16 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27
28 psect text0
29 07E5 _init_timer
30 ;interrupt.c: 8: void init_timer(void)
31 07E5 3003 movlw 3
32 07E6 1683 bsf 3,5
33 07E7 1303 bcf 3,6 ;carry unused
34 07E8 0081 movwf 1
35 ;interrupt.c: 12: T0IE=1;
36 07E9 168B bsf 11,5
37 ;interrupt.c: 14: T1CON=1;
38 07EA 3001 movlw 1
39 07EB 1283 bcf 3,5
40 07EC 0090 movwf 16 ;volatile
41 ;interrupt.c: 15: TMR1H=0xFE;
42 07ED 30FE movlw -2
43 07EE 008F movwf 15 ;volatile
44 ;interrupt.c: 16: TMR1L=0x0B;
45 07EF 300B movlw 11
46 07F0 008E movwf 14 ;volatile
47 ;interrupt.c: 17: TMR1IE=1;
48 07F1 1683 bsf 3,5
49 07F2 140C bsf 12,0
50 ;interrupt.c: 18: PEIE=1;
51 07F3 170B bsf 11,6
52 ;interrupt.c: 20: TMR2ON=1;
53 07F4 1283 bcf 3,5
54 07F5 1512 bsf 18,2
55 ;interrupt.c: 21: T2CON=0x7f;
56 07F6 307F movlw 127
57 07F7 0092 movwf 18 ;volatile
58 ;interrupt.c: 22: TMR2IE=1;
59 07F8 1683 bsf 3,5
60 07F9 148C bsf 12,1
61 ;interrupt.c: 23: PEIE=1;
62 07FA 170B bsf 11,6
63 ;interrupt.c: 24: PR2=38;
64 07FB 3026 movlw 38
65 07FC 0092 movwf 18 ;volatile
66 ;interrupt.c: 26: GIE=1;
67 07FD 178B bsf 11,7
68 ;interrupt.c: 27: }
69 07FE 1283 bcf 3,5
70 07FF 0008 return ;W free
71
72 psect intcode
73 000B _ISR
74 000B int_func
75 ;interrupt.c: 29: void interrupt ISR (void)
76 000B 1D0B btfss 11,2
77 000C 2825 goto l3
78 ;interrupt.c: 35: {
79 000D 110B bcf 11,2
80 000E 1283 bcf 3,5
81 000F 1303 bcf 3,6 ;carry unused
82 0010 0181 clrf 1 ;volatile
83 ;interrupt.c: 37: if(RC1==0)
84 0011 1887 btfsc 7,1
85 0012 281B goto l4
86 ;interrupt.c: 38: {
87 0013 0821 movf _k1_count,w
88 0014 3A1E xorlw 30
89 0015 1D03 btfss 3,2
90 0016 281A goto l5
91 ;interrupt.c: 40: { k1_count=0; k1=1; }
92 0017 01A1 clrf _k1_count
93 0018 1420 bsf _k1/(0+8),_k1& (0+7)
94 0019 281B goto l4
95 001A l5
96 ;interrupt.c: 41: else k1_count++;
97 001A 0AA1 incf _k1_count
98 001B l4
99 ;interrupt.c: 42: }
100 001B 1987 btfsc 7,3
101 001C 2825 goto l3
102 ;interrupt.c: 45: {
103 001D 0822 movf _k2_count,w
104 001E 3A14 xorlw 20
105 001F 1D03 btfss 3,2
106 0020 2824 goto l8
107 ;interrupt.c: 47: { k2_count=0; k2=1; }
108 0021 01A2 clrf _k2_count
109 0022 14A0 bsf _k2/(0+8),_k2& (0+7)
110 0023 2825 goto l3
111 0024 l8
112 ;interrupt.c: 48: else k2_count++;
113 0024 0AA2 incf _k2_count
114 0025 l3
115 ;interrupt.c: 49: }
116 0025 1683 bsf 3,5
117 0026 1303 bcf 3,6 ;carry unused
118 0027 1C0C btfss 12,0
119 0028 2863 goto l10
120 0029 1283 bcf 3,5
121 002A 1C0C btfss 12,0
122 002B 2863 goto l10
123 ;interrupt.c: 54: {
124 002C 1283 bcf 3,5
125 002D 1303 bcf 3,6 ;carry unused
126 002E 100C bcf 12,0
127 ;interrupt.c: 57: TMR1H=0XFE;
128 002F 30FE movlw -2
129 0030 008F movwf 15 ;volatile
130 ;interrupt.c: 58: TMR1L=0X0B;
131 0031 300B movlw 11
132 0032 008E movwf 14 ;volatile
133 ;interrupt.c: 61: if(k1) {
134 0033 1C20 btfss _k1/(0+8),_k1& (0+7)
135 0034 284B goto l11
136 ;interrupt.c: 62: RB3=!RB3;
137 0035 3008 movlw 8
138 0036 0686 xorwf 6
139 ;interrupt.c: 63: RB1=!RB1;
140 0037 3002 movlw 2
141 0038 0686 xorwf 6
142 ;interrupt.c: 64: RB4=1;
143 0039 1606 bsf 6,4
144 ;interrupt.c: 65: RB5=1;
145 003A 1686 bsf 6,5
146 ;interrupt.c: 66: if(mcount==800)
147 003B 0828 movf _mcount+1,w
148 003C 3A03 xorlw 3
149 003D 3020 movlw 32
150 003E 1903 btfsc 3,2
151 003F 0627 xorwf _mcount,w
152 0040 1D03 btfss 3,2
153 0041 2848 goto l12
154 ;interrupt.c: 67: { RB4=0; mcount=0; k1=0; RB1=
+ 1; }
155 0042 1206 bcf 6,4
156 0043 01A7 clrf _mcount
157 0044 01A8 clrf _mcount+1
158 0045 1020 bcf _k1/(0+8),_k1& (0+7)
159 0046 1486 bsf 6,1
160 0047 284B goto l11
161 0048 l12
162 ;interrupt.c: 68: else mcount++;
163 0048 0AA7 incf _mcount
164 0049 1903 btfsc 3,2
165 004A 0AA8 incf _mcount+1
166 004B l11
167 ;interrupt.c: 69: }
168 004B 1CA0 btfss _k2/(0+8),_k2& (0+7)
169 004C 2863 goto l10
170 ;interrupt.c: 72: RB3=!RB3;
171 004D 3008 movlw 8
172 004E 0686 xorwf 6
173 ;interrupt.c: 73: RB1=!RB1;
174 004F 3002 movlw 2
175 0050 0686 xorwf 6
176 ;interrupt.c: 74: RB4=1;
177 0051 1606 bsf 6,4
178 ;interrupt.c: 75: RB5=0;
179 0052 1286 bcf 6,5
180 ;interrupt.c: 76: if(mcount==800)
181 0053 0828 movf _mcount+1,w
182 0054 3A03 xorlw 3
183 0055 3020 movlw 32
184 0056 1903 btfsc 3,2
185 0057 0627 xorwf _mcount,w
186 0058 1D03 btfss 3,2
187 0059 2860 goto l15
188 ;interrupt.c: 77: { RB4=0; mcount=0; k2=0; RB1=
+ 1; }
189 005A 1206 bcf 6,4
190 005B 01A7 clrf _mcount
191 005C 01A8 clrf _mcount+1
192 005D 10A0 bcf _k2/(0+8),_k2& (0+7)
193 005E 1486 bsf 6,1
194 005F 2863 goto l10
195 0060 l15
196 ;interrupt.c: 78: else mcount++;
197 0060 0AA7 incf _mcount
198 0061 1903 btfsc 3,2
199 0062 0AA8 incf _mcount+1
200 0063 l10
201 ;interrupt.c: 79: }
202 0063 1683 bsf 3,5
203 0064 1303 bcf 3,6 ;carry unused
204 0065 1C8C btfss 12,1
205 0066 287B goto l2
206 0067 1283 bcf 3,5
207 0068 1C8C btfss 12,1
208 0069 287B goto l2
209 ;interrupt.c: 87: {
210 006A 1283 bcf 3,5
211 006B 1303 bcf 3,6 ;carry unused
212 006C 108C bcf 12,1
213 ;interrupt.c: 89: TMR2=0;
214 006D 0191 clrf 17 ;volatile
215 ;interrupt.c: 90: if(count1==100)
216 006E 0825 movf _count1,w
217 006F 3A64 xorlw 100
218 0070 0426 iorwf _count1+1,w
219 0071 1D03 btfss 3,2
220 0072 2878 goto l18
221 ;interrupt.c: 91: {
222 0073 3010 movlw 16
223 0074 0687 xorwf 7
224 ;interrupt.c: 93: count1=0;
225 0075 01A5 clrf _count1
226 0076 01A6 clrf _count1+1
227 ;interrupt.c: 98: }
228 0077 287B goto l2
229 0078 l18
230 ;interrupt.c: 99: else count1++;
231 0078 0AA5 incf _count1
232 0079 1903 btfsc 3,2
233 007A 0AA6 incf _count1+1
234 ;interrupt.c: 101: }
235 007B l2
236 007B 1303 bcf 3,6 ;carry unused
237 007C 1283 bcf 3,5
238
239 psect intsave_2
240 0006 ds 1
241
242 psect intsave_3
243 0007 ds 1
244
245 psect intsave_1
246 00FF ds 1
247
248 psect intsave_0
249 007F saved_w
250 007F ds 1
251
252 psect intret
253 007D 082C movf saved_pclath,w
254 007E 008A movwf 10
255 007F int_restore
256 007F 082B movf saved_status,w
257 0080 0083 movwf 3
258 0081 0EFF swapf saved_w
259 0082 0E7F swapf saved_w,w
260 0083 0009 retfie
261
262 psect intentry
263 0004 int_entry
264 0004 00FF movwf saved_w
265 0005 0803 movf 3,w
266 0006 0183 clrf 3
267 0007 00AB movwf saved_status
268 0008 080A movf 10,w
269 0009 00AC movwf saved_pclath
270 000A 018A clrf 10
271
272 psect intsave
273 002B saved_status
274 002B ds 1
275 002C saved_pclath
276 002C ds 1
277
278 psect text2
279 07C3 _inti_io
280 ;interrupt.c: 105: void inti_io(void)
281 07C3 1683 bsf 3,5
282 07C4 1303 bcf 3,6 ;carry unused
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -