lesson5.lst
来自「PIC16F877入门程序和仿真原理图」· LST 代码 · 共 539 行 · 第 1/2 页
LST
539 行
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-65018 Mon Apr 6 15:43:28 2009
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z65018RS_,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 text2,local,class=CODE,delta=2
8 psect text4,local,class=CODE,delta=2
9 psect intcode,global,class=CODE,delta=2
10 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
11 psect intret,global,class=CODE,delta=2
12 psect intentry,global,class=CODE,delta=2
13 psect intsave,global,class=BANK0,space=1,delta
+ =1
14 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25
26 psect __Z65018RS_
27 0190
28 0190
29
30 psect rdata_0
31 0026 _table
32 0026 ds 1
33 0027 ds 1
34 0028 ds 1
35 0029 ds 1
36 002A ds 1
37 002B ds 1
38 002C ds 1
39 002D ds 1
40 002E ds 1
41 002F ds 1
42 0030 ds 1
43 0031 ds 1
44 0032 ds 1
45 0033 ds 1
46 0034 ds 1
47 0035 ds 1
48 0036 _table_we
49 0036 ds 1
50 0037 ds 1
51 0038 ds 1
52 0039 ds 1
53 003A ds 1
54 003B ds 1
55
56 psect idata_0
57 07EA 3440 retlw 64
58 07EB 34F9 retlw -7
59 07EC 34A4 retlw -92
60 07ED 34B0 retlw -80
61 07EE 3419 retlw 25
62 07EF 3412 retlw 18
63 07F0 3403 retlw 3
64 07F1 34F8 retlw -8
65 07F2 3400 retlw 0
66 07F3 3410 retlw 16
67 07F4 3408 retlw 8
68 07F5 3403 retlw 3
69 07F6 3446 retlw 70
70 07F7 3421 retlw 33
71 07F8 3406 retlw 6
72 07F9 340E retlw 14
73 07FA 3401 retlw 1
74 07FB 3402 retlw 2
75 07FC 3404 retlw 4
76 07FD 3408 retlw 8
77 07FE 3410 retlw 16
78 07FF 3420 retlw 32
79
80 psect text1
81 07B2 _delay
82 ; _y assigned to ?a_delay+0
83 0000 _delay$y set ?a_delay
84 ; _x assigned to ?a_delay+2
85 0000 _delay$x set ?a_delay+2
86 ;lesson5.c: 21: unsigned int x,y;
87 07B2 0183 clrf 3 ;select bank 0
88 07B3 0822 movf ?_delay,w
89 07B4 00A4 movwf ?a_delay+2
90 07B5 0823 movf ?_delay+1,w
91 07B6 00A5 movwf ?a_delay+3
92 07B7 0424 iorwf ?a_delay+2,w
93 07B8 1903 btfsc 3,2
94 07B9 0008 return
95 07BA l3
96 ;lesson5.c: 23: for(y=110;y>0;y--);
97 07BA 306E movlw 110
98 07BB 00A2 movwf ?a_delay
99 07BC 01A3 clrf ?a_delay+1
100 07BD l6
101 07BD 08A2 movf ?a_delay
102 07BE 1903 btfsc 3,2
103 07BF 03A3 decf ?a_delay+1
104 07C0 03A2 decf ?a_delay
105 07C1 0823 movf ?a_delay+1,w
106 07C2 0422 iorwf ?a_delay,w
107 07C3 1D03 btfss 3,2
108 07C4 2FBD goto l6
109 07C5 08A4 movf ?a_delay+2
110 07C6 1903 btfsc 3,2
111 07C7 03A5 decf ?a_delay+3
112 07C8 03A4 decf ?a_delay+2
113 07C9 0825 movf ?a_delay+3,w
114 07CA 0424 iorwf ?a_delay+2,w
115 07CB 1903 btfsc 3,2
116 07CC 0008 return
117 07CD 2FBA goto l3
118
119 psect text2
120 ;lesson5.c: 25: void display()
121 ;lesson5.c: 26: {
122 07CE _display
123 ;lesson5.c: 27: PORTC=0X01;
124 07CE 3001 movlw 1
125 07CF 0183 clrf 3 ;select bank 0
126 07D0 0087 movwf 7 ;volatile
127 ;lesson5.c: 28: PORTB=table[disp_num];
128 07D1 0820 movf _disp_num,w
129 07D2 3E26 addlw _table
130 07D3 0084 movwf 4
131 07D4 1383 bcf 3,7
132 07D5 0800 movf 0,w
133 07D6 0086 movwf 6 ;volatile
134 ;lesson5.c: 29: }
135 07D7 0008 return
136 07D8 _init
137 ;lesson5.c: 10: TRISC=0X00;
138 07D8 1683 bsf 3,5
139 07D9 1303 bcf 3,6 ;carry unused
140 07DA 0187 clrf 7 ;volatile
141 ;lesson5.c: 11: TRISB=0X00;
142 07DB 0186 clrf 6 ;volatile
143 ;lesson5.c: 12: OPTION=0X07;
144 07DC 3007 movlw 7
145 07DD 0081 movwf 1
146 ;lesson5.c: 13: TMR0=61;
147 07DE 303D movlw 61
148 07DF 1283 bcf 3,5
149 07E0 0081 movwf 1 ;volatile
150 ;lesson5.c: 14: INTCON=0XA0;
151 07E1 30A0 movlw -96
152 07E2 008B movwf 11 ;volatile
153 ;lesson5.c: 15: T0IE=1;
154 07E3 168B bsf 11,5
155 ;lesson5.c: 16: disp_num=0;
156 07E4 01A0 clrf _disp_num
157 ;lesson5.c: 17: T0IF=0;
158 07E5 110B bcf 11,2
159 ;lesson5.c: 18: }
160 07E6 0008 return
161 ;lesson5.c: 30: void main()
162 ;lesson5.c: 31: {
163 07E7 _main
164 ;lesson5.c: 32: init();
165 07E7 27D8 fcall _init
166 07E8 l12
167 ;lesson5.c: 33: while(1)
168 ;lesson5.c: 34: {
169 07E8 27CE fcall _display
170 ;lesson5.c: 36: }
171 07E9 2FE8 goto l12
172
173 psect intcode
174 ;lesson5.c: 38: void interrupt time0()
175 ;lesson5.c: 39: {
176 000B _time0
177 000B int_func
178 ;lesson5.c: 40: T0IF=0;
179 000B 110B bcf 11,2
180 ;lesson5.c: 41: TMR0=61;
181 000C 303D movlw 61
182 000D 1283 bcf 3,5
183 000E 1303 bcf 3,6 ;carry unused
184 000F 0081 movwf 1 ;volatile
185 ;lesson5.c: 42: num++;
186 0010 0AA1 incf _num
187 ;lesson5.c: 43: if(num==5)
188 0011 0821 movf _num,w
189 0012 3A05 xorlw 5
190 0013 1D03 btfss 3,2
191 0014 281B goto l14
192 ;lesson5.c: 44: {
193 0015 01A1 clrf _num
194 ;lesson5.c: 46: disp_num++;
195 0016 0AA0 incf _disp_num
196 ;lesson5.c: 47: if(disp_num==10)
197 0017 0820 movf _disp_num,w
198 0018 3A0A xorlw 10
199 0019 1903 btfsc 3,2
200 ;lesson5.c: 48: {
201 001A 01A0 clrf _disp_num
202 ;lesson5.c: 50: }
203 ;lesson5.c: 52: }
204 001B l14
205
206 psect intsave_0
207 0071 saved_w
208 0071 ds 1
209
210 psect intret
211 001B 083D movf saved_pclath,w
212 001C 008A movwf 10
213 001D int_restore
214 001D 083C movf saved_status,w
215 001E 0083 movwf 3
216 001F 0EF1 swapf saved_w
217 0020 0E71 swapf saved_w,w
218 0021 0009 retfie
219
220 psect intentry
221 0004 int_entry
222 0004 00F1 movwf saved_w
223 0005 0803 movf 3,w
224 0006 0183 clrf 3
225 0007 00BC movwf saved_status
226 0008 080A movf 10,w
227 0009 00BD movwf saved_pclath
228 000A 018A clrf 10
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
258 0000
259 0000
260 0000
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?