📄 ds1302.lis
字号:
00C4 0027 clr R16
00C6 BBDF xcall _LCD1602_sendbyte
00C8 .dbline 149
00C8 04C0 xjmp L18
00CA L17:
00CA .dbline 151
00CA 242F mov R18,R20
00CC 2058 subi R18,128 ; addi 128
00CE 0027 clr R16
00D0 B6DF xcall _LCD1602_sendbyte
00D2 .dbline 151
00D2 L18:
00D2 .dbline -2
00D2 .dbline 153
00D2 ; {
00D2 ; uchar data;
00D2 ; PORTC&=~BIT(RTC_CS); //拉低片选端
00D2 ; PORTB&=~BIT(RTC_CLK); //拉低时钟端
00D2 L16:
00D2 0E940000 xcall pop_gset2
00D6 .dbline 0 ; func end
00D6 0895 ret
00D8 .dbsym r Col 20 c
00D8 .dbsym r Row 22 c
00D8 .dbend
00D8 .dbfunc e LCD1602_initial _LCD1602_initial fV
.even
00D8 _LCD1602_initial::
00D8 .dbline -1
00D8 .dbline 161
00D8 ; Delayus(10);
00D8 ; PORTC|=BIT(RTC_CS); //拉高片选端
00D8 ; Delayus(10); //调整片选脉冲
00D8 ; DS1302_writeB(addr); //写入操作命令(地址)
00D8 ; Delayus(10);
00D8 ; data=DS1302_readB(); //读出数据
00D8 ; Delayus(10);
00D8 ; PORTB&=~BIT(RTC_CLK); //拉低时钟端
00D8 .dbline 162
00D8 ; PORTC&=~BIT(RTC_CS); //拉低片选端
00D8 04E6 ldi R16,100
00DA 10E0 ldi R17,0
00DC 2CD0 xcall _Delayms
00DE .dbline 163
00DE ; return data; //返回读出的数据
00DE 90DF xcall _LCD1602_portini
00E0 .dbline 165
00E0 ; }
00E0 ; /*******************************************
00E0 28E3 ldi R18,56
00E2 0027 clr R16
00E4 ACDF xcall _LCD1602_sendbyte
00E6 L22:
00E6 .dbline 166
00E6 L23:
00E6 .dbline 166
00E6 ; 函数名称: DS1302_setT
00E6 D4DF xcall _LCD1602_readBF
00E8 0023 tst R16
00EA E9F7 brne L22
00EC .dbline 167
00EC ; 功 能: 设置DS1302的时间
00EC 2CE0 ldi R18,12
00EE 0027 clr R16
00F0 A6DF xcall _LCD1602_sendbyte
00F2 L25:
00F2 .dbline 168
00F2 L26:
00F2 .dbline 168
00F2 ; 参 数: ptTimeD--设置时间数组指针
00F2 CEDF xcall _LCD1602_readBF
00F4 0023 tst R16
00F6 E9F7 brne L25
00F8 .dbline 169
00F8 ; 返回值 : 无
00F8 C5DF xcall _LCD1602_clear
00FA L28:
00FA .dbline 170
00FA L29:
00FA .dbline 170
00FA ; /********************************************/
00FA CADF xcall _LCD1602_readBF
00FC 0023 tst R16
00FE E9F7 brne L28
0100 .dbline 171
0100 ; void DS1302_setT(uchar ptTimeD[])
0100 26E0 ldi R18,6
0102 0027 clr R16
0104 .dbline -2
0104 .dbline 172
0104 ; {
0104 L21:
0104 .dbline 0 ; func end
0104 9CCF xjmp _LCD1602_sendbyte
0106 .dbend
0106 .dbfile I:\AVR视频教程\视频教程\lesson11\ds1302\ds1302\ds1302.c
0106 .dbfunc e Delayus _Delayus fV
0106 ; i -> R20,R21
0106 ; US -> R22,R23
.even
0106 _Delayus::
0106 0E940000 xcall push_gset2
010A B801 movw R22,R16
010C .dbline -1
010C .dbline 41
010C .dbline 43
010C 05E0 ldi R16,5
010E 10E0 ldi R17,0
0110 9B01 movw R18,R22
0112 0E940000 xcall empy16s
0116 B801 movw R22,R16
0118 7695 lsr R23
011A 6795 ror R22
011C 7695 lsr R23
011E 6795 ror R22
0120 .dbline 44
0120 4427 clr R20
0122 5527 clr R21
0124 02C0 xjmp L35
0126 L32:
0126 .dbline 44
0126 L33:
0126 .dbline 44
0126 4F5F subi R20,255 ; offset = 1
0128 5F4F sbci R21,255
012A L35:
012A .dbline 44
012A 4617 cp R20,R22
012C 5707 cpc R21,R23
012E D8F3 brlo L32
0130 .dbline -2
0130 .dbline 45
0130 L31:
0130 0E940000 xcall pop_gset2
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbsym r i 20 i
0136 .dbsym r US 22 i
0136 .dbend
0136 .dbfunc e Delayms _Delayms fV
0136 ; i -> R20,R21
0136 ; j -> R22,R23
0136 ; MS -> R16,R17
.even
0136 _Delayms::
0136 0E940000 xcall push_gset2
013A .dbline -1
013A .dbline 47
013A .dbline 49
013A 4427 clr R20
013C 5527 clr R21
013E 0BC0 xjmp L40
0140 L37:
0140 .dbline 50
0140 6627 clr R22
0142 7727 clr R23
0144 02C0 xjmp L44
0146 L41:
0146 .dbline 50
0146 L42:
0146 .dbline 50
0146 6F5F subi R22,255 ; offset = 1
0148 7F4F sbci R23,255
014A L44:
014A .dbline 50
014A 6537 cpi R22,117
014C E4E0 ldi R30,4
014E 7E07 cpc R23,R30
0150 D0F3 brlo L41
0152 L38:
0152 .dbline 49
0152 4F5F subi R20,255 ; offset = 1
0154 5F4F sbci R21,255
0156 L40:
0156 .dbline 49
0156 4017 cp R20,R16
0158 5107 cpc R21,R17
015A 90F3 brlo L37
015C .dbline -2
015C .dbline 51
015C L36:
015C 0E940000 xcall pop_gset2
0160 .dbline 0 ; func end
0160 0895 ret
0162 .dbsym r i 20 i
0162 .dbsym r j 22 i
0162 .dbsym r MS 16 i
0162 .dbend
0162 .dbfunc e DS1302_portinit _DS1302_portinit fV
.even
0162 _DS1302_portinit::
0162 .dbline -1
0162 .dbline 62
0162 .dbline 63
0162 87B3 in R24,0x17
0164 806A ori R24,160
0166 87BB out 0x17,R24
0168 .dbline -2
0168 .dbline 64
0168 L45:
0168 .dbline 0 ; func end
0168 0895 ret
016A .dbend
016A .dbfunc e DS1302_writeB _DS1302_writeB fV
016A ; i -> R20
016A ; byte -> R22
.even
016A _DS1302_writeB::
016A 0E940000 xcall push_gset2
016E 602F mov R22,R16
0170 .dbline -1
0170 .dbline 72
0170 .dbline 74
0170 4427 clr R20
0172 0CC0 xjmp L50
0174 L47:
0174 .dbline 75
0174 .dbline 76
0174 C798 cbi 0x18,7
0176 .dbline 77
0176 60FF sbrs R22,0
0178 02C0 rjmp L51
017A .dbline 78
017A .dbline 79
017A C59A sbi 0x18,5
017C .dbline 80
017C 01C0 xjmp L52
017E L51:
017E .dbline 82
017E .dbline 83
017E C598 cbi 0x18,5
0180 .dbline 84
0180 L52:
0180 .dbline 85
0180 0AE0 ldi R16,10
0182 10E0 ldi R17,0
0184 C0DF xcall _Delayus
0186 .dbline 86
0186 C79A sbi 0x18,7
0188 .dbline 87
0188 6695 lsr R22
018A .dbline 88
018A L48:
018A .dbline 74
018A 4395 inc R20
018C L50:
018C .dbline 74
018C 4830 cpi R20,8
018E 90F3 brlo L47
0190 .dbline -2
0190 .dbline 89
0190 L46:
0190 0E940000 xcall pop_gset2
0194 .dbline 0 ; func end
0194 0895 ret
0196 .dbsym r i 20 c
0196 .dbsym r byte 22 c
0196 .dbend
0196 .dbfunc e DS1302_readB _DS1302_readB fc
0196 ; i -> R20
0196 ; byte -> R22
.even
0196 _DS1302_readB::
0196 0E940000 xcall push_gset2
019A .dbline -1
019A .dbline 97
019A .dbline 98
019A 6627 clr R22
019C .dbline 99
019C BD98 cbi 0x17,5
019E .dbline 100
019E C598 cbi 0x18,5
01A0 .dbline 101
01A0 4427 clr R20
01A2 0FC0 xjmp L57
01A4 L54:
01A4 .dbline 102
01A4 .dbline 103
01A4 6695 lsr R22
01A6 .dbline 104
01A6 C79A sbi 0x18,7
01A8 .dbline 105
01A8 0AE0 ldi R16,10
01AA 10E0 ldi R17,0
01AC ACDF xcall _Delayus
01AE .dbline 106
01AE C798 cbi 0x18,7
01B0 .dbline 107
01B0 0AE0 ldi R16,10
01B2 10E0 ldi R17,0
01B4 A8DF xcall _Delayus
01B6 .dbline 108
01B6 B59B sbis 0x16,5
01B8 02C0 rjmp L58
01BA .dbline 109
01BA .dbline 110
01BA 6068 ori R22,128
01BC .dbline 111
01BC 01C0 xjmp L59
01BE L58:
01BE .dbline 113
01BE .dbline 114
01BE 6F77 andi R22,127
01C0 .dbline 115
01C0 L59:
01C0 .dbline 116
01C0 L55:
01C0 .dbline 101
01C0 4395 inc R20
01C2 L57:
01C2 .dbline 101
01C2 4830 cpi R20,8
01C4 78F3 brlo L54
01C6 .dbline 117
01C6 BD9A sbi 0x17,5
01C8 .dbline 118
01C8 062F mov R16,R22
01CA .dbline -2
01CA L53:
01CA 0E940000 xcall pop_gset2
01CE .dbline 0 ; func end
01CE 0895 ret
01D0 .dbsym r i 20 c
01D0 .dbsym r byte 22 c
01D0 .dbend
01D0 .dbfunc e DS1302_writeD _DS1302_writeD fV
01D0 ; data -> R20
01D0 ; addr -> R22
.even
01D0 _DS1302_writeD::
01D0 0E940000 xcall push_gset2
01D4 422F mov R20,R18
01D6 602F mov R22,R16
01D8 .dbline -1
01D8 .dbline 128
01D8 .dbline 129
01D8 AF98 cbi 0x15,7
01DA .dbline 130
01DA C798 cbi 0x18,7
01DC .dbline 131
01DC 0AE0 ldi R16,10
01DE 10E0 ldi R17,0
01E0 92DF xcall _Delayus
01E2 .dbline 132
01E2 AF9A sbi 0x15,7
01E4 .dbline 133
01E4 0AE0 ldi R16,10
01E6 10E0 ldi R17,0
01E8 8EDF xcall _Delayus
01EA .dbline 134
01EA 062F mov R16,R22
01EC BEDF xcall _DS1302_writeB
01EE .dbline 135
01EE 0AE0 ldi R16,10
01F0 10E0 ldi R17,0
01F2 89DF xcall _Delayus
01F4 .dbline 136
01F4 C798 cbi 0x18,7
01F6 .dbline 137
01F6 0AE0 ldi R16,10
01F8 10E0 ldi R17,0
01FA 85DF xcall _Delayus
01FC .dbline 138
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -