📄 ds1302.lst
字号:
17B 8239 STD Y+1,R3
17C 8228 STD Y+0,R2
17D E021 LDI R18,1
17E E030 LDI R19,0
17F E005 LDI R16,5
180 E010 LDI R17,0
181 D325 RCALL _Char_Set_XY_BYTE
182 C1DC RJMP 0x035F
(0058)
(0059) while(1)
(0060) {
(0061)
(0062)
(0063) sec=ReadSec();
183 D1E4 RCALL _ReadSec
184 9310 00B3 STS sec+1,R17
186 9300 00B2 STS sec,R16
(0064) if(mid[1]!=sec)
188 9040 007A LDS R4,mid+1
18A 2455 CLR R5
18B 1640 CP R4,R16
18C 0651 CPC R5,R17
18D F409 BNE 0x018F
18E C03F RJMP 0x01CE
(0065) {
(0066) num++;
18F 9543 INC R20
(0067) if(num>0x02)num=0x01;
190 E082 LDI R24,2
191 1784 CP R24,R20
192 F408 BCC 0x0194
193 E041 LDI R20,1
(0068) jisuan(sec);
194 9100 00B2 LDS R16,sec
196 DF05 RCALL _jisuan
(0069) Char_Set_XY_BYTE(7,0,charindex[gewei],2);
197 E082 LDI R24,2
198 E090 LDI R25,0
199 839B STD Y+3,R25
19A 838A STD Y+2,R24
19B E68E LDI R24,0x6E
19C E090 LDI R25,0
19D 91E0 00B6 LDS R30,gewei
19F 91F0 00B7 LDS R31,gewei+1
1A1 0FE8 ADD R30,R24
1A2 1FF9 ADC R31,R25
1A3 8020 LDD R2,Z+0
1A4 2433 CLR R3
1A5 8239 STD Y+1,R3
1A6 8228 STD Y+0,R2
1A7 2722 CLR R18
1A8 2733 CLR R19
1A9 E007 LDI R16,7
1AA E010 LDI R17,0
1AB D2FB RCALL _Char_Set_XY_BYTE
(0070) Char_Set_XY_BYTE(7,0,charindex[shiwei],1);
1AC E081 LDI R24,1
1AD E090 LDI R25,0
1AE 839B STD Y+3,R25
1AF 838A STD Y+2,R24
1B0 E68E LDI R24,0x6E
1B1 E090 LDI R25,0
1B2 91E0 00B4 LDS R30,shiwei
1B4 91F0 00B5 LDS R31,shiwei+1
1B6 0FE8 ADD R30,R24
1B7 1FF9 ADC R31,R25
1B8 8020 LDD R2,Z+0
1B9 2433 CLR R3
1BA 8239 STD Y+1,R3
1BB 8228 STD Y+0,R2
1BC 2722 CLR R18
1BD 2733 CLR R19
1BE E007 LDI R16,7
1BF E010 LDI R17,0
1C0 D2E6 RCALL _Char_Set_XY_BYTE
(0071) Char_Set_XY_BYTE(0,3,num,1);
1C1 E081 LDI R24,1
1C2 E090 LDI R25,0
1C3 839B STD Y+3,R25
1C4 838A STD Y+2,R24
1C5 2E24 MOV R2,R20
1C6 2433 CLR R3
1C7 8239 STD Y+1,R3
1C8 8228 STD Y+0,R2
1C9 E023 LDI R18,3
1CA E030 LDI R19,0
1CB 2700 CLR R16
1CC 2711 CLR R17
1CD D2D9 RCALL _Char_Set_XY_BYTE
(0072) }
(0073) mid[1]=sec;
1CE 9020 00B2 LDS R2,sec
1D0 9030 00B3 LDS R3,sec+1
1D2 9220 007A STS mid+1,R2
(0074)
(0075)
(0076) min = ReadMin();
1D4 D197 RCALL _ReadMin
1D5 9310 00B1 STS min+1,R17
1D7 9300 00B0 STS min,R16
(0077) if(mid[2]!=min)
1D9 9040 007B LDS R4,mid+2
1DB 2455 CLR R5
1DC 1640 CP R4,R16
1DD 0651 CPC R5,R17
1DE F409 BNE 0x01E0
1DF C039 RJMP 0x0219
(0078) {
(0079) jisuan(min);
1E0 DEBB RCALL _jisuan
(0080) Char_Set_XY_BYTE(6,0,charindex[gewei],1);
1E1 E081 LDI R24,1
1E2 E090 LDI R25,0
1E3 839B STD Y+3,R25
1E4 838A STD Y+2,R24
1E5 E68E LDI R24,0x6E
1E6 E090 LDI R25,0
1E7 91E0 00B6 LDS R30,gewei
1E9 91F0 00B7 LDS R31,gewei+1
1EB 0FE8 ADD R30,R24
1EC 1FF9 ADC R31,R25
1ED 8020 LDD R2,Z+0
1EE 2433 CLR R3
1EF 8239 STD Y+1,R3
1F0 8228 STD Y+0,R2
1F1 2722 CLR R18
1F2 2733 CLR R19
1F3 E006 LDI R16,6
1F4 E010 LDI R17,0
1F5 D2B1 RCALL _Char_Set_XY_BYTE
(0081) Char_Set_XY_BYTE(5,0,charindex[shiwei],2);
1F6 E082 LDI R24,2
1F7 E090 LDI R25,0
1F8 839B STD Y+3,R25
1F9 838A STD Y+2,R24
1FA E68E LDI R24,0x6E
1FB E090 LDI R25,0
1FC 91E0 00B4 LDS R30,shiwei
1FE 91F0 00B5 LDS R31,shiwei+1
200 0FE8 ADD R30,R24
201 1FF9 ADC R31,R25
202 8020 LDD R2,Z+0
203 2433 CLR R3
204 8239 STD Y+1,R3
205 8228 STD Y+0,R2
206 2722 CLR R18
207 2733 CLR R19
208 E005 LDI R16,5
209 E010 LDI R17,0
20A D29C RCALL _Char_Set_XY_BYTE
(0082) Char_Set_XY_BYTE(5,0,charindex[10],1);
20B E081 LDI R24,1
20C E090 LDI R25,0
20D 839B STD Y+3,R25
20E 838A STD Y+2,R24
20F 9020 0078 LDS R2,0x0078
211 2433 CLR R3
212 8239 STD Y+1,R3
213 8228 STD Y+0,R2
214 2722 CLR R18
215 2733 CLR R19
216 E005 LDI R16,5
217 E010 LDI R17,0
218 D28E RCALL _Char_Set_XY_BYTE
(0083) }
(0084) mid[2]=min;
219 9020 00B0 LDS R2,min
21B 9030 00B1 LDS R3,min+1
21D 9220 007B STS mid+2,R2
(0085)
(0086)
(0087) hour=ReadHour();
21F D150 RCALL _ReadHour
220 0158 MOVW R10,R16
221 92B0 00AF STS hour+1,R11
223 92A0 00AE STS hour,R10
(0088) if(mid[3]!=hour)
225 9040 007C LDS R4,mid+3
227 2455 CLR R5
228 1640 CP R4,R16
229 0651 CPC R5,R17
22A F159 BEQ 0x0256
(0089) {
(0090) jisuan(hour);
22B DE70 RCALL _jisuan
(0091) Char_Set_XY_BYTE(4,0,charindex[gewei],2);
22C E082 LDI R24,2
22D E090 LDI R25,0
22E 839B STD Y+3,R25
22F 838A STD Y+2,R24
230 E68E LDI R24,0x6E
231 E090 LDI R25,0
232 91E0 00B6 LDS R30,gewei
234 91F0 00B7 LDS R31,gewei+1
236 0FE8 ADD R30,R24
237 1FF9 ADC R31,R25
238 8020 LDD R2,Z+0
239 2433 CLR R3
23A 8239 STD Y+1,R3
23B 8228 STD Y+0,R2
23C 2722 CLR R18
23D 2733 CLR R19
23E E004 LDI R16,4
23F E010 LDI R17,0
240 D266 RCALL _Char_Set_XY_BYTE
(0092) Char_Set_XY_BYTE(4,0,charindex[shiwei],1);
241 E081 LDI R24,1
242 E090 LDI R25,0
243 839B STD Y+3,R25
244 838A STD Y+2,R24
245 E68E LDI R24,0x6E
246 E090 LDI R25,0
247 91E0 00B4 LDS R30,shiwei
249 91F0 00B5 LDS R31,shiwei+1
24B 0FE8 ADD R30,R24
24C 1FF9 ADC R31,R25
24D 8020 LDD R2,Z+0
24E 2433 CLR R3
24F 8239 STD Y+1,R3
250 8228 STD Y+0,R2
251 2722 CLR R18
252 2733 CLR R19
253 E004 LDI R16,4
254 E010 LDI R17,0
255 D251 RCALL _Char_Set_XY_BYTE
(0093) }
(0094) mid[3]=hour;
256 9020 00AE LDS R2,hour
258 9030 00AF LDS R3,hour+1
25A 9220 007C STS mid+3,R2
(0095)
(0096)
(0097)
(0098)
(0099)
(0100) year=ReadYear();
25C D11B RCALL _ReadYear
25D 0158 MOVW R10,R16
25E 92B0 00AD STS year+1,R11
260 92A0 00AC STS year,R10
(0101) if(mid[4]!=year)
262 9040 007D LDS R4,0x007D
264 2455 CLR R5
265 1640 CP R4,R16
266 0651 CPC R5,R17
267 F159 BEQ 0x0293
(0102) {
(0103) jisuan(year);
268 DE33 RCALL _jisuan
(0104) Char_Set_XY_BYTE(4,1,charindex[gewei],2);
269 E082 LDI R24,2
26A E090 LDI R25,0
26B 839B STD Y+3,R25
26C 838A STD Y+2,R24
26D E68E LDI R24,0x6E
26E E090 LDI R25,0
26F 91E0 00B6 LDS R30,gewei
271 91F0 00B7 LDS R31,gewei+1
273 0FE8 ADD R30,R24
274 1FF9 ADC R31,R25
275 8020 LDD R2,Z+0
276 2433 CLR R3
277 8239 STD Y+1,R3
278 8228 STD Y+0,R2
279 E021 LDI R18,1
27A E030 LDI R19,0
27B E004 LDI R16,4
27C E010 LDI R17,0
27D D229 RCALL _Char_Set_XY_BYTE
(0105) Char_Set_XY_BYTE(4,1,charindex[shiwei],1);
27E E081 LDI R24,1
27F E090 LDI R25,0
280 839B STD Y+3,R25
281 838A STD Y+2,R24
282 E68E LDI R24,0x6E
283 E090 LDI R25,0
284 91E0 00B4 LDS R30,shiwei
286 91F0 00B5 LDS R31,shiwei+1
288 0FE8 ADD R30,R24
289 1FF9 ADC R31,R25
28A 8020 LDD R2,Z+0
28B 2433 CLR R3
28C 8239 STD Y+1,R3
28D 8228 STD Y+0,R2
28E E021 LDI R18,1
28F E030 LDI R19,0
290 E004 LDI R16,4
291 E010 LDI R17,0
292 D214 RCALL _Char_Set_XY_BYTE
(0106) }
(0107) mid[4]=year;
293 9020 00AC LDS R2,year
295 9030 00AD LDS R3,year+1
297 9220 007D STS 0x007D,R2
(0108)
(0109)
(0110) month=ReadMonth();
299 D0E2 RCALL _ReadMonth
29A 0158 MOVW R10,R16
29B 92B0 00AB STS month+1,R11
29D 92A0 00AA STS month,R10
(0111) if(mid[5]!=month)
29F 9040 007E LDS R4,0x007E
2A1 2455 CLR R5
2A2 1640 CP R4,R16
2A3 0651 CPC R5,R17
2A4 F409 BNE 0x02A6
2A5 C039 RJMP 0x02DF
(0112) {
(0113) jisuan(month);
2A6 DDF5 RCALL _jisuan
(0114) Char_Set_XY_BYTE(6,1,charindex[gewei],1);
2A7 E081 LDI R24,1
2A8 E090 LDI R25,0
2A9 839B STD Y+3,R25
2AA 838A STD Y+2,R24
2AB E68E LDI R24,0x6E
2AC E090 LDI R25,0
2AD 91E0 00B6 LDS R30,gewei
2AF 91F0 00B7 LDS R31,gewei+1
2B1 0FE8 ADD R30,R24
2B2 1FF9 ADC R31,R25
2B3 8020 LDD R2,Z+0
2B4 2433 CLR R3
2B5 8239 STD Y+1,R3
2B6 8228 STD Y+0,R2
2B7 E021 LDI R18,1
2B8 E030 LDI R19,0
2B9 E006 LDI R16,6
2BA E010 LDI R17,0
2BB D1EB RCALL _Char_Set_XY_BYTE
(0115) Char_Set_XY_BYTE(5,1,charindex[shiwei],2);
2BC E082 LDI R24,2
2BD E090 LDI R25,0
2BE 839B STD Y+3,R25
2BF 838A STD Y+2,R24
2C0 E68E LDI R24,0x6E
2C1 E090 LDI R25,0
2C2 91E0 00B4 LDS R30,shiwei
2C4 91F0 00B5 LDS R31,shiwei+1
2C6 0FE8 ADD R30,R24
2C7 1FF9 ADC R31,R25
2C8 8020 LDD R2,Z+0
2C9 2433 CLR R3
2CA 8239 STD Y+1,R3
2CB 8228 STD Y+0,R2
2CC E021 LDI R18,1
2CD E030 LDI R19,0
2CE E005 LDI R16,5
2CF E010 LDI R17,0
2D0 D1D6 RCALL _Char_Set_XY_BYTE
(0116) Char_Set_XY_BYTE(5,1,charindex[10],1);
2D1 E081 LDI R24,1
2D2 E090 LDI R25,0
2D3 839B STD Y+3,R25
2D4 838A STD Y+2,R24
2D5 9020 0078 LDS R2,0x0078
2D7 2433 CLR R3
2D8 8239 STD Y+1,R3
2D9 8228 STD Y+0,R2
2DA E021 LDI R18,1
2DB E030 LDI R19,0
2DC E005 LDI R16,5
2DD E010 LDI R17,0
2DE D1C8 RCALL _Char_Set_XY_BYTE
(0117) }
(0118) mid[5]=month;
2DF 9020 00AA LDS R2,month
2E1 9030 00AB LDS R3,month+1
2E3 9220 007E STS 0x007E,R2
(0119)
(0120)
(0121) date=ReadDate();
2E5 D08E RCALL _ReadDate
2E6 0158 MOVW R10,R16
2E7 92B0 00A7 STS date+1,R11
2E9 92A0 00A6 STS date,R10
(0122) if(mid[7]!=date)
2EB 9040 0080 LDS R4,0x0080
2ED 2455 CLR R5
2EE 1640 CP R4,R16
2EF 0651 CPC R5,R17
2F0 F159 BEQ 0x031C
(0123) {
(0124) jisuan(date);
2F1 DDAA RCALL _jisuan
(0125) Char_Set_XY_BYTE(7,1,charindex[gewei],2);
2F2 E082 LDI R24,2
2F3 E090 LDI R25,0
2F4 839B STD Y+3,R25
2F5 838A STD Y+2,R24
2F6 E68E LDI R24,0x6E
2F7 E090 LDI R25,0
2F8 91E0 00B6 LDS R30,gewei
2FA 91F0 00B7 LDS R31,gewei+1
2FC 0FE8 ADD R30,R24
2FD 1FF9 ADC R31,R25
2FE 8020 LDD R2,Z+0
2FF 2433 CLR R3
300 8239 STD Y+1,R3
301 8228 STD Y+0,R2
302 E021 LDI R18,1
303 E030 LDI R19,0
304 E007 LDI R16,7
305 E010 LDI R17,0
306 D1A0 RCALL _Char_Set_XY_BYTE
(0126) Char_Set_XY_BYTE(7,1,charindex[shiwei],1);
307 E081 LDI R24,1
308 E090 LDI R25,0
309 839B STD Y+3,R25
30A 838A STD Y+2,R24
30B E68E LDI R24,0x6E
30C E090 LDI R25,0
30D 91E0 00B4 LDS R30,shiwei
30F 91F0 00B5 LDS R31,shiwei+1
311 0FE8 ADD R30,R24
312 1FF9 ADC R31,R25
313 8020 LDD R2,Z+0
314 2433 CLR R3
315 8239 STD Y+1,R3
316 8228 STD Y+0,R2
317 E021 LDI R18,1
318 E030 LDI R19,0
319 E007 LDI R16,7
31A E010 LDI R17,0
31B D18B RCALL _Char_Set_XY_BYTE
(0127) }
(0128) mid[7]=date;
31C 9020 00A6 LDS R2,date
31E 9030 00A7 LDS R3,date+1
320 9220 0080 STS 0x0080,R2
(0129)
(0130)
(0131) day=ReadDay();
322 D05D RCALL _ReadDay
323 0158 MOVW R10,R16
324 92B0 00A9 STS day+1,R11
326 92A0 00A8 STS day,R10
(0132) if(mid[6]!=day)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -