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

📄 mudle1302.lis

📁 ds1302事实时钟+12864液晶显示 4094
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A2           ; {
 00A2                   .dbline 68
 00A2           ;     WriteRTC_Byte(0x8A,number);
 00A2 2A2D              mov R18,R10
 00A4 3327              clr R19
 00A6 0AE8              ldi R16,138
 00A8 10E0              ldi R17,0
 00AA 1AD0              rcall _WriteRTC_Byte
 00AC                   .dbline -2
 00AC           L17:
 00AC                   .dbline 0 ; func end
 00AC A990              ld R10,y+
 00AE 0895              ret
 00B0                   .dbsym r number 10 c
 00B0                   .dbend
 00B0                   .dbfunc e WriteDate _WriteDate fV
 00B0           ;         number -> R10
                        .even
 00B0           _WriteDate::
 00B0 AA92              st -y,R10
 00B2 A02E              mov R10,R16
 00B4                   .dbline -1
 00B4                   .dbline 71
 00B4           ; }
 00B4           ; void WriteDate(uchar number)                  //向DS1302中写入分字节
 00B4           ; {
 00B4                   .dbline 72
 00B4           ;     WriteRTC_Byte(0x86,number);
 00B4 2A2D              mov R18,R10
 00B6 3327              clr R19
 00B8 06E8              ldi R16,134
 00BA 10E0              ldi R17,0
 00BC 11D0              rcall _WriteRTC_Byte
 00BE                   .dbline -2
 00BE           L18:
 00BE                   .dbline 0 ; func end
 00BE A990              ld R10,y+
 00C0 0895              ret
 00C2                   .dbsym r number 10 c
 00C2                   .dbend
 00C2                   .dbfunc e ReadRTC_Byte _ReadRTC_Byte fi
 00C2           ;         redata -> R10
 00C2           ;        address -> R10
                        .even
 00C2           _ReadRTC_Byte::
 00C2 AA92              st -y,R10
 00C4 A02E              mov R10,R16
 00C6                   .dbline -1
 00C6                   .dbline 79
 00C6           ; }
 00C6           ; 
 00C6           ; 
 00C6           ; 
 00C6           ; 
 00C6           ; uint ReadRTC_Byte(uchar address)                      
 00C6           ; {
 00C6                   .dbline 82
 00C6           ;     unsigned char  redata;
 00C6           ; 
 00C6           ;       Clr_ds1302_rst;//ds1302_rst = 0;                        
 00C6 A998              cbi 0x15,1
 00C8                   .dbline 83
 00C8           ;     Clr_ds1302_clk;//ds1302_clk = 0;                          
 00C8 AB98              cbi 0x15,3
 00CA                   .dbline 84
 00CA           ;     Set_ds1302_rst;//ds1302_rst = 1;                          
 00CA A99A              sbi 0x15,1
 00CC                   .dbline 85
 00CC           ;     Write_bit(address);                               
 00CC 0A2D              mov R16,R10
 00CE 1127              clr R17
 00D0 19D0              rcall _Write_bit
 00D2                   .dbline 86
 00D2           ;       redata=Read_bit();                      
 00D2 2BD0              rcall _Read_bit
 00D4 A02E              mov R10,R16
 00D6                   .dbline 87
 00D6           ;       Clr_ds1302_rst;//ds1302_rst = 0;
 00D6 A998              cbi 0x15,1
 00D8                   .dbline 88
 00D8           ;       Set_ds1302_clk;//ds1302_clk = 1; 
 00D8 AB9A              sbi 0x15,3
 00DA                   .dbline 89
 00DA           ;    return redata;                             
 00DA 1127              clr R17
 00DC                   .dbline -2
 00DC           L19:
 00DC                   .dbline 0 ; func end
 00DC A990              ld R10,y+
 00DE 0895              ret
 00E0                   .dbsym r redata 10 c
 00E0                   .dbsym r address 10 c
 00E0                   .dbend
 00E0                   .dbfunc e WriteRTC_Byte _WriteRTC_Byte fV
 00E0           ;         number -> R10
 00E0           ;        address -> R12
                        .even
 00E0           _WriteRTC_Byte::
 00E0 AA92              st -y,R10
 00E2 CA92              st -y,R12
 00E4 A22E              mov R10,R18
 00E6 C02E              mov R12,R16
 00E8                   .dbline -1
 00E8                   .dbline 93
 00E8           ; }
 00E8           ; 
 00E8           ; void WriteRTC_Byte(uchar address,uchar number)   
 00E8           ; {
 00E8                   .dbline 94
 00E8           ;     Clr_ds1302_clk;//ds1302_clk = 0;
 00E8 AB98              cbi 0x15,3
 00EA                   .dbline 95
 00EA           ;     Clr_ds1302_rst;// ds1302_rst = 0;
 00EA A998              cbi 0x15,1
 00EC                   .dbline 96
 00EC           ;       Set_ds1302_rst;//ds1302_rst = 1;  
 00EC A99A              sbi 0x15,1
 00EE                   .dbline 97
 00EE           ;     Write_bit(address);                                
 00EE 0C2D              mov R16,R12
 00F0 1127              clr R17
 00F2 08D0              rcall _Write_bit
 00F4                   .dbline 98
 00F4           ;       Write_bit(number);                              
 00F4 0A2D              mov R16,R10
 00F6 1127              clr R17
 00F8 05D0              rcall _Write_bit
 00FA                   .dbline 99
 00FA           ;     Clr_ds1302_rst;//ds1302_rst = 0; 
 00FA A998              cbi 0x15,1
 00FC                   .dbline 100
 00FC           ;       Set_ds1302_clk;//ds1302_clk = 1;
 00FC AB9A              sbi 0x15,3
 00FE                   .dbline -2
 00FE           L20:
 00FE                   .dbline 0 ; func end
 00FE C990              ld R12,y+
 0100 A990              ld R10,y+
 0102 0895              ret
 0104                   .dbsym r number 10 c
 0104                   .dbsym r address 12 c
 0104                   .dbend
 0104                   .dbfunc e Write_bit _Write_bit fV
 0104           ;              i -> R20
 0104           ;           addr -> R16
                        .even
 0104           _Write_bit::
 0104 4A93              st -y,R20
 0106                   .dbline -1
 0106                   .dbline 108
 0106           ; }
 0106           ;                               
 0106           ; 
 0106           ; 
 0106           ; 
 0106           ; 
 0106           ; void Write_bit (uchar addr)                           
 0106           ; {
 0106                   .dbline 109
 0106           ;   uchar i=0;
 0106                   .dbline 110
 0106           ;  for(i=8;i>0;i--){
 0106 48E0              ldi R20,8
 0108 0BC0              rjmp L25
 010A           L22:
 010A                   .dbline 110
 010A                   .dbline 111
 010A           ;       if((addr&0x01)==0x01)
 010A 802F              mov R24,R16
 010C 8170              andi R24,1
 010E 8130              cpi R24,1
 0110 11F4              brne L26
 0112           X1:
 0112                   .dbline 112
 0112           ;          Set_ds1302_data;//ds1302_dat = 1;
 0112 AA9A              sbi 0x15,2
 0114 01C0              rjmp L27
 0116           L26:
 0116                   .dbline 114
 0116           ;     else
 0116           ;               Clr_ds1302_data;//ds1302_dat = 0;
 0116 AA98              cbi 0x15,2
 0118           L27:
 0118                   .dbline 115
 0118           ;     Set_ds1302_clk;//ds1302_clk=1;
 0118 AB9A              sbi 0x15,3
 011A                   .dbline 116
 011A           ;       Clr_ds1302_clk;//ds1302_clk=0;
 011A AB98              cbi 0x15,3
 011C                   .dbline 117
 011C           ;       addr>>=1;
 011C 0695              lsr R16
 011E                   .dbline 118
 011E           ;  }
 011E           L23:
 011E                   .dbline 110
 011E 4A95              dec R20
 0120           L25:
 0120                   .dbline 110
 0120 80E0              ldi R24,0
 0122 8417              cp R24,R20
 0124 90F3              brlo L22
 0126           X2:
 0126                   .dbline -2
 0126           L21:
 0126                   .dbline 0 ; func end
 0126 4991              ld R20,y+
 0128 0895              ret
 012A                   .dbsym r i 20 c
 012A                   .dbsym r addr 16 c
 012A                   .dbend
 012A                   .dbfunc e Read_bit _Read_bit fc
 012A           ;         data_r -> R20
 012A           ;              i -> R22
                        .even
 012A           _Read_bit::
 012A 4A93              st -y,R20
 012C 6A93              st -y,R22
 012E                   .dbline -1
 012E                   .dbline 122
 012E           ; }
 012E           ; 
 012E           ; uchar Read_bit ()                             
 012E           ; {
 012E                   .dbline 123
 012E           ;   uchar i=0;
 012E                   .dbline 124
 012E           ;   uchar data_r=0;
 012E 4427              clr R20
 0130                   .dbline 126
 0130           ; 
 0130           ;   Set_ds1302_data;
 0130 AA9A              sbi 0x15,2
 0132                   .dbline 127
 0132           ;   data_in;
 0132 A298              cbi 0x14,2
 0134                   .dbline 128
 0134           ;   Delayus(15);
 0134 0FE0              ldi R16,15
 0136 64DF              rcall _Delayus
 0138                   .dbline 130
 0138           ; 
 0138           ;  for(i=8;i>0;i--){
 0138 68E0              ldi R22,8
 013A 07C0              rjmp L32
 013C           L29:
 013C                   .dbline 130
 013C                   .dbline 131
 013C           ;       data_r>>=1;
 013C 4695              lsr R20
 013E                   .dbline 134
 013E           ;       
 013E           ;       
 013E           ;        if(data_in_read)
 013E 9A9B              sbis 0x13,2
 0140 01C0              rjmp L33
 0142           X3:
 0142                   .dbline 135
 0142           ;       {
 0142                   .dbline 136
 0142           ;               data_r|=0x80;
 0142 4068              ori R20,128
 0144                   .dbline 137
 0144           ;       }       
 0144           L33:
 0144                   .dbline 138
 0144           ;       Set_ds1302_clk;//ds1302_clk = 1;
 0144 AB9A              sbi 0x15,3
 0146                   .dbline 140
 0146           ;       
 0146           ;       Clr_ds1302_clk;//ds1302_clk = 0; 
 0146 AB98              cbi 0x15,3
 0148                   .dbline 142
 0148           ;  
 0148           ;   }
 0148           L30:
 0148                   .dbline 130
 0148 6A95              dec R22
 014A           L32:
 014A                   .dbline 130
 014A 80E0              ldi R24,0
 014C 8617              cp R24,R22
 014E B0F3              brlo L29
 0150           X4:
 0150                   .dbline 144
 0150           ;   
 0150           ;   data_out;
 0150 A29A              sbi 0x14,2
 0152                   .dbline 145
 0152           ; return data_r;
 0152 042F              mov R16,R20
 0154                   .dbline -2
 0154           L28:
 0154                   .dbline 0 ; func end
 0154 6991              ld R22,y+
 0156 4991              ld R20,y+
 0158 0895              ret
 015A                   .dbsym r data_r 20 c
 015A                   .dbsym r i 22 c
 015A                   .dbend
 015A           ; }

⌨️ 快捷键说明

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