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

📄 ds1302.lis

📁 程序控制TFT全彩LCD显示屏
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00AC                   .dbline 0 ; func end
 00AC 0895              ret
 00AE                   .dbsym r Data1 20 c
 00AE                   .dbsym r Addr 20 c
 00AE                   .dbend
 00AE                   .dbfunc e BurstW1302T _BurstW1302T fV
 00AE           ;              i -> R20
 00AE           ;          Cdata -> R22,R23
                        .even
 00AE           _BurstW1302T::
 00AE 0E940000          xcall push_gset2
 00B2 B801              movw R22,R16
 00B4                   .dbline -1
 00B4                   .dbline 97
 00B4           ; }
 00B4           ; /******************************************************************** 
 00B4           ; 
 00B4           ;  函 数 名:BurstW1302T()
 00B4           ;  功    能:往DS1302写入时钟数据(多字节方式)
 00B4           ;  说    明:先写地址,后写命令/数据
 00B4           ;  调    用:W_Byte() 
 00B4           ;  入口参数:pWClock: 时钟数据地址 格式为: 秒 分 时 日 月 星期 年 控制
 00B4           ;                          8Byte (BCD码)1B 1B 1B 1B 1B  1B  1B 1B
 00B4           ;  返 回 值:无
 00B4           ; ***********************************************************************/
 00B4           ; void BurstW1302T(unsigned char *Cdata)
 00B4           ; {
 00B4                   .dbline 99
 00B4           ;     unsigned char i;
 00B4           ;     W_1302(0x8e,0x00);         /* 控制命令,WP=0,写操作?*/
 00B4 2227              clr R18
 00B6 0EE8              ldi R16,142
 00B8 CEDF              xcall _W_1302
 00BA                   .dbline 100
 00BA           ;     CLEAR_RST();
 00BA 0E940000          xcall _CLEAR_RST
 00BE                   .dbline 101
 00BE           ;       CLEAR_CLK();
 00BE 0E940000          xcall _CLEAR_CLK
 00C2                   .dbline 102
 00C2           ;       SET_RST();
 00C2 0E940000          xcall _SET_RST
 00C6                   .dbline 103
 00C6           ;     W_Byte(0xbe);        /* 0xbe:时钟多字节写命令 */
 00C6 0EEB              ldi R16,190
 00C8 9BDF              xcall _W_Byte
 00CA                   .dbline 104
 00CA           ;     for (i=0;i<8;i++)     /*8Byte = 7Byte 时钟数据 + 1Byte 控制*/
 00CA 4427              clr R20
 00CC 06C0              xjmp L21
 00CE           L18:
 00CE                   .dbline 105
 00CE                   .dbline 106
 00CE FB01              movw R30,R22
 00D0 0081              ldd R16,z+0
 00D2 96DF              xcall _W_Byte
 00D4                   .dbline 107
 00D4 6F5F              subi R22,255  ; offset = 1
 00D6 7F4F              sbci R23,255
 00D8                   .dbline 108
 00D8           L19:
 00D8                   .dbline 104
 00D8 4395              inc R20
 00DA           L21:
 00DA                   .dbline 104
 00DA 4830              cpi R20,8
 00DC C0F3              brlo L18
 00DE                   .dbline 109
 00DE           ;     {
 00DE           ;         W_Byte(*Cdata); /* 写1Byte数据*/
 00DE           ;         Cdata++;
 00DE           ;     }
 00DE           ;     SET_CLK();
 00DE 0E940000          xcall _SET_CLK
 00E2                   .dbline 110
 00E2           ;     CLEAR_RST();
 00E2 0E940000          xcall _CLEAR_RST
 00E6                   .dbline -2
 00E6           L17:
 00E6 0E940000          xcall pop_gset2
 00EA                   .dbline 0 ; func end
 00EA 0895              ret
 00EC                   .dbsym r i 20 c
 00EC                   .dbsym r Cdata 22 pc
 00EC                   .dbend
 00EC                   .dbfunc e BurstR1302T _BurstR1302T fV
 00EC           ;              i -> R20
 00EC           ;          Cdata -> R22,R23
                        .even
 00EC           _BurstR1302T::
 00EC 0E940000          xcall push_gset2
 00F0 B801              movw R22,R16
 00F2                   .dbline -1
 00F2                   .dbline 123
 00F2           ; } 
 00F2           ; /******************************************************************** 
 00F2           ; 
 00F2           ;  函 数 名:BurstR1302T()
 00F2           ;  功    能:读取DS1302时钟数据
 00F2           ;  说    明:先写地址/命令,后读数据(时钟多字节方式)
 00F2           ;  调    用:W_Byte() , R_Byte()
 00F2           ;  入口参数:pRClock: 读取时钟数据地址 格式为: 秒 分 时 日 月 星期 年
 00F2           ;                              7Byte (BCD码)1B 1B 1B 1B 1B  1B  1B
 00F2           ;  返 回 值:无
 00F2           ; ***********************************************************************/
 00F2           ; void BurstR1302T(unsigned char *Cdata)
 00F2           ; {
 00F2                   .dbline 125
 00F2           ;     unsigned char i;
 00F2           ;       CLEAR_RST();
 00F2 0E940000          xcall _CLEAR_RST
 00F6                   .dbline 126
 00F6           ;       CLEAR_CLK();
 00F6 0E940000          xcall _CLEAR_CLK
 00FA                   .dbline 127
 00FA           ;     SET_RST();
 00FA 0E940000          xcall _SET_RST
 00FE                   .dbline 128
 00FE           ;     W_Byte(0xbf);             /* 0xbf:时钟多字节读命令 */
 00FE 0FEB              ldi R16,191
 0100 7FDF              xcall _W_Byte
 0102                   .dbline 129
 0102           ;     for (i=0;i<8;i++) 
 0102 4427              clr R20
 0104 06C0              xjmp L26
 0106           L23:
 0106                   .dbline 130
 0106                   .dbline 131
 0106 90DF              xcall _R_Byte
 0108 FB01              movw R30,R22
 010A 0083              std z+0,R16
 010C                   .dbline 132
 010C 6F5F              subi R22,255  ; offset = 1
 010E 7F4F              sbci R23,255
 0110                   .dbline 133
 0110           L24:
 0110                   .dbline 129
 0110 4395              inc R20
 0112           L26:
 0112                   .dbline 129
 0112 4830              cpi R20,8
 0114 C0F3              brlo L23
 0116                   .dbline 134
 0116           ;     {
 0116           ;        *Cdata = R_Byte();   /* 读1Byte数据 */
 0116           ;        Cdata++;
 0116           ;     }
 0116           ;     SET_CLK();
 0116 0E940000          xcall _SET_CLK
 011A                   .dbline 135
 011A           ;     CLEAR_RST();
 011A 0E940000          xcall _CLEAR_RST
 011E                   .dbline -2
 011E           L22:
 011E 0E940000          xcall pop_gset2
 0122                   .dbline 0 ; func end
 0122 0895              ret
 0124                   .dbsym r i 20 c
 0124                   .dbsym r Cdata 22 pc
 0124                   .dbend
 0124                   .dbfunc e BurstW1302R _BurstW1302R fV
 0124           ;              i -> R20
 0124           ;          Cdata -> R22,R23
                        .even
 0124           _BurstW1302R::
 0124 0E940000          xcall push_gset2
 0128 B801              movw R22,R16
 012A                   .dbline -1
 012A                   .dbline 147
 012A           ; }
 012A           ; /******************************************************************** 
 012A           ; 
 012A           ;  函 数 名:BurstW1302R()
 012A           ;  功    能:往DS1302寄存器数写入数据(多字节方式)
 012A           ;  说    明:先写地址,后写数据(寄存器多字节方式)
 012A           ;  调    用:W_Byte()
 012A           ;  入口参数:pWReg: 寄存器数据地址
 012A           ;  返 回 值:无
 012A           ; ***********************************************************************/
 012A           ; void BurstW1302R(unsigned char *Cdata)
 012A           ; {
 012A                   .dbline 149
 012A           ;     unsigned char i;
 012A           ;     W_1302(0x8e,0x00);         /* 控制命令,WP=0,写操作*/
 012A 2227              clr R18
 012C 0EE8              ldi R16,142
 012E 93DF              xcall _W_1302
 0130                   .dbline 150
 0130           ;       CLEAR_RST();
 0130 0E940000          xcall _CLEAR_RST
 0134                   .dbline 151
 0134           ;       CLEAR_CLK();
 0134 0E940000          xcall _CLEAR_CLK
 0138                   .dbline 152
 0138           ;     SET_RST();
 0138 0E940000          xcall _SET_RST
 013C                   .dbline 153
 013C           ;     W_Byte(0xfe);         /* 0xbe:时钟多字节写命令 */
 013C 0EEF              ldi R16,254
 013E 60DF              xcall _W_Byte
 0140                   .dbline 154
 0140           ;     for (i=31; i>0; i--)       /* 31Byte 寄存器数据 */
 0140 4FE1              ldi R20,31
 0142 06C0              xjmp L31
 0144           L28:
 0144                   .dbline 155
 0144                   .dbline 156
 0144 FB01              movw R30,R22
 0146 0081              ldd R16,z+0
 0148 5BDF              xcall _W_Byte
 014A                   .dbline 157
 014A 6F5F              subi R22,255  ; offset = 1
 014C 7F4F              sbci R23,255
 014E                   .dbline 158
 014E           L29:
 014E                   .dbline 154
 014E 4A95              dec R20
 0150           L31:
 0150                   .dbline 154
 0150 2224              clr R2
 0152 2416              cp R2,R20
 0154 B8F3              brlo L28
 0156                   .dbline 159
 0156           ;     {
 0156           ;         W_Byte(*Cdata);    /* 写1Byte数据*/
 0156           ;         Cdata++;
 0156           ;     }
 0156           ;     SET_CLK();
 0156 0E940000          xcall _SET_CLK
 015A                   .dbline 160
 015A           ;     CLEAR_RST();
 015A 0E940000          xcall _CLEAR_RST
 015E                   .dbline -2
 015E           L27:
 015E 0E940000          xcall pop_gset2
 0162                   .dbline 0 ; func end
 0162 0895              ret
 0164                   .dbsym r i 20 c
 0164                   .dbsym r Cdata 22 pc
 0164                   .dbend
 0164                   .dbfunc e BurstR1302R _BurstR1302R fV
 0164           ;              i -> R20
 0164           ;          Cdata -> R22,R23
                        .even
 0164           _BurstR1302R::
 0164 0E940000          xcall push_gset2
 0168 B801              movw R22,R16
 016A                   .dbline -1
 016A                   .dbline 172
 016A           ; } 
 016A           ; /******************************************************************** 
 016A           ; 
 016A           ;  函 数 名:BurstR1302R()
 016A           ;  功    能:读取DS1302寄存器数据
 016A           ;  说    明:先写地址,后读命令/数据(寄存器多字节方式)
 016A           ;  调    用:W_Byte() , R_Byte()
 016A           ;  入口参数:pRReg: 寄存器数据地址
 016A           ;  返 回 值:无
 016A           ; ***********************************************************************/
 016A           ; void BurstR1302R(unsigned char *Cdata)
 016A           ; {
 016A                   .dbline 174
 016A           ;     unsigned char i;
 016A           ;     CLEAR_RST();
 016A 0E940000          xcall _CLEAR_RST

⌨️ 快捷键说明

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