📄 lesson5_tmr1.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-65018 Mon Apr 6 16:49:46 2009
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z65018RS_,global,delta=1
4 psect strings,global,class=STRING,delta=2
5 psect const1,local,class=CONST,delta=2
6 psect text0,local,class=CODE,delta=2
7 psect text4,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 text6,local,class=CODE,delta=2
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 __Z65018RS_
28 0190
29 0190
30
31 psect const1
32 0034 0782 addwf 2
33 0035 _table
34 0035 3440 retlw 64
35 0036 34F9 retlw -7
36 0037 34A4 retlw -92
37 0038 34B0 retlw -80
38 0039 3419 retlw 25
39 003A 3412 retlw 18
40 003B 3403 retlw 3
41 003C 34F8 retlw -8
42 003D 3400 retlw 0
43 003E 3410 retlw 16
44
45 psect text0
46 0773 _Delay
47 ; _x assigned to ?a_Delay+0
48 0000 _Delay$x set ?a_Delay
49 ; _i assigned to ?a_Delay+1
50 0000 _Delay$i set ?a_Delay+1
51 ;_x stored from w
52 0773 0183 clrf 3 ;select bank 0
53 0774 00A5 movwf ?a_Delay
54 ;lesson5_TMR1.c: 11: char i;
55 0775 2F7C goto l2
56 0776 l3
57 ;lesson5_TMR1.c: 13: for(i=0;i<200;i++);
58 0776 01A6 clrf ?a_Delay+1
59 0777 l5
60 0777 0AA6 incf ?a_Delay+1
61 0778 30C8 movlw -56
62 0779 0226 subwf ?a_Delay+1,w
63 077A 1C03 btfss 3,0
64 077B 2F77 goto l5
65 077C l2
66 077C 1283 bcf 3,5
67 077D 1303 bcf 3,6 ;carry unused
68 077E 03A5 decf ?a_Delay
69 077F 0F25 incfsz ?a_Delay,w
70 0780 2F76 goto l3
71 0781 0008 return
72 ;lesson5_TMR1.c: 38: void display(unsigned char
+ data)
73 ;lesson5_TMR1.c: 39: { unsigned char a,b;
74 0782 _display
75 ; _a assigned to ?a_display+0
76 0000 _display$a set ?a_display
77 ; _b assigned to ?a_display+1
78 0000 _display$b set ?a_display+1
79 ; _data assigned to ?a_display+2
80 0000 _display$data set ?a_display+2
81 ;_data stored from w
82 0782 0183 clrf 3 ;select bank 0
83 0783 00A4 movwf ?a_display+2
84 ;lesson5_TMR1.c: 40: b=(data/10);
85 0784 300A movlw 10
86 0785 00F1 movwf btemp+1
87 0786 0824 movf ?a_display+2,w
88 0787 120A 118A 27CA fcall lbdiv
89 078A 00A3 movwf ?a_display+1
90 ;lesson5_TMR1.c: 41: a=(data%10);
91 078B 300A movlw 10
92 078C 00F1 movwf btemp+1
93 078D 0824 movf ?a_display+2,w
94 078E 120A 118A 27CA fcall lbmod
95 0791 0870 movf btemp,w
96 0792 00A2 movwf ?a_display
97 ;lesson5_TMR1.c: 43: PORTD=0x02;
98 0793 3002 movlw 2
99 0794 0088 movwf 8 ;volatile
100 ;lesson5_TMR1.c: 44: PORTB=table[a];
101 0795 3000 movlw _table shr (0+8)
102 0796 008A movwf 10
103 0797 0822 movf ?a_display,w
104 0798 2034 call ((_table+-1)& (0+2047))| (($)& (0+-2048))
105 0799 0086 movwf 6 ;volatile
106 ;lesson5_TMR1.c: 45: Delay(2);
107 079A 3002 movlw 2
108 079B 120A 118A 2773 fcall _Delay
109 ;lesson5_TMR1.c: 46: PORTD=0x01;
110 079E 3001 movlw 1
111 079F 0088 movwf 8 ;volatile
112 ;lesson5_TMR1.c: 47: PORTB=table[b];
113 07A0 3000 movlw _table shr (0+8)
114 07A1 008A movwf 10
115 07A2 0823 movf ?a_display+1,w
116 07A3 2034 call ((_table+-1)& (0+2047))| (($)& (0+-2048))
117 07A4 0086 movwf 6 ;volatile
118 ;lesson5_TMR1.c: 48: Delay(2);
119 07A5 3002 movlw 2
120 07A6 120A 118A 2F73 ljmp _Delay
121 ;lesson5_TMR1.c: 30: void time1_init()
122 ;lesson5_TMR1.c: 31: {
123 07A9 _time1_init
124 ;lesson5_TMR1.c: 32: T1CON=0x08;
125 07A9 3008 movlw 8
126 07AA 0183 clrf 3 ;select bank 0
127 07AB 0090 movwf 16 ;volatile
128 ;lesson5_TMR1.c: 33: TMR1IE=1;
129 07AC 1683 bsf 3,5
130 07AD 140C bsf 12,0
131 ;lesson5_TMR1.c: 34: TMR1IF=0;
132 07AE 1283 bcf 3,5
133 07AF 100C bcf 12,0
134 ;lesson5_TMR1.c: 35: TMR1H=(65536-50000)/256;
135 07B0 303C movlw 60
136 07B1 008F movwf 15 ;volatile
137 ;lesson5_TMR1.c: 36: TMR1L=(65536-50000)%256;
138 07B2 30B0 movlw -80
139 07B3 008E movwf 14 ;volatile
140 ;lesson5_TMR1.c: 37: }
141 07B4 0008 return
142 ;lesson5_TMR1.c: 16: void initial()
143 ;lesson5_TMR1.c: 17: {
144 07B5 _initial
145 ;lesson5_TMR1.c: 18: TRISB=0x00;
146 07B5 1683 bsf 3,5
147 07B6 1303 bcf 3,6 ;carry unused
148 07B7 0186 clrf 6 ;volatile
149 ;lesson5_TMR1.c: 20: TRISD=0x00;
150 07B8 0188 clrf 8 ;volatile
151 ;lesson5_TMR1.c: 23: PORTD=0x00;
152 07B9 1283 bcf 3,5
153 07BA 0188 clrf 8 ;volatile
154 ;lesson5_TMR1.c: 24: INTCON=0xC0;
155 07BB 30C0 movlw -64
156 07BC 008B movwf 11 ;volatile
157 ;lesson5_TMR1.c: 25: PIE1=0x00 ;
158 07BD 1683 bsf 3,5
159 07BE 018C clrf 12 ;volatile
160 ;lesson5_TMR1.c: 26: PIR1=0x00 ;
161 07BF 1283 bcf 3,5
162 07C0 018C clrf 12 ;volatile
163 ;lesson5_TMR1.c: 27: }
164 07C1 0008 return
165 ;lesson5_TMR1.c: 67: main()
166 ;lesson5_TMR1.c: 68: {
167 07C2 _main
168 ;lesson5_TMR1.c: 70: initial();
169 07C2 27B5 fcall _initial
170 ;lesson5_TMR1.c: 71: time1_init();
171 07C3 27A9 fcall _time1_init
172 ;lesson5_TMR1.c: 72: TMR1ON=1;
173 07C4 1410 bsf 16,0
174 07C5 l17
175 ;lesson5_TMR1.c: 73: while(1)
176 ;lesson5_TMR1.c: 74: {
177 07C5 0821 movf _data1,w
178 07C6 2782 120A 118A fcall _display
179 ;lesson5_TMR1.c: 76: }
180 07C9 2FC5 goto l17
181
182 psect intcode
183 ;lesson5_TMR1.c: 51: void interrupt time1_ISR()
184 ;lesson5_TMR1.c: 52: {
185 000B _time1_ISR
186 000B int_func
187 ;lesson5_TMR1.c: 53: if(TMR1IF==1)
188 000B 0183 clrf 3 ;select bank 0
189 000C 1C0C btfss 12,0
190 000D 281E goto l11
191 ;lesson5_TMR1.c: 54: {
192 000E 303C movlw 60
193 000F 008F movwf 15 ;volatile
194 ;lesson5_TMR1.c: 56: TMR1L=(65536-50000)%256;
195 0010 30B0 movlw -80
196 0011 008E movwf 14 ;volatile
197 ;lesson5_TMR1.c: 57: TMR1IF=0 ;
198 0012 100C bcf 12,0
199 ;lesson5_TMR1.c: 58: count++ ;
200 0013 0AA0 incf _count
201 ;lesson5_TMR1.c: 59: if(count==5)
202 0014 0820 movf _count,w
203 0015 3A05 xorlw 5
204 0016 1D03 btfss 3,2
205 0017 281E goto l11
206 ;lesson5_TMR1.c: 60: { count=0;
207 0018 01A0 clrf _count
208 ;lesson5_TMR1.c: 61: data1++;
209 0019 0AA1 incf _data1
210 ;lesson5_TMR1.c: 62: if(data1==60)
211 001A 0821 movf _data1,w
212 001B 3A3C xorlw 60
213 001C 1903 btfsc 3,2
214 ;lesson5_TMR1.c: 63: {data1=0;}
215 001D 01A1 clrf _data1
216 ;lesson5_TMR1.c: 64: }
217 ;lesson5_TMR1.c: 65: }
218 ;lesson5_TMR1.c: 66: }
219 001E l11
220
221 psect intsave_0
222 0075 saved_w
223 0075 ds 1
224
225 psect intret
226 001E 0828 movf saved_pclath,w
227 001F 008A movwf 10
228 0020 int_restore
229 0020 0827 movf saved_status,w
230 0021 0083 movwf 3
231 0022 0EF5 swapf saved_w
232 0023 0E75 swapf saved_w,w
233 0024 0009 retfie
234
235 psect intentry
236 0004 int_entry
237 0004 00F5 movwf saved_w
238 0005 0803 movf 3,w
239 0006 0183 clrf 3
240 0007 00A7 movwf saved_status
241 0008 080A movf 10,w
242 0009 00A8 movwf saved_pclath
243 000A 018A clrf 10
244
245 psect intsave
246 0027 saved_status
247 0027 ds 1
248 0028 saved_pclath
249 0028 ds 1
250
251 psect text6
252 0000
253 0000
254 0000
255 0000
256 0000
257 0000
258 0000
259 0000
260 0000
261 0000
262 0000
263 0000
264 0000
265 0000
266 0000
267 0000
268 0000
269 0000
270 0000
271 0000
272 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -