📄 bike.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-37313 Thu Jan 31 09:02:05 2008
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z37313RS_,global,delta=1
4 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
5 psect idata_0,global,class=CODE,delta=2
6 psect text1,local,class=CODE,delta=2
7 psect text9,local,class=CODE,delta=2
8 psect intcode,global,class=CODE,delta=2
9 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=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 rbit_0,global,bit,class=BANK0,space=1,de
+ lta=1
14 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
15 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26
27 psect __Z37313RS_
28 0190
29 0190
30
31 psect rdata_0
32 0043 _new
33 0043 ds 1
34 0044 ds 1
35 0045 ds 1
36 0046 ds 1
37 0047 ds 1
38 0048 ds 1
39 0049 ds 1
40 004A ds 1
41 004B ds 1
42 004C ds 1
43
44 psect idata_0
45 07F6 34AF retlw -81
46 07F7 34BE retlw -66
47 07F8 34FF retlw -1
48 07F9 347E retlw 126
49 07FA 34CF retlw -49
50 07FB 34FF retlw -1
51 07FC 34D7 retlw -41
52 07FD 3477 retlw 119
53 07FE 34FF retlw -1
54 07FF 34FF retlw -1
55
56 psect text1
57 05BD _DELAY1
58 ;bike.c: 71: DELAYH=x;
59 05BD 0183 clrf 3 ;select bank 0
60 05BE 0841 movf ?_DELAY1,w
61 05BF 00A2 movwf _DELAYH ;volatile
62 05C0 DELAY2
63 05C0 3006 movlw 6 ;#
64 05C1 00A3 movwf _DELAYL ;#
65 05C2 DELAY1
66 05C2 0BA3 decfsz _DELAYL ;#
67 05C3 2DC2 goto DELAY1 ;#
68 05C4 0BA2 decfsz _DELAYH ;#
69 05C5 2DC0 goto DELAY2 ;#
70 ;bike.c: 80: }
71 05C6 0008 return
72 05C7 _sample
73 ; _x assigned to ?a_sample+0
74 0000 _sample$x set ?a_sample
75 ; _state2 assigned to ?a_sample+1
76 0000 _sample$state2 set ?a_sample+1
77 ; _state3 assigned to ?a_sample+2
78 0000 _sample$state3 set ?a_sample+2
79 ; _state1 assigned to ?a_sample+3
80 0000 _sample$state1 set ?a_sample+3
81 05C7 l6
82 ;bike.c: 84: char state1,state2,state3,x;
83 ;bike.c: 86: x=1;
84 05C7 0183 clrf 3 ;select bank 0
85 05C8 01BD clrf ?a_sample
86 05C9 0ABD incf ?a_sample
87 ;bike.c: 87: state1=(PORTB&0xe0);
88 05CA 0806 movf 6,w ;volatile
89 05CB 39E0 andlw -32
90 05CC 00C0 movwf ?a_sample+3
91 ;bike.c: 88: DELAY1(x);
92 05CD 01C1 clrf ?_DELAY1
93 05CE 0AC1 incf ?_DELAY1
94 05CF 01C2 clrf ?_DELAY1+1
95 05D0 25BD fcall _DELAY1
96 ;bike.c: 89: state2=(PORTB&0xe0);
97 05D1 0806 movf 6,w ;volatile
98 05D2 39E0 andlw -32
99 05D3 00BE movwf ?a_sample+1
100 ;bike.c: 90: }while(state1-state2);
101 05D4 0840 movf ?a_sample+3,w
102 05D5 00F0 movwf btemp
103 05D6 01F1 clrf btemp+1
104 05D7 083E movf ?a_sample+1,w
105 05D8 02F0 subwf btemp
106 05D9 1C03 btfss 3,0
107 05DA 03F1 decf btemp+1
108 05DB 0871 movf btemp+1,w
109 05DC 0470 iorwf btemp,w
110 05DD 1D03 btfss 3,2
111 05DE 2DC7 goto l6
112 ;bike.c: 91: if(state1-oldstate!=0)
113 05DF 0840 movf ?a_sample+3,w
114 05E0 00F0 movwf btemp
115 05E1 01F1 clrf btemp+1
116 05E2 0828 movf _oldstate,w ;volatile
117 05E3 02F0 subwf btemp
118 05E4 1C03 btfss 3,0
119 05E5 03F1 decf btemp+1
120 05E6 0871 movf btemp+1,w
121 05E7 0470 iorwf btemp,w
122 05E8 1903 btfsc 3,2
123 05E9 0008 return
124 ;bike.c: 93: {oldstate=state1;
125 05EA 0840 movf ?a_sample+3,w
126 05EB 00A8 movwf _oldstate ;volatile
127 ;bike.c: 94: state1=(oldstate>>5);
128 05EC 0828 movf _oldstate,w ;volatile
129 05ED 00F0 movwf btemp
130 05EE 3005 movlw 5
131 05EF 00F1 movwf btemp+1
132 05F0 u45
133 05F0 1003 bcf 3,0
134 05F1 0CF0 rrf btemp
135 05F2 0BF1 decfsz btemp+1
136 05F3 2DF0 goto u45
137 05F4 0870 movf btemp,w
138 05F5 00C0 movwf ?a_sample+3
139 ;bike.c: 95: PORTC=new[state1];
140 05F6 3E43 addlw _new
141 05F7 0084 movwf 4
142 05F8 1383 bcf 3,7
143 05F9 0800 movf 0,w
144 05FA 0087 movwf 7 ;volatile
145 ;bike.c: 96: if(sp1==1){spe=1;sp1=0;}
146 05FB 1E20 btfss _sp1/(0+8),_sp1& (0+7)
147 05FC 2E00 goto l8
148 05FD 16A0 bsf _spe/(0+8),_spe& (0+7)
149 05FE 1220 bcf _sp1/(0+8),_sp1& (0+7)
150 ;bike.c: 97: else {
151 05FF 2E0E goto l9
152 0600 l8
153 ;bike.c: 98: spe=0;sp1=0;
154 0600 12A0 bcf _spe/(0+8),_spe& (0+7)
155 0601 1220 bcf _sp1/(0+8),_sp1& (0+7)
156 ;bike.c: 99: speedcount<<=1;
157 0602 1003 bcf 3,0
158 0603 0DAA rlf _speedcount ;volatile
159 ;bike.c: 100: state3=(TMR1H>>2);
160 0604 080F movf 15,w ;volatile
161 0605 00F0 movwf btemp
162 0606 1003 bcf 3,0
163 0607 0CF0 rrf btemp
164 0608 1003 bcf 3,0
165 0609 0C70 rrf btemp,w
166 060A 00BF movwf ?a_sample+2
167 ;bike.c: 101: speed=speedcount+state3;
168 060B 082A movf _speedcount,w ;volatile
169 060C 073F addwf ?a_sample+2,w
170 060D 00A9 movwf _speed ;volatile
171 060E l9
172 ;bike.c: 102: }
173 ;bike.c: 103: speedcount=0;
174 060E 01AA clrf _speedcount ;volatile
175 ;bike.c: 104: }
176 060F 0008 return
177 ;bike.c: 107: void AD()
178 ;bike.c: 108: {
179 0610 _AD
180 ; _x assigned to ?a_AD+0
181 0000 _AD$x set ?a_AD
182 ;bike.c: 109: char x;
183 0610 0183 clrf 3 ;select bank 0
184 0611 130C bcf 12,6
185 ;bike.c: 111: if(ts==1){
186 0612 1FA0 btfss _ts/(0+8),_ts& (0+7)
187 0613 2E28 goto l11
188 ;bike.c: 112: CHS0=1;
189 0614 159F bsf 31,3
190 ;bike.c: 113: count_vol=count_vol+1;
191 0615 0AA5 incf _count_vol ;volatile
192 ;bike.c: 114: spepid=1;
193 0616 1720 bsf _spepid/(0+8),_spepid& (0+7)
194 ;bike.c: 115: ts=0;tsh=ADRESH;
195 0617 13A0 bcf _ts/(0+8),_ts& (0+7)
196 0618 081E movf 30,w ;volatile
197 0619 00AB movwf _tsh ;volatile
198 ;bike.c: 116: if(count_vol==0) {
199 061A 0825 movf _count_vol,w ;volatile
200 061B 1D03 btfss 3,2
201 061C 0008 return
202 ;bike.c: 117: CHS0=0;CHS1=1;volflag=1;x=1;DELAY
+ 1(x);ADGO=1;
203 061D 119F bcf 31,3
204 061E 161F bsf 31,4
205 061F 1421 bsf _volflag/(0+8),_volflag& (0+7)
206 0620 01BD clrf ?a_AD
207 0621 0ABD incf ?a_AD
208 0622 01C1 clrf ?_DELAY1
209 0623 0AC1 incf ?_DELAY1
210 0624 01C2 clrf ?_DELAY1+1
211 0625 25BD fcall _DELAY1
212 0626 151F bsf 31,2
213 ;bike.c: 118: }
214 ;bike.c: 120: else if(volflag==1) {
215 0627 0008 return
216 0628 l11
217 0628 1C21 btfss _volflag/(0+8),_volflag& (0+7)
218 0629 2E31 goto l14
219 ;bike.c: 121: CHS1=0;CHS0=1;volflag=0;voltage=A
+ DRESH;lowpower=1;
220 062A 121F bcf 31,4
221 062B 159F bsf 31,3
222 062C 1021 bcf _volflag/(0+8),_volflag& (0+7)
223 062D 081E movf 30,w ;volatile
224 062E 00AC movwf _voltage ;volatile
225 062F 14A0 bsf _lowpower/(0+8),_lowpower& (0+7)
226 ;bike.c: 122: }
227 0630 0008 return
228 0631 l14
229 ;bike.c: 124: speedcount=speedcount+1;
230 0631 0AAA incf _speedcount ;volatile
231 ;bike.c: 125: if(speedcount>0x3d) sp1=1;
232 0632 303E movlw 62
233 0633 022A subwf _speedcount,w ;volatile
234 0634 1803 btfsc 3,0
235 0635 1620 bsf _sp1/(0+8),_sp1& (0+7)
236 ;bike.c: 127: currenth=ADRESH;
237 0636 081E movf 30,w ;volatile
238 0637 00A6 movwf _currenth ;volatile
239 ;bike.c: 128: curpid=1;
240 0638 1420 bsf _curpid/(0+8),_curpid& (0+7)
241 ;bike.c: 129: count_ts=count_ts-1;
242 0639 03A4 decf _count_ts ;volatile
243 ;bike.c: 130: if(count_ts==0) {
244 063A 0824 movf _count_ts,w ;volatile
245 063B 1D03 btfss 3,2
246 063C 0008 return
247 ;bike.c: 131: CHS0=0;count_ts=0x08;ts=1;x=1;DEL
+ AY1(x);ADGO=1;
248 063D 119F bcf 31,3
249 063E 3008 movlw 8
250 063F 00A4 movwf _count_ts ;volatile
251 0640 17A0 bsf _ts/(0+8),_ts& (0+7)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -