📄 ds1302.lis
字号:
00BC 83B3 in R24,0x13
00BE 8470 andi R24,4
00C0 C82E mov R12,R24
00C2 .dbline 108
00C2 ; delay_nus(200);
00C2 8430 cpi R24,4
00C4 29F4 brne L25
00C6 .dbline 109
00C6 ; LED0;
00C6 01E0 ldi R16,1
00C8 1E2D mov R17,R14
00CA 00D0 rcall lsl8
00CC 602B or R22,R16
00CE 06C0 rjmp L26
00D0 L25:
00D0 .dbline 111
00D0 ; delay_nus(200);
00D0 ; }
00D0 01E0 ldi R16,1
00D2 1E2D mov R17,R14
00D4 00D0 rcall lsl8
00D6 202E mov R2,R16
00D8 2094 com R2
00DA 6221 and R22,R2
00DC L26:
00DC .dbline 112
00DC A99A sbi 0x15,1
00DE .dbline 113
00DE 0000 nop
00E0 .dbline 114
00E0 L22:
00E0 .dbline 104
00E0 E394 inc R14
00E2 L24:
00E2 .dbline 104
00E2 8E2D mov R24,R14
00E4 8330 cpi R24,3
00E6 40F3 brlo L21
00E8 .dbline 115
00E8 ; /*******************************************************************************
00E8 ; 中断送显程序
00E8 ;
00E8 ; ******************************************************************************/
00E8 8AE0 ldi R24,10
00EA 8A9D mul R24,R10
00EC 402D mov R20,R0
00EE 460F add R20,R22
00F0 .dbline 116
00F0 ; #pragma interrupt_handler timer1_ovf_isr:9
00F0 A998 cbi 0x15,1
00F2 .dbline 117
00F2 ; void timer1_ovf_isr(void)
00F2 042F mov R16,R20
00F4 .dbline -2
00F4 L14:
00F4 00D0 rcall pop_gset5
00F6 .dbline 0 ; func end
00F6 0895 ret
00F8 .dbsym r temp 20 c
00F8 .dbsym r temp2 22 c
00F8 .dbsym r temp1 10 c
00F8 .dbsym r k 12 c
00F8 .dbsym r n 14 c
00F8 .dbsym r xx 12 c
00F8 .dbend
00F8 .dbfunc e DS1302_ReadTime _DS1302_ReadTime fV
.even
00F8 _DS1302_ReadTime::
00F8 .dbline -1
00F8 .dbline 123
00F8 ; {
00F8 ; sendFOURbeyt();
00F8 ; //TIMER1 has overflowed
00F8 ; TCNT1H = 0xFC; //reload counter high value
00F8 ; TCNT1L = 0x18; //reload counter low value
00F8 ; }
00F8 .dbline 124
00F8 ; /******************************************************************************
00F8 01E8 ldi R16,129
00FA B8DF rcall _DS1302_Read
00FC 202E mov R2,R16
00FE 3324 clr R3
0100 30920D00 sts _second+1,R3
0104 20920C00 sts _second,R2
0108 .dbline 125
0108 ; BCD分解为数组元素
0108 03E8 ldi R16,131
010A B0DF rcall _DS1302_Read
010C 202E mov R2,R16
010E 3324 clr R3
0110 30920B00 sts _minute+1,R3
0114 20920A00 sts _minute,R2
0118 .dbline 126
0118 ; ***************************************************************************/
0118 05E8 ldi R16,133
011A A8DF rcall _DS1302_Read
011C 202E mov R2,R16
011E 3324 clr R3
0120 30920900 sts _hour+1,R3
0124 20920800 sts _hour,R2
0128 .dbline 127
0128 ; void BINtoArray(char *p,unsigned int count)
0128 07E8 ldi R16,135
012A A0DF rcall _DS1302_Read
012C 202E mov R2,R16
012E 3324 clr R3
0130 30920700 sts _date+1,R3
0134 20920600 sts _date,R2
0138 .dbline 128
0138 ; { unsigned char i,temp;
0138 09E8 ldi R16,137
013A 98DF rcall _DS1302_Read
013C 202E mov R2,R16
013E 3324 clr R3
0140 30920300 sts _month+1,R3
0144 20920200 sts _month,R2
0148 .dbline 129
0148 ; CLI();
0148 0DE8 ldi R16,141
014A 90DF rcall _DS1302_Read
014C 202E mov R2,R16
014E 3324 clr R3
0150 30920100 sts _year+1,R3
0154 20920000 sts _year,R2
0158 .dbline -2
0158 L27:
0158 .dbline 0 ; func end
0158 0895 ret
015A .dbend
015A .dbfunc e DS1302_WriteTime _DS1302_WriteTime fV
015A ; time -> R20,R21
015A ; ddr -> R22,R23
.even
015A _DS1302_WriteTime::
015A 00D0 rcall push_gset2
015C .dbline -1
015C .dbline 136
015C ; for(i=0;i<4;i++)
015C ; {
015C ; temp=count%10;
015C ; *p=temp;
015C ; count=count/10;
015C ; p++;
015C ; }
015C .dbline 137
015C ; SEI();
015C 60E0 ldi R22,<_WriteAddress
015E 70E0 ldi R23,>_WriteAddress
0160 .dbline 138
0160 ; }
0160 40E0 ldi R20,<_WriteTime
0162 50E0 ldi R21,>_WriteTime
0164 09C0 rjmp L30
0166 L29:
0166 .dbline 140
0166 .dbline 141
0166 FA01 movw R30,R20
0168 2081 ldd R18,z+0
016A FB01 movw R30,R22
016C 0081 ldd R16,z+0
016E 74DF rcall _DS1302_WriteT
0170 .dbline 142
0170 6F5F subi R22,255 ; offset = 1
0172 7F4F sbci R23,255
0174 .dbline 143
0174 4F5F subi R20,255 ; offset = 1
0176 5F4F sbci R21,255
0178 .dbline 144
0178 L30:
0178 .dbline 139
0178 ;
0178 FB01 movw R30,R22
017A 2080 ldd R2,z+0
017C 2220 tst R2
017E 99F7 brne L29
0180 .dbline -2
0180 L28:
0180 00D0 rcall pop_gset2
0182 .dbline 0 ; func end
0182 0895 ret
0184 .dbsym r time 20 pc
0184 .dbsym r ddr 22 pc
0184 .dbend
0184 .dbfile E:\biyesheji\TESTBE~1\DS1302\程序/DELAY.C
0184 .dbfunc e delay_1us _delay_1us fV
.even
0184 _delay_1us::
0184 .dbline -1
0184 .dbline 5
0184 .dbline 6
0184 0000 nop
0186 .dbline -2
0186 L32:
0186 .dbline 0 ; func end
0186 0895 ret
0188 .dbend
0188 .dbfunc e delay_nus _delay_nus fV
0188 ; i -> R20,R21
0188 ; n -> R22,R23
.even
0188 _delay_nus::
0188 00D0 rcall push_gset2
018A B801 movw R22,R16
018C .dbline -1
018C .dbline 10
018C .dbline 11
018C 4427 clr R20
018E 5527 clr R21
0190 .dbline 12
0190 03C0 rjmp L37
0192 L34:
0192 .dbline 13
0192 F8DF rcall _delay_1us
0194 L35:
0194 .dbline 12
0194 4F5F subi R20,255 ; offset = 1
0196 5F4F sbci R21,255
0198 L37:
0198 .dbline 12
0198 4617 cp R20,R22
019A 5707 cpc R21,R23
019C D0F3 brlo L34
019E .dbline -2
019E L33:
019E 00D0 rcall pop_gset2
01A0 .dbline 0 ; func end
01A0 0895 ret
01A2 .dbsym r i 20 i
01A2 .dbsym r n 22 i
01A2 .dbend
01A2 .dbfunc e delay_1ms _delay_1ms fV
01A2 ; i -> R16,R17
.even
01A2 _delay_1ms::
01A2 .dbline -1
01A2 .dbline 17
01A2 .dbline 19
01A2 0027 clr R16
01A4 1127 clr R17
01A6 02C0 rjmp L42
01A8 L39:
01A8 .dbline 19
01A8 L40:
01A8 .dbline 19
01A8 0F5F subi R16,255 ; offset = 1
01AA 1F4F sbci R17,255
01AC L42:
01AC .dbline 19
01AC 0D38 cpi R16,141
01AE E0E0 ldi R30,0
01B0 1E07 cpc R17,R30
01B2 D0F3 brlo L39
01B4 .dbline -2
01B4 L38:
01B4 .dbline 0 ; func end
01B4 0895 ret
01B6 .dbsym r i 16 i
01B6 .dbend
01B6 .dbfunc e delay_nms _delay_nms fV
01B6 ; i -> R20,R21
01B6 ; n -> R22,R23
.even
01B6 _delay_nms::
01B6 00D0 rcall push_gset2
01B8 B801 movw R22,R16
01BA .dbline -1
01BA .dbline 23
01BA .dbline 24
01BA 4427 clr R20
01BC 5527 clr R21
01BE .dbline 25
01BE 03C0 rjmp L47
01C0 L44:
01C0 .dbline 26
01C0 .dbline 27
01C0 F0DF rcall _delay_1ms
01C2 .dbline 28
01C2 L45:
01C2 .dbline 25
01C2 4F5F subi R20,255 ; offset = 1
01C4 5F4F sbci R21,255
01C6 L47:
01C6 .dbline 25
01C6 4617 cp R20,R22
01C8 5707 cpc R21,R23
01CA D0F3 brlo L44
01CC .dbline -2
01CC L43:
01CC 00D0 rcall pop_gset2
01CE .dbline 0 ; func end
01CE 0895 ret
01D0 .dbsym r i 20 i
01D0 .dbsym r n 22 i
01D0 .dbend
.area lit(rom, con, rel)
0000 _SEG_table::
0000 C0F9 .byte 192,249
0002 A4B0 .byte 164,176
0004 9992 .byte 153,146
0006 82F8 .byte 130,248
0008 8090 .byte 128,144
000A .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
000A .dbsym e SEG_table _SEG_table A[10:10]kc
.area data(ram, con, rel)
000E .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
000E _Sec_buffer::
000E .blkb 2
.area idata
000E 0000 .byte 0,0
.area data(ram, con, rel)
0010 .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
0010 .blkb 2
.area idata
0010 0000 .byte 0,0
.area data(ram, con, rel)
0012 .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
0012 .dbsym e Sec_buffer _Sec_buffer A[4:4]c
0012 _Min_buffer::
0012 .blkb 2
.area idata
0012 0000 .byte 0,0
.area data(ram, con, rel)
0014 .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
0014 .blkb 2
.area idata
0014 0000 .byte 0,0
.area data(ram, con, rel)
0016 .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
0016 .dbsym e Min_buffer _Min_buffer A[4:4]c
.area text(rom, con, rel)
01D0 .dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
01D0 .dbfunc e port_init _port_init fV
.even
01D0 _port_init::
01D0 .dbline -1
01D0 .dbline 35
01D0 .dbline 36
01D0 2224 clr R2
01D2 28BA out 0x18,R2
01D4 .dbline 37
01D4 27BA out 0x17,R2
01D6 .dbline 38
01D6 25BA out 0x15,R2
01D8 .dbline 39
01D8 8FEF ldi R24,255
01DA 84BB out 0x14,R24
01DC .dbline 40
01DC 22BA out 0x12,R2
01DE .dbline 41
01DE 81BB out 0x11,R24
01E0 .dbline -2
01E0 L48:
01E0 .dbline 0 ; func end
01E0 0895 ret
01E2 .dbend
01E2 .dbfunc e timer1_init _timer1_init fV
.even
01E2 _timer1_init::
01E2 .dbline -1
01E2 .dbline 49
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -