📄 ds1302_main.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL1
Sun Feb 08 16:31:10 2009
1 processor 16F877A
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 intcode,global,class=CODE,delta=2
8 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
9 psect intret,global,class=CODE,delta=2
10 psect intentry,global,class=CODE,delta=2
11 psect intsave,global,class=BANK0,space=1,delta
+ =1
12 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23
24 psect const1
25 012D 0782 addwf 2
26 012E _LEDCODE
27 012E 343F retlw 63
28 012F 3406 retlw 6
29 0130 345B retlw 91
30 0131 344F retlw 79
31 0132 3466 retlw 102
32 0133 346D retlw 109
33 0134 347D retlw 125
34 0135 3407 retlw 7
35 0136 347F retlw 127
36 0137 346F retlw 111
37 0138 3440 retlw 64
38
39 psect text0
40 0049 _main
41 ; _temp assigned to ?a_main+0
42 0000 _main$temp set ?a_main
43 ;ds1302_main.c: 30: void main(void)
44 0049 3007 movlw 7
45 004A 1683 bsf 3,5
46 004B 1303 bcf 3,6 ;carry unused
47 004C 049F iorwf 31 ;volatile
48 ;ds1302_main.c: 35: TRISD=0;
49 004D 0188 clrf 8 ;volatile
50 ;ds1302_main.c: 36: TRISE=0;
51 004E 0189 clrf 9 ;volatile
52 ;ds1302_main.c: 37: TMR0=256-4;
53 004F 30FC movlw -4
54 0050 1283 bcf 3,5
55 0051 0081 movwf 1 ;volatile
56 ;ds1302_main.c: 38: T0CS=0;
57 0052 1683 bsf 3,5
58 0053 1281 bcf 1,5
59 ;ds1302_main.c: 39: PSA=0;
60 0054 1181 bcf 1,3
61 ;ds1302_main.c: 40: T0IF=0;
62 0055 110B bcf 11,2
63 ;ds1302_main.c: 41: PS2=1;
64 0056 1501 bsf 1,2
65 ;ds1302_main.c: 42: PS1=1;
66 0057 1481 bsf 1,1
67 ;ds1302_main.c: 43: PS0=1;
68 0058 1401 bsf 1,0
69 ;ds1302_main.c: 44: T0IE=1;
70 0059 168B bsf 11,5
71 ;ds1302_main.c: 45: GIE=1;
72 005A 178B bsf 11,7
73 ;ds1302_main.c: 46: init_1302();
74 005B 2139 call _init_1302
75 ;ds1302_main.c: 48: Write_DS1302(0x8e,0x00);
76 005C 01B3 clrf ?_Write_DS1302
77 005D 308E movlw -114
78 005E 20FB call _Write_DS1302
79 ;ds1302_main.c: 49: Write_DS1302(0X80,0X00);
80 005F 01B3 clrf ?_Write_DS1302
81 0060 3080 movlw -128
82 0061 20FB call _Write_DS1302
83 ;ds1302_main.c: 50: Write_DS1302(0X82,0X55);
84 0062 3055 movlw 85
85 0063 00B3 movwf ?_Write_DS1302
86 0064 3082 movlw -126
87 0065 20FB call _Write_DS1302
88 ;ds1302_main.c: 51: Write_DS1302(0x84,0x11);
89 0066 3011 movlw 17
90 0067 00B3 movwf ?_Write_DS1302
91 0068 3084 movlw -124
92 0069 20FB call _Write_DS1302
93 ;ds1302_main.c: 52: Write_DS1302(0x86,0x16);
94 006A 3016 movlw 22
95 006B 00B3 movwf ?_Write_DS1302
96 006C 3086 movlw -122
97 006D 20FB call _Write_DS1302
98 ;ds1302_main.c: 53: Write_DS1302(0x88,0x11);
99 006E 3011 movlw 17
100 006F 00B3 movwf ?_Write_DS1302
101 0070 3088 movlw -120
102 0071 20FB call _Write_DS1302
103 ;ds1302_main.c: 54: Write_DS1302(0x8a,0x05);
104 0072 3005 movlw 5
105 0073 00B3 movwf ?_Write_DS1302
106 0074 308A movlw -118
107 0075 20FB call _Write_DS1302
108 ;ds1302_main.c: 55: Write_DS1302(0x8c,0x05);
109 0076 3005 movlw 5
110 0077 00B3 movwf ?_Write_DS1302
111 0078 308C movlw -116
112 0079 20FB call _Write_DS1302
113 ;ds1302_main.c: 56: Write_DS1302(0x8e,0x80);
114 007A 3080 movlw -128
115 007B 00B3 movwf ?_Write_DS1302
116 007C 308E movlw -114
117 007D 20FB call _Write_DS1302
118 ;ds1302_main.c: 58: temp=Read_DS1302(0x8f);
119 007E 308F movlw -113
120 007F 20B2 call _Read_DS1302
121 0080 00B2 movwf ?a_main
122 ;ds1302_main.c: 59: LEDBuffer[0]=temp%16;
123 0081 390F andlw 15
124 0082 00AA movwf _LEDBuffer
125 ;ds1302_main.c: 60: LEDBuffer[1]=temp/16;
126 0083 0E32 swapf ?a_main,w
127 0084 390F andlw 15
128 0085 00AB movwf _LEDBuffer+1
129 0086 l4
130 ;ds1302_main.c: 63: while(1)
131 ;ds1302_main.c: 64: {
132 0086 0B21 decfsz _SecondFlag,w
133 0087 2886 goto l4
134 ;ds1302_main.c: 66: {
135 0088 01A1 clrf _SecondFlag
136 ;ds1302_main.c: 68: DateTime.Second=Read_DS1302
+ (0x81);
137 0089 3081 movlw -127
138 008A 20B2 call _Read_DS1302
139 008B 00A9 movwf _DateTime+5
140 ;ds1302_main.c: 69: DateTime.Minute=Read_DS1302
+ (0x83);
141 008C 3083 movlw -125
142 008D 20B2 call _Read_DS1302
143 008E 00A8 movwf _DateTime+4
144 ;ds1302_main.c: 70: DateTime.Hour =Read_DS1302(
+ 0X85);
145 008F 3085 movlw -123
146 0090 20B2 call _Read_DS1302
147 0091 00A7 movwf _DateTime+3
148 ;ds1302_main.c: 71: DateTime.Day =Read_DS1302(0
+ x87);
149 0092 3087 movlw -121
150 0093 20B2 call _Read_DS1302
151 0094 00A6 movwf _DateTime+2
152 ;ds1302_main.c: 72: DateTime.Month =Read_DS1302
+ (0X89);
153 0095 3089 movlw -119
154 0096 20B2 call _Read_DS1302
155 0097 00A5 movwf _DateTime+1
156 ;ds1302_main.c: 73: DateTime.Year =Read_DS1302(
+ 0x8b);
157 0098 308B movlw -117
158 0099 20B2 call _Read_DS1302
159 009A 00A4 movwf _DateTime
160 ;ds1302_main.c: 75: LEDBuffer[0]=DateTime.Secon
+ d%16;
161 009B 0829 movf _DateTime+5,w
162 009C 390F andlw 15
163 009D 00AA movwf _LEDBuffer
164 ;ds1302_main.c: 76: LEDBuffer[1]=DateTime.Secon
+ d/16;
165 009E 0E29 swapf _DateTime+5,w
166 009F 390F andlw 15
167 00A0 00AB movwf _LEDBuffer+1
168 ;ds1302_main.c: 77: LEDBuffer[2]=10;
169 00A1 300A movlw 10
170 00A2 00AC movwf _LEDBuffer+2
171 ;ds1302_main.c: 78: LEDBuffer[3]=DateTime.Minut
+ e%16;
172 00A3 0828 movf _DateTime+4,w
173 00A4 390F andlw 15
174 00A5 00AD movwf _LEDBuffer+3
175 ;ds1302_main.c: 79: LEDBuffer[4]=DateTime.Minut
+ e/16;
176 00A6 0E28 swapf _DateTime+4,w
177 00A7 390F andlw 15
178 00A8 00AE movwf _LEDBuffer+4
179 ;ds1302_main.c: 80: LEDBuffer[5]=10;
180 00A9 300A movlw 10
181 00AA 00AF movwf _LEDBuffer+5
182 ;ds1302_main.c: 81: LEDBuffer[6]=DateTime.Hour%
+ 16;
183 00AB 0827 movf _DateTime+3,w
184 00AC 390F andlw 15
185 00AD 00B0 movwf _LEDBuffer+6
186 ;ds1302_main.c: 82: LEDBuffer[7]=DateTime.Hour/
+ 16;
187 00AE 0E27 swapf _DateTime+3,w
188 00AF 390F andlw 15
189 00B0 00B1 movwf _LEDBuffer+7
190 00B1 2886 goto l4
191
192 psect intcode
193 000D _pic
194 000D int_func
195 ;ds1302_main.c: 100: void interrupt pic(void)
196 000D 1D0B btfss 11,2
197 000E 2831 goto l7
198 ;ds1302_main.c: 103: {
199 000F 110B bcf 11,2
200 ;ds1302_main.c: 105: TMR0=256-4;
201 0010 30FC movlw -4
202 0011 1283 bcf 3,5
203 0012 1303 bcf 3,6 ;carry unused
204 0013 0081 movwf 1 ;volatile
205 ;ds1302_main.c: 106: PORTD=LEDCODE[LEDBuffer[Sc
+ anLEDCount]];
206 0014 3001 movlw _LEDCODE shr (0+8)
207 0015 008A movwf 10
208 0016 0820 movf _ScanLEDCount,w
209 0017 3E2A addlw _LEDBuffer
210 0018 0084 movwf 4
211 0019 1383 bcf 3,7
212 001A 0800 movf 0,w
213 001B 212D call ((_LEDCODE+-1)& (0+2047))| (($)& (0+-2048
+ ))
214 001C pagesel $
215 001C 0088 movwf 8 ;volatile
216 ;ds1302_main.c: 107: PORTE=ScanLEDCount;
217 001D 0820 movf _ScanLEDCount,w
218 001E 0089 movwf 9 ;volatile
219 ;ds1302_main.c: 108: ScanLEDCount++;
220 001F 0AA0 incf _ScanLEDCount
221 ;ds1302_main.c: 109: if(ScanLEDCount==sizeof(LE
+ DBuffer))ScanLEDCount=0;
222 0020 0820 movf _ScanLEDCount,w
223 0021 3A08 xorlw 8
224 0022 1903 btfsc 3,2
225 0023 01A0 clrf _ScanLEDCount
226 ;ds1302_main.c: 110: SecondCount++;
227 0024 0AA2 incf _SecondCount
228 0025 1903 btfsc 3,2
229 0026 0AA3 incf _SecondCount+1
230 ;ds1302_main.c: 111: if(SecondCount==500)
231 0027 0323 decf _SecondCount+1,w
232 0028 30F4 movlw 244
233 0029 1903 btfsc 3,2
234 002A 0622 xorwf _SecondCount,w
235 002B 1D03 btfss 3,2
236 002C 2831 goto l7
237 ;ds1302_main.c: 112: {
238 002D 01A2 clrf _SecondCount
239 002E 01A3 clrf _SecondCount+1
240 ;ds1302_main.c: 114: SecondFlag=1;
241 002F 01A1 clrf _SecondFlag
242 0030 0AA1 incf _SecondFlag
243 ;ds1302_main.c: 115: }
244 0031 l7
245 0031 1303 bcf 3,6 ;carry unused
246 0032 1283 bcf 3,5
247
248 psect intsave_0
249 007F saved_w
saved_w
250 007F ds 1
251
252 psect intret
253 0033 0838 movf saved_fsr,w
254 0034 0084 movwf 4 ;restore FSR
255 0035 0839 movf saved_pclath,w
256 0036 008A movwf 10
257 0037 int_restore
258 0037 0837 movf saved_status,w
259 0038 0083 movwf 3
260 0039 0EFF swapf saved_w
261 003A 0E7F swapf saved_w,w
262 003B 0009 retfie
263
264 psect intentry
265 0004 int_entry
266 0004 00FF movwf saved_w
267 0005 0803 movf 3,w
268 0006 0183 clrf 3
269 0007 00B7 movwf saved_status
270 0008 0804 movf 4,w
271 0009 00B8 movwf saved_fsr
272 000A 080A movf 10,w
273 000B 00B9 movwf saved_pclath
274 000C 018A clrf 10
275 0000
276 0000
277 0000
278 0000
279 0000
280 0000
281 0000
282 0000
283 0000
284 0000
285 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -