📄 step motor pic.lst
字号:
HI-TECH Software PICC Macro Assembler V9.50PL2
Wed Aug 08 19:54:31 2007
1 processor 16F877A
2 opt pw 79
3 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
4 psect idata_0,global,class=CODE,delta=2
5 psect text0,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 text2,local,class=CODE,delta=2
12 psect text5,local,class=CODE,delta=2
13 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
14 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25
26 psect rdata_0
27 002C _step
28 002C ds 1
29 002D ds 1
30 002E ds 1
31 002F ds 1
32
33 psect idata_0
34 07FC 340A retlw 10
35 07FD 3406 retlw 6
36 07FE 3445 retlw 69
37 07FF 3409 retlw 9
38
39 psect intcode
40 0011 _clkint
41 0011 int_func
42 ;step motor PIC.c: 12: void interrupt clkint(vo
+ id)
43 0011 3005 movlw 5
44 0012 0183 clrf 3 ;select bank 0
45 0013 0081 movwf 1 ;volatile
46 ;step motor PIC.c: 15: T0IF = 0;
47 0014 110B bcf 11,2
48 ;step motor PIC.c: 16: Flag_T0 = 1;
49 0015 01A2 clrf _Flag_T0
50 0016 0AA2 incf _Flag_T0
51 0017 01A3 clrf _Flag_T0+1
52 ;step motor PIC.c: 17: if ( i++ > 499 )
53 0018 0829 movf _i+1,w
54 0019 00F1 movwf btemp+1
55 001A 0828 movf _i,w
56 001B 00F0 movwf btemp
57 001C 0AA8 incf _i
58 001D 1903 btfsc 3,2
59 001E 0AA9 incf _i+1
60 001F 0871 movf btemp+1,w
61 0020 3A80 xorlw 128
62 0021 00F2 movwf btemp+2
63 0022 3081 movlw 129
64 0023 0272 subwf btemp+2,w
65 0024 30F4 movlw 244
66 ;set bank bits for btemp
67 0025 1903 btfsc 3,2
68 0026 0270 subwf btemp,w
69 0027 1C03 btfss 3,0
70 0028 282E goto l1
71 ;step motor PIC.c: 18: {
72 0029 01A8 clrf _i
73 002A 01A9 clrf _i+1
74 ;step motor PIC.c: 20: Flag_LED = 1;
75 002B 01A0 clrf _Flag_LED
76 002C 0AA0 incf _Flag_LED
77 002D 01A1 clrf _Flag_LED+1
78 ;step motor PIC.c: 21: }
79 002E l1
80
81 psect intsave_0
82 0073 saved_w
83 0073 ds 1
84
85 psect intret
86 0034 0833 movf saved_pclath,w
87 0035 008A movwf 10
88 0036 int_restore
89 0036 0832 movf saved_status,w
90 0037 0083 movwf 3
91 0038 0EF3 swapf saved_w
92 0039 0E73 swapf saved_w,w
93 003A 0009 retfie
94
95 psect intentry
96 0004 int_entry
97 0004 00F3 movwf saved_w
98 0005 0803 movf 3,w
99 0006 0183 clrf 3
100 0007 00B2 movwf saved_status
101 0008 080A movf 10,w
102 0009 00B3 movwf saved_pclath
103 000A 018A clrf 10
104
105 psect intsave
106 0032 saved_status
107 0032 ds 1
108 0033 saved_pclath
109 0033 ds 1
110
111 psect text2
112 07B8 _cw
113 ;step motor PIC.c: 48: void cw()
114 07B8 0183 clrf 3 ;select bank 0
115 07B9 08A6 movf _cw_n
116 07BA 1903 btfsc 3,2
117 07BB 03A7 decf _cw_n+1
118 07BC 03A6 decf _cw_n
119 ;step motor PIC.c: 53: j++;
120 07BD 0AAA incf _j
121 07BE 1903 btfsc 3,2
122 07BF 0AAB incf _j+1
123 ;step motor PIC.c: 55: }
124 07C0 0008 return ;W free
125 07C1 _energize
126 ;step motor PIC.c: 63: void energize()
127 07C1 0183 clrf 3 ;select bank 0
128 07C2 082A movf _j,w
129 07C3 3903 andlw 3
130 07C4 3E2C addlw _step
131 07C5 0084 movwf 4
132 07C6 1383 bcf 3,7
133 07C7 0800 movf 0,w
134 07C8 0085 movwf 5 ;volatile
135 ;step motor PIC.c: 66: }
136 07C9 0008 return ;W free
137 07CA _intmain
138 ;step motor PIC.c: 30: void intmain()
139 07CA 3001 movlw 1
140 07CB 1683 bsf 3,5
141 07CC 1303 bcf 3,6 ;carry unused
142 07CD 0086 movwf 6 ;volatile
143 ;step motor PIC.c: 35: TRISA = 0x00;
144 07CE 0185 clrf 5 ;volatile
145 ;step motor PIC.c: 36: PORTB=0;
146 07CF 1283 bcf 3,5
147 07D0 0186 clrf 6 ;volatile
148 ;step motor PIC.c: 37: INTCON = 0xE0;
149 07D1 30E0 movlw -32
150 07D2 008B movwf 11 ;volatile
151 ;step motor PIC.c: 38: OPTION = 0x02;
152 07D3 3002 movlw 2
153 07D4 1683 bsf 3,5
154 07D5 0081 movwf 1
155 ;step motor PIC.c: 39: TMR0 = 0x05;;
156 07D6 3005 movlw 5
157 07D7 1283 bcf 3,5
158 07D8 0081 movwf 1 ;volatile
159 ;step motor PIC.c: 40: cw_n=2000;
160 07D9 30D0 movlw 208
161 07DA 00A6 movwf _cw_n
162 07DB 3007 movlw 7
163 07DC 00A7 movwf _cw_n+1
164 ;step motor PIC.c: 41: }
165 07DD 0008 return ;W free
166 07DE _main
167 ;step motor PIC.c: 74: void main()
168 07DE 27CA fcall _intmain
169 07DF l8
170 ;step motor PIC.c: 79: while (1)
171 ;step motor PIC.c: 80: {
172 07DF 0821 movf _Flag_LED+1,w
173 07E0 0420 iorwf _Flag_LED,w
174 07E1 1903 btfsc 3,2
175 07E2 2FE7 goto l10
176 ;step motor PIC.c: 82: {
177 07E3 01A0 clrf _Flag_LED
178 07E4 01A1 clrf _Flag_LED+1
179 ;step motor PIC.c: 84: RB1 =!RB1;
180 07E5 3002 movlw 2
181 07E6 0686 xorwf 6
182 07E7 l10
183 ;step motor PIC.c: 85: }
184 07E7 1C06 btfss 6,0
185 07E8 2FF2 goto l12
186 07E9 2FF6 goto l11
187 ;step motor PIC.c: 91: {
188 07EA l13
189 ;step motor PIC.c: 93: {
190 07EA 0823 movf _Flag_T0+1,w
191 07EB 0422 iorwf _Flag_T0,w
192 07EC 1903 btfsc 3,2
193 07ED 2FF2 goto l12
194 ;step motor PIC.c: 97: {
195 07EE 27C1 fcall _energize
196 ;step motor PIC.c: 99: cw();
197 07EF 27B8 fcall _cw
198 ;step motor PIC.c: 102: Flag_T0 = 0;
199 07F0 01A2 clrf _Flag_T0
200 07F1 01A3 clrf _Flag_T0+1
201 07F2 l12
202 07F2 0827 movf _cw_n+1,w
203 07F3 0426 iorwf _cw_n,w
204 07F4 1D03 btfss 3,2
205 07F5 2FEA goto l13
206 07F6 l11
207 ;step motor PIC.c: 104: }
208 07F6 30D0 movlw 208
209 07F7 00A6 movwf _cw_n
210 07F8 3007 movlw 7
211 07F9 00A7 movwf _cw_n+1
212 ;step motor PIC.c: 108: PORTA=0x00;
213 07FA 0185 clrf 5 ;volatile
214 07FB 2FDF goto l8
215
216 psect text5
217 0000
218 0000
219 0000
220 0000
221 0000
222 0000
223 0000
224 0000
225 0000
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
256 0000
257 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -