📄 keyscan.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL1
Sat Aug 02 20:43:06 2008
1 processor 16F877
2 opt pw 79
3 psect strings,global,class=STRING,delta=2
4 psect const1,local,class=CONST,delta=2
5 psect text0,local,class=CODE,delta=2
6 psect text1,local,class=CODE,delta=2
7 psect text2,local,class=CODE,delta=2
8 psect text3,local,class=CODE,delta=2
9 psect text4,local,class=CODE,delta=2
10 psect text5,local,class=CODE,delta=2
11 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22
23 psect const1
24 0001 0782 addwf 2
25 0002 _Led
26 0002 34C0 retlw -64
27 0003 34F9 retlw -7
28 0004 34A4 retlw -92
29 0005 34B0 retlw -80
30 0006 3499 retlw -103
31 0007 3492 retlw -110
32 0008 3482 retlw -126
33 0009 34F8 retlw -8
34 000A 3480 retlw -128
35 000B 3490 retlw -112
36 000C 3488 retlw -120
37 000D 3483 retlw -125
38 000E 34C6 retlw -58
39 000F 34A1 retlw -95
40 0010 3486 retlw -122
41 0011 348E retlw -114
42
43 psect text0
44 0765 _delay
45 ; _a assigned to ?a_delay+0
46 0000 _delay$a set ?a_delay
47 ; _b assigned to ?a_delay+1
48 0000 _delay$b set ?a_delay+1
49 ;_a stored from w
50 0765 0183 clrf 3 ;select bank 0
51 0766 00A1 movwf ?a_delay
52 ;keyscan.c: 13: void delay(unsigned char a)
53 0767 00A2 movwf ?a_delay+1
54 ;keyscan.c: 17: while(b--);
55 0768 l2
56 0768 03A2 decf ?a_delay+1
57 0769 0F22 incfsz ?a_delay+1,w
58 076A 2F68 goto l2
59 076B 0008 return
60
61 psect text1
62 075E _rb_initial
63 ;keyscan.c: 20: void rb_initial(void)
64 075E 30F0 movlw -16
65 075F 1683 bsf 3,5
66 0760 1303 bcf 3,6 ;carry unused
67 0761 0086 movwf 6 ;volatile
68 ;keyscan.c: 23: OPTION = 0X00;
69 0762 0181 clrf 1
70 ;keyscan.c: 24: }
71 0763 1283 bcf 3,5
72 0764 0008 return ;W free
73
74 psect text2
75 0759 _rd_initial
76 ;keyscan.c: 26: void rd_initial(void)
77 0759 1683 bsf 3,5
78 075A 1303 bcf 3,6 ;carry unused
79 075B 0188 clrf 8 ;volatile
80 ;keyscan.c: 29: }
81 075C 1283 bcf 3,5
82 075D 0008 return ;W free
83
84 psect text3
85 0775 _keyscan
86 ;keyscan.c: 38: unsigned char keyscan(void)
87 0775 30FE movlw -2
88 0776 0183 clrf 3 ;select bank 0
89 0777 0086 movwf 6 ;volatile
90 ;keyscan.c: 41: if(RB4 == 0)delay(30);if(RB4 ==
+ 0) temp = 1;
91 0778 1A06 btfsc 6,4
92 0779 2F7C goto l8
93 077A 301E movlw 30
94 077B 2765 call _delay
95 077C l8
96 077C 1A06 btfsc 6,4
97 077D 2F80 goto l9
98 077E 01A0 clrf _temp
99 077F 0AA0 incf _temp
100 0780 l9
101 ;keyscan.c: 42: if(RB5 == 0)delay(30);if(RB5 ==
+ 0) temp = 2;
102 0780 1A86 btfsc 6,5
103 0781 2F84 goto l10
104 0782 301E movlw 30
105 0783 2765 call _delay
106 0784 l10
107 0784 1A86 btfsc 6,5
108 0785 2F88 goto l11
109 0786 3002 movlw 2
110 0787 00A0 movwf _temp
111 0788 l11
112 ;keyscan.c: 43: if(RB6 == 0)delay(30);if(RB6 ==
+ 0) temp = 3;
113 0788 1B06 btfsc 6,6
114 0789 2F8C goto l12
115 078A 301E movlw 30
116 078B 2765 call _delay
117 078C l12
118 078C 1B06 btfsc 6,6
119 078D 2F90 goto l13
120 078E 3003 movlw 3
121 078F 00A0 movwf _temp
122 0790 l13
123 ;keyscan.c: 44: if(RB7 == 0)delay(30);if(RB7 ==
+ 0) temp = 4;
124 0790 1B86 btfsc 6,7
125 0791 2F94 goto l14
126 0792 301E movlw 30
127 0793 2765 call _delay
128 0794 l14
129 0794 1B86 btfsc 6,7
130 0795 2F98 goto l15
131 0796 3004 movlw 4
132 0797 00A0 movwf _temp
133 0798 l15
134 ;keyscan.c: 45: PORTB = 0XFD;
135 0798 30FD movlw -3
136 0799 0086 movwf 6 ;volatile
137 ;keyscan.c: 46: if(RB4 == 0)delay(30);if(RB4 ==
+ 0) temp = 5;
138 079A 1A06 btfsc 6,4
139 079B 2F9E goto l16
140 079C 301E movlw 30
141 079D 2765 call _delay
142 079E l16
143 079E 1A06 btfsc 6,4
144 079F 2FA2 goto l17
145 07A0 3005 movlw 5
146 07A1 00A0 movwf _temp
147 07A2 l17
148 ;keyscan.c: 47: if(RB5 == 0)delay(30);if(RB5 ==
+ 0) temp = 6;
149 07A2 1A86 btfsc 6,5
150 07A3 2FA6 goto l18
151 07A4 301E movlw 30
152 07A5 2765 call _delay
153 07A6 l18
154 07A6 1A86 btfsc 6,5
155 07A7 2FAA goto l19
156 07A8 3006 movlw 6
157 07A9 00A0 movwf _temp
158 07AA l19
159 ;keyscan.c: 48: if(RB6 == 0)delay(30);if(RB6 ==
+ 0) temp = 7;
160 07AA 1B06 btfsc 6,6
161 07AB 2FAE goto l20
162 07AC 301E movlw 30
163 07AD 2765 call _delay
164 07AE l20
165 07AE 1B06 btfsc 6,6
166 07AF 2FB2 goto l21
167 07B0 3007 movlw 7
168 07B1 00A0 movwf _temp
169 07B2 l21
170 ;keyscan.c: 49: if(RB7 == 0)delay(30);if(RB7 ==
+ 0) temp = 8;
171 07B2 1B86 btfsc 6,7
172 07B3 2FB6 goto l22
173 07B4 301E movlw 30
174 07B5 2765 call _delay
175 07B6 l22
176 07B6 1B86 btfsc 6,7
177 07B7 2FBA goto l23
178 07B8 3008 movlw 8
179 07B9 00A0 movwf _temp
180 07BA l23
181 ;keyscan.c: 50: PORTB = 0XFB;
182 07BA 30FB movlw -5
183 07BB 0086 movwf 6 ;volatile
184 ;keyscan.c: 51: if(RB4 == 0)delay(30);if(RB4 ==
+ 0) temp = 9;
185 07BC 1A06 btfsc 6,4
186 07BD 2FC0 goto l24
187 07BE 301E movlw 30
188 07BF 2765 call _delay
189 07C0 l24
190 07C0 1A06 btfsc 6,4
191 07C1 2FC4 goto l25
192 07C2 3009 movlw 9
193 07C3 00A0 movwf _temp
194 07C4 l25
195 ;keyscan.c: 52: if(RB5 == 0)delay(30);if(RB5 ==
+ 0) temp = 10;
196 07C4 1A86 btfsc 6,5
197 07C5 2FC8 goto l26
198 07C6 301E movlw 30
199 07C7 2765 call _delay
200 07C8 l26
201 07C8 1A86 btfsc 6,5
202 07C9 2FCC goto l27
203 07CA 300A movlw 10
204 07CB 00A0 movwf _temp
205 07CC l27
206 ;keyscan.c: 53: if(RB6 == 0)delay(30);if(RB6 ==
+ 0) temp = 11;
207 07CC 1B06 btfsc 6,6
208 07CD 2FD0 goto l28
209 07CE 301E movlw 30
210 07CF 2765 call _delay
211 07D0 l28
212 07D0 1B06 btfsc 6,6
213 07D1 2FD4 goto l29
214 07D2 300B movlw 11
215 07D3 00A0 movwf _temp
216 07D4 l29
217 ;keyscan.c: 54: if(RB7 == 0)delay(30);if(RB7 ==
+ 0) temp = 12;
218 07D4 1B86 btfsc 6,7
219 07D5 2FD8 goto l30
220 07D6 301E movlw 30
221 07D7 2765 call _delay
222 07D8 l30
223 07D8 1B86 btfsc 6,7
224 07D9 2FDC goto l31
225 07DA 300C movlw 12
226 07DB 00A0 movwf _temp
227 07DC l31
228 ;keyscan.c: 55: PORTB = 0XF7;
229 07DC 30F7 movlw -9
230 07DD 0086 movwf 6 ;volatile
231 ;keyscan.c: 56: if(RB4 == 0)delay(30);if(RB4 ==
+ 0) temp = 13;
232 07DE 1A06 btfsc 6,4
233 07DF 2FE2 goto l32
234 07E0 301E movlw 30
235 07E1 2765 call _delay
236 07E2 l32
237 07E2 1A06 btfsc 6,4
238 07E3 2FE6 goto l33
239 07E4 300D movlw 13
240 07E5 00A0 movwf _temp
241 07E6 l33
242 ;keyscan.c: 57: if(RB5 == 0)delay(30);if(RB5 ==
+ 0) temp = 14;
243 07E6 1A86 btfsc 6,5
244 07E7 2FEA goto l34
245 07E8 301E movlw 30
246 07E9 2765 call _delay
247 07EA l34
248 07EA 1A86 btfsc 6,5
249 07EB 2FEE goto l35
250 07EC 300E movlw 14
251 07ED 00A0 movwf _temp
252 07EE l35
253 ;keyscan.c: 58: if(RB6 == 0)delay(30);if(RB6 ==
+ 0) temp = 15;
254 07EE 1B06 btfsc 6,6
255 07EF 2FF2 goto l36
256 07F0 301E movlw 30
257 07F1 2765 call _delay
258 07F2 l36
259 07F2 1B06 btfsc 6,6
260 07F3 2FF6 goto l37
261 07F4 300F movlw 15
262 07F5 00A0 movwf _temp
263 07F6 l37
264 ;keyscan.c: 59: if(RB7 == 0)delay(30);if(RB7 ==
+ 0) temp = 16;
265 07F6 1B86 btfsc 6,7
266 07F7 2FFA goto l38
267 07F8 301E movlw 30
268 07F9 2765 call _delay
269 07FA l38
270 07FA 1B86 btfsc 6,7
271 07FB 2FFE goto l39
272 07FC 3010 movlw 16
273 07FD 00A0 movwf _temp
274 07FE l39
275 ;keyscan.c: 60: return(temp);
276 07FE 0820 movf _temp,w
277 ;keyscan.c: 62: }
278 07FF 0008 return ;uses W
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -