📄 16key_int.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-51037 Tue Jun 3 16:57:31 2008
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z51037RS_,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 text3,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 __Z51037RS_
25 0190
26 0190
27
28 psect text0
29 07ED _int_init
30 ;16key_INT.c: 8: GIE=1;
31 07ED 178B bsf 11,7
32 ;16key_INT.c: 9: INTE=1;
33 07EE 160B bsf 11,4
34 ;16key_INT.c: 10: INTF=0;
35 07EF 108B bcf 11,1
36 ;16key_INT.c: 11: TRISB0=1;
37 07F0 1683 bsf 3,5
38 07F1 1303 bcf 3,6 ;carry unused
39 07F2 1406 bsf 6,0
40 ;16key_INT.c: 12: TRISD=0x00;
41 07F3 0188 clrf 8 ;volatile
42 ;16key_INT.c: 13: PORTD=0x0f;
43 07F4 300F movlw 15
44 07F5 1283 bcf 3,5
45 07F6 0088 movwf 8 ;volatile
46 ;16key_INT.c: 14: TRISD=0xf0;
47 07F7 30F0 movlw -16
48 07F8 1683 bsf 3,5
49 07F9 0088 movwf 8 ;volatile
50 ;16key_INT.c: 15: TRISC=0x00;
51 07FA 0187 clrf 7 ;volatile
52 ;16key_INT.c: 16: INTEDG=1;
53 07FB 1701 bsf 1,6
54 ;16key_INT.c: 18: }
55 07FC 1283 bcf 3,5
56 07FD 0008 return
57 ;16key_INT.c: 53: void main()
58 ;16key_INT.c: 54: {
59 07FE _main
60 ;16key_INT.c: 55: int_init();
61 07FE 27ED fcall _int_init
62 ;16key_INT.c: 56: while(1)
63 07FF l20
64 ;16key_INT.c: 57: {
65 07FF 2FFF goto l20
66
67 psect intcode
68 000B _intkey
69 000B int_func
70 ;16key_INT.c: 22: INTF=0;
71 000B 108B bcf 11,1
72 ;16key_INT.c: 23: PORTD=0x00;
73 000C 1283 bcf 3,5
74 000D 1303 bcf 3,6 ;carry unused
75 000E 0188 clrf 8 ;volatile
76 ;16key_INT.c: 25: RD0=1;
77 000F 1408 bsf 8,0
78 ;16key_INT.c: 26: if(1==RD4) key=1;
79 0010 1E08 btfss 8,4
80 0011 2814 goto l3
81 0012 01A0 clrf _key
82 0013 0AA0 incf _key
83 0014 l3
84 ;16key_INT.c: 27: if(1==RD5) key=2;
85 0014 1E88 btfss 8,5
86 0015 2818 goto l4
87 0016 3002 movlw 2
88 0017 00A0 movwf _key
89 0018 l4
90 ;16key_INT.c: 28: if(1==RD6) key=3;
91 0018 1F08 btfss 8,6
92 0019 281C goto l5
93 001A 3003 movlw 3
94 001B 00A0 movwf _key
95 001C l5
96 ;16key_INT.c: 29: if(1==RD7) key=4;
97 001C 1F88 btfss 8,7
98 001D 2820 goto l6
99 001E 3004 movlw 4
100 001F 00A0 movwf _key
101 0020 l6
102 ;16key_INT.c: 30: RD0=0;
103 0020 1008 bcf 8,0
104 ;16key_INT.c: 31: RD1=1;
105 0021 1488 bsf 8,1
106 ;16key_INT.c: 32: if(1==RD4) key=5;
107 0022 1E08 btfss 8,4
108 0023 2826 goto l7
109 0024 3005 movlw 5
110 0025 00A0 movwf _key
111 0026 l7
112 ;16key_INT.c: 33: if(1==RD5) key=6;
113 0026 1E88 btfss 8,5
114 0027 282A goto l8
115 0028 3006 movlw 6
116 0029 00A0 movwf _key
117 002A l8
118 ;16key_INT.c: 34: if(1==RD6) key=7;
119 002A 1F08 btfss 8,6
120 002B 282E goto l9
121 002C 3007 movlw 7
122 002D 00A0 movwf _key
123 002E l9
124 ;16key_INT.c: 35: if(1==RD7) key=8;
125 002E 1F88 btfss 8,7
126 002F 2832 goto l10
127 0030 3008 movlw 8
128 0031 00A0 movwf _key
129 0032 l10
130 ;16key_INT.c: 36: RD1=0;
131 0032 1088 bcf 8,1
132 ;16key_INT.c: 37: RD2=1;
133 0033 1508 bsf 8,2
134 ;16key_INT.c: 38: if(1==RD4) key=9;
135 0034 1E08 btfss 8,4
136 0035 2838 goto l11
137 0036 3009 movlw 9
138 0037 00A0 movwf _key
139 0038 l11
140 ;16key_INT.c: 39: if(1==RD5) key=10;
141 0038 1E88 btfss 8,5
142 0039 283C goto l12
143 003A 300A movlw 10
144 003B 00A0 movwf _key
145 003C l12
146 ;16key_INT.c: 40: if(1==RD6) key=11;
147 003C 1F08 btfss 8,6
148 003D 2840 goto l13
149 003E 300B movlw 11
150 003F 00A0 movwf _key
151 0040 l13
152 ;16key_INT.c: 41: if(1==RD7) key=12;
153 0040 1F88 btfss 8,7
154 0041 2844 goto l14
155 0042 300C movlw 12
156 0043 00A0 movwf _key
157 0044 l14
158 ;16key_INT.c: 42: RD2=0;
159 0044 1108 bcf 8,2
160 ;16key_INT.c: 43: RD3=1;
161 0045 1588 bsf 8,3
162 ;16key_INT.c: 44: if(1==RD4) key=13;
163 0046 1E08 btfss 8,4
164 0047 284A goto l15
165 0048 300D movlw 13
166 0049 00A0 movwf _key
167 004A l15
168 ;16key_INT.c: 45: if(1==RD5) key=14;
169 004A 1E88 btfss 8,5
170 004B 284E goto l16
171 004C 300E movlw 14
172 004D 00A0 movwf _key
173 004E l16
174 ;16key_INT.c: 46: if(1==RD6) key=15;
175 004E 1F08 btfss 8,6
176 004F 2852 goto l17
177 0050 300F movlw 15
178 0051 00A0 movwf _key
179 0052 l17
180 ;16key_INT.c: 47: if(1==RD7) key=16;
181 0052 1F88 btfss 8,7
182 0053 2856 goto l18
183 0054 3010 movlw 16
184 0055 00A0 movwf _key
185 0056 l18
186 ;16key_INT.c: 48: RD3=0;
187 0056 1188 bcf 8,3
188 ;16key_INT.c: 49: PORTD=0x0f;
189 0057 300F movlw 15
190 0058 0088 movwf 8 ;volatile
191 ;16key_INT.c: 50: PORTC=key;
192 0059 0820 movf _key,w
193 005A 0087 movwf 7 ;volatile
194
195 psect intsave_0
196 0070 saved_w
197 0070 ds 1
198
199 psect intret
200 005B 0822 movf saved_pclath,w
201 005C 008A movwf 10
202 005D int_restore
203 005D 0821 movf saved_status,w
204 005E 0083 movwf 3
205 005F 0EF0 swapf saved_w
206 0060 0E70 swapf saved_w,w
207 0061 0009 retfie
208
209 psect intentry
210 0004 int_entry
211 0004 00F0 movwf saved_w
212 0005 0803 movf 3,w
213 0006 0183 clrf 3
214 0007 00A1 movwf saved_status
215 0008 080A movf 10,w
216 0009 00A2 movwf saved_pclath
217 000A 018A clrf 10
218
219 psect intsave
220 0021 saved_status
221 0021 ds 1
222 0022 saved_pclath
223 0022 ds 1
224
225 psect text3
226 0000
227 0000
228 0000
229 0000
230 0000
231 0000
232 0000
233 0000
234 0000
235 0000
236 0000
237 0000
238 0000
239 0000
240 0000
241 0000
242 0000
243 0000
244 0000
245 0000
246 0000
247 0000
248 0000
249 0000
250 0000
251 0000
252 0000
253 0000
254 0000
255 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -