⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -