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

📄 ds1302.lis

📁 1302+lcd时钟显示C语言程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01EE           L42:
 01EE                   .dbline 46
 01EE 6C39              cpi R22,156
 01F0 E4E0              ldi R30,4
 01F2 7E07              cpc R23,R30
 01F4 D0F3              brlo L39
 01F6           L36:
 01F6                   .dbline 45
 01F6 4F5F              subi R20,255  ; offset = 1
 01F8 5F4F              sbci R21,255
 01FA           L38:
 01FA                   .dbline 45
 01FA 4017              cp R20,R16
 01FC 5107              cpc R21,R17
 01FE 90F3              brlo L35
 0200                   .dbline -2
 0200           L34:
 0200 0E940000          xcall pop_gset2
 0204                   .dbline 0 ; func end
 0204 0895              ret
 0206                   .dbsym r i 20 i
 0206                   .dbsym r j 22 i
 0206                   .dbsym r MS 16 i
 0206                   .dbend
 0206                   .dbfunc e DS1302_portinit _DS1302_portinit fV
                        .even
 0206           _DS1302_portinit::
 0206                   .dbline -1
 0206                   .dbline 58
 0206                   .dbline 59
 0206 87B3              in R24,0x17
 0208 806D              ori R24,208
 020A 87BB              out 0x17,R24
 020C                   .dbline -2
 020C           L43:
 020C                   .dbline 0 ; func end
 020C 0895              ret
 020E                   .dbend
 020E                   .dbfunc e DS1302_writeB _DS1302_writeB fV
 020E           ;              i -> R20
 020E           ;           byte -> R22
                        .even
 020E           _DS1302_writeB::
 020E 0E940000          xcall push_gset2
 0212 602F              mov R22,R16
 0214                   .dbline -1
 0214                   .dbline 68
 0214                   .dbline 70
 0214 4427              clr R20
 0216 0CC0              xjmp L48
 0218           L45:
 0218                   .dbline 71
 0218                   .dbline 72
 0218 C798              cbi 0x18,7
 021A                   .dbline 73
 021A 60FF              sbrs R22,0
 021C 02C0              rjmp L49
 021E                   .dbline 74
 021E                   .dbline 75
 021E C69A              sbi 0x18,6
 0220                   .dbline 76
 0220 01C0              xjmp L50
 0222           L49:
 0222                   .dbline 78
 0222                   .dbline 79
 0222 C698              cbi 0x18,6
 0224                   .dbline 80
 0224           L50:
 0224                   .dbline 81
 0224 0AE0              ldi R16,10
 0226 10E0              ldi R17,0
 0228 D6DF              xcall _Delayus
 022A                   .dbline 82
 022A C79A              sbi 0x18,7
 022C                   .dbline 83
 022C 6695              lsr R22
 022E                   .dbline 84
 022E           L46:
 022E                   .dbline 70
 022E 4395              inc R20
 0230           L48:
 0230                   .dbline 70
 0230 4830              cpi R20,8
 0232 90F3              brlo L45
 0234                   .dbline -2
 0234           L44:
 0234 0E940000          xcall pop_gset2
 0238                   .dbline 0 ; func end
 0238 0895              ret
 023A                   .dbsym r i 20 c
 023A                   .dbsym r byte 22 c
 023A                   .dbend
 023A                   .dbfunc e DS1302_readB _DS1302_readB fc
 023A           ;              i -> R20
 023A           ;           byte -> R22
                        .even
 023A           _DS1302_readB::
 023A 0E940000          xcall push_gset2
 023E                   .dbline -1
 023E                   .dbline 93
 023E                   .dbline 94
 023E 6627              clr R22
 0240                   .dbline 95
 0240 BE98              cbi 0x17,6
 0242                   .dbline 96
 0242 C698              cbi 0x18,6
 0244                   .dbline 97
 0244 4427              clr R20
 0246 0FC0              xjmp L55
 0248           L52:
 0248                   .dbline 98
 0248                   .dbline 99
 0248 6695              lsr R22
 024A                   .dbline 100
 024A C79A              sbi 0x18,7
 024C                   .dbline 101
 024C 0AE0              ldi R16,10
 024E 10E0              ldi R17,0
 0250 C2DF              xcall _Delayus
 0252                   .dbline 102
 0252 C798              cbi 0x18,7
 0254                   .dbline 103
 0254 0AE0              ldi R16,10
 0256 10E0              ldi R17,0
 0258 BEDF              xcall _Delayus
 025A                   .dbline 104
 025A B69B              sbis 0x16,6
 025C 02C0              rjmp L56
 025E                   .dbline 105
 025E                   .dbline 106
 025E 6068              ori R22,128
 0260                   .dbline 107
 0260 01C0              xjmp L57
 0262           L56:
 0262                   .dbline 109
 0262                   .dbline 110
 0262 6F77              andi R22,127
 0264                   .dbline 111
 0264           L57:
 0264                   .dbline 112
 0264           L53:
 0264                   .dbline 97
 0264 4395              inc R20
 0266           L55:
 0266                   .dbline 97
 0266 4830              cpi R20,8
 0268 78F3              brlo L52
 026A                   .dbline 113
 026A BE9A              sbi 0x17,6
 026C                   .dbline 114
 026C 062F              mov R16,R22
 026E                   .dbline -2
 026E           L51:
 026E 0E940000          xcall pop_gset2
 0272                   .dbline 0 ; func end
 0272 0895              ret
 0274                   .dbsym r i 20 c
 0274                   .dbsym r byte 22 c
 0274                   .dbend
 0274                   .dbfunc e DS1302_writeD _DS1302_writeD fV
 0274           ;           data -> R20
 0274           ;           addr -> R22
                        .even
 0274           _DS1302_writeD::
 0274 0E940000          xcall push_gset2
 0278 422F              mov R20,R18
 027A 602F              mov R22,R16
 027C                   .dbline -1
 027C                   .dbline 124
 027C                   .dbline 125
 027C C498              cbi 0x18,4
 027E                   .dbline 126
 027E C798              cbi 0x18,7
 0280                   .dbline 127
 0280 0AE0              ldi R16,10
 0282 10E0              ldi R17,0
 0284 A8DF              xcall _Delayus
 0286                   .dbline 128
 0286 C49A              sbi 0x18,4
 0288                   .dbline 129
 0288 0AE0              ldi R16,10
 028A 10E0              ldi R17,0
 028C A4DF              xcall _Delayus
 028E                   .dbline 130
 028E 062F              mov R16,R22
 0290 BEDF              xcall _DS1302_writeB
 0292                   .dbline 131
 0292 0AE0              ldi R16,10
 0294 10E0              ldi R17,0
 0296 9FDF              xcall _Delayus
 0298                   .dbline 132
 0298 C798              cbi 0x18,7
 029A                   .dbline 133
 029A 0AE0              ldi R16,10
 029C 10E0              ldi R17,0
 029E 9BDF              xcall _Delayus
 02A0                   .dbline 134
 02A0 042F              mov R16,R20
 02A2 B5DF              xcall _DS1302_writeB
 02A4                   .dbline 135
 02A4           ;  PORTB&=~BIT(RTC_CLK);         //拉低时钟端
 02A4 C798              cbi 0x18,7
 02A6                   .dbline 136
 02A6           ;  Delayus(10);                  //调整片选脉冲
 02A6 0AE0              ldi R16,10
 02A8 10E0              ldi R17,0
 02AA 95DF              xcall _Delayus
 02AC                   .dbline 137
 02AC           ;  PORTB&=~BIT(RTC_CS);  //拉低片选端
 02AC C498              cbi 0x18,4
 02AE                   .dbline -2
 02AE           L58:
 02AE 0E940000          xcall pop_gset2
 02B2                   .dbline 0 ; func end
 02B2 0895              ret
 02B4                   .dbsym r data 20 c
 02B4                   .dbsym r addr 22 c
 02B4                   .dbend
 02B4                   .dbfunc e DS1302_readD _DS1302_readD fc
 02B4           ;           data -> R20
 02B4           ;           addr -> R20
                        .even
 02B4           _DS1302_readD::
 02B4 0E940000          xcall push_gset1
 02B8 402F              mov R20,R16
 02BA                   .dbline -1
 02BA                   .dbline 146
 02BA           ; }
 02BA           ; /*******************************************
 02BA           ; 函数名称: DS1302_readD
 02BA           ; 功    能: 从DS1302的某个地址读出一个字节数据
 02BA           ; 参    数: addr--地址值(寄存器或RAM)
 02BA           ; 返回值  : data--读出的数据
 02BA           ; /********************************************/
 02BA           ; uchar DS1302_readD(uchar addr)
 02BA           ; {
 02BA                   .dbline 148
 02BA           ;  uchar data;
 02BA           ;  PORTB&=~BIT(RTC_CS);  //拉低片选端
 02BA C498              cbi 0x18,4
 02BC                   .dbline 149
 02BC           ;  PORTB&=~BIT(RTC_CLK);         //拉低时钟端
 02BC C798              cbi 0x18,7
 02BE                   .dbline 150
 02BE           ;  Delayus(10);
 02BE 0AE0              ldi R16,10
 02C0 10E0              ldi R17,0
 02C2 89DF              xcall _Delayus
 02C4                   .dbline 151
 02C4           ;  PORTB|=BIT(RTC_CS);   //拉高片选端
 02C4 C49A              sbi 0x18,4
 02C6                   .dbline 152
 02C6           ;  Delayus(10);                          //调整片选脉冲
 02C6 0AE0              ldi R16,10
 02C8 10E0              ldi R17,0
 02CA 85DF              xcall _Delayus
 02CC                   .dbline 153
 02CC           ;  DS1302_writeB(addr);  //写入操作命令(地址)
 02CC 042F              mov R16,R20
 02CE 9FDF              xcall _DS1302_writeB
 02D0                   .dbline 154
 02D0           ;  Delayus(10);
 02D0 0AE0              ldi R16,10
 02D2 10E0              ldi R17,0
 02D4 80DF              xcall _Delayus
 02D6                   .dbline 155
 02D6           ;  data=DS1302_readB();  //读出数据
 02D6 B1DF              xcall _DS1302_readB
 02D8 402F              mov R20,R16
 02DA                   .dbline 156
 02DA           ;  Delayus(10);
 02DA 0AE0              ldi R16,10
 02DC 10E0              ldi R17,0
 02DE 7BDF              xcall _Delayus
 02E0                   .dbline 157
 02E0           ;  PORTB&=~BIT(RTC_CLK);         //拉低时钟端
 02E0 C798              cbi 0x18,7
 02E2                   .dbline 158
 02E2           ;  PORTB&=~BIT(RTC_CS);          //拉低片选端
 02E2 C498              cbi 0x18,4
 02E4                   .dbline 159
 02E4           ;  return data;                  //返回读出的数据
 02E4 042F              mov R16,R20
 02E6                   .dbline -2
 02E6           L59:
 02E6 0E940000          xcall pop_gset1
 02EA                   .dbline 0 ; func end
 02EA 0895              ret
 02EC                   .dbsym r data 20 c
 02EC                   .dbsym r addr 20 c
 02EC                   .dbend
 02EC                   .dbfunc e DS1302_setT _DS1302_setT fV
 02EC           ;           addr -> R20
 02EC           ;              i -> R22
 02EC           ;        ptTimeD -> R10,R11
                        .even
 02EC           _DS1302_setT::

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -