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

📄 1302模块.lis

📁 mega8515通过的DS1302芯片使用程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 006C 1127              clr R17
 006E 00D0              rcall _Read
 0070 A801              movw R20,R16
 0072                   .dbline 76
 0072           ;       Clr_ds1302_rst;//ds1302_rst = 0;
 0072 AB98              cbi 0x15,3
 0074                   .dbline 77
 0074           ;       Set_ds1302_clk;//ds1302_clk = 1; 
 0074 A99A              sbi 0x15,1
 0076                   .dbline 78
 0076           ;    return read_data;                          
 0076 85B3              in R24,0x15
 0078 8B7F              andi R24,251
 007A 85BB              out 0x15,R24
 007C 082F              mov R16,R24
 007E 1127              clr R17
 0080                   .dbline -2
 0080           L11:
 0080 00D0              rcall pop_gset1
 0082                   .dbline 0 ; func end
 0082 0895              ret
 0084                   .dbsym r redata 20 i
 0084                   .dbsym r address 20 c
 0084                   .dbend
 0084                   .dbfunc e WriteRTC_Byte _WriteRTC_Byte fV
 0084           ;         number -> R20
 0084           ;        address -> R22
                        .even
 0084           _WriteRTC_Byte::
 0084 00D0              rcall push_gset2
 0086 422F              mov R20,R18
 0088 602F              mov R22,R16
 008A                   .dbline -1
 008A                   .dbline 82
 008A           ; }
 008A           ; 
 008A           ; void WriteRTC_Byte(uchar address,uchar number)   
 008A           ; {
 008A                   .dbline 83
 008A           ;     Clr_ds1302_clk;//ds1302_clk = 0;
 008A A998              cbi 0x15,1
 008C                   .dbline 84
 008C           ;     Clr_ds1302_rst;// ds1302_rst = 0;
 008C AB98              cbi 0x15,3
 008E                   .dbline 85
 008E           ;       Set_ds1302_rst;//ds1302_rst = 1;  
 008E AB9A              sbi 0x15,3
 0090                   .dbline 86
 0090           ;     Write(address);                            
 0090 062F              mov R16,R22
 0092 1127              clr R17
 0094 00D0              rcall _Write
 0096                   .dbline 87
 0096           ;       Write(number);                          
 0096 042F              mov R16,R20
 0098 1127              clr R17
 009A 00D0              rcall _Write
 009C                   .dbline 88
 009C           ;     Clr_ds1302_rst;//ds1302_rst = 0; 
 009C AB98              cbi 0x15,3
 009E                   .dbline 89
 009E           ;       Set_ds1302_clk;//ds1302_clk = 1;
 009E A99A              sbi 0x15,1
 00A0                   .dbline -2
 00A0           L12:
 00A0 00D0              rcall pop_gset2
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbsym r number 20 c
 00A4                   .dbsym r address 22 c
 00A4                   .dbend
 00A4                   .dbfunc e Write_bit _Write_bit fV
 00A4           ;              i -> R20
 00A4           ;           addr -> R16
                        .even
 00A4           _Write_bit::
 00A4 00D0              rcall push_gset1
 00A6                   .dbline -1
 00A6                   .dbline 97
 00A6           ; }
 00A6           ;                               
 00A6           ; 
 00A6           ; 
 00A6           ; 
 00A6           ; 
 00A6           ; void Write_bit (uchar addr)                           
 00A6           ; {
 00A6                   .dbline 98
 00A6           ;   uchar i=0;
 00A6 4427              clr R20
 00A8                   .dbline 99
 00A8 48E0              ldi R20,8
 00AA 0BC0              rjmp L17
 00AC           L14:
 00AC                   .dbline 99
 00AC           ;  for(i=8;i>0;i--){
 00AC                   .dbline 100
 00AC           ;       if((addr&0x01)==0x01)
 00AC 802F              mov R24,R16
 00AE 8170              andi R24,1
 00B0 8130              cpi R24,1
 00B2 11F4              brne L18
 00B4                   .dbline 101
 00B4           ;          Set_ds1302_data;//ds1302_dat = 1;
 00B4 AA9A              sbi 0x15,2
 00B6 01C0              rjmp L19
 00B8           L18:
 00B8                   .dbline 103
 00B8           ;     else
 00B8           ;               Clr_ds1302_data;//ds1302_dat = 0;
 00B8 AA98              cbi 0x15,2
 00BA           L19:
 00BA                   .dbline 104
 00BA A99A              sbi 0x15,1
 00BC                   .dbline 105
 00BC A998              cbi 0x15,1
 00BE                   .dbline 106
 00BE 0695              lsr R16
 00C0                   .dbline 107
 00C0           L15:
 00C0                   .dbline 99
 00C0 4A95              dec R20
 00C2           L17:
 00C2                   .dbline 99
 00C2 2224              clr R2
 00C4 2416              cp R2,R20
 00C6 90F3              brlo L14
 00C8                   .dbline -2
 00C8           L13:
 00C8 00D0              rcall pop_gset1
 00CA                   .dbline 0 ; func end
 00CA 0895              ret
 00CC                   .dbsym r i 20 c
 00CC                   .dbsym r addr 16 c
 00CC                   .dbend
 00CC                   .dbfunc e Read_bit _Read_bit fc
 00CC           ;         data_r -> R20
 00CC           ;            num -> R22
 00CC           ;              i -> R10
 00CC           ;           addr -> R20
                        .even
 00CC           _Read_bit::
 00CC 00D0              rcall push_gset3
 00CE 402F              mov R20,R16
 00D0                   .dbline -1
 00D0                   .dbline 111
 00D0           ;     Set_ds1302_clk;//ds1302_clk=1;
 00D0           ;       Clr_ds1302_clk;//ds1302_clk=0;
 00D0           ;       addr>>=1;
 00D0           ;  }
 00D0           ; }
 00D0           ; 
 00D0           ; uchar Read_bit (uchar addr)                           
 00D0           ; {
 00D0                   .dbline 112
 00D0           ; uchar i=0,num;
 00D0 AA24              clr R10
 00D2                   .dbline 113
 00D2           ; uchar data_r=0;;
 00D2 4427              clr R20
 00D4                   .dbline 113
 00D4                   .dbline 114
 00D4           ; Delayus(2);
 00D4 02E0              ldi R16,2
 00D6 94DF              rcall _Delayus
 00D8                   .dbline 116
 00D8 88E0              ldi R24,8
 00DA A82E              mov R10,R24
 00DC 0AC0              rjmp L24
 00DE           L21:
 00DE                   .dbline 116
 00DE           ;  //ds1302_dat = 1;
 00DE           ;   for(i=8;i>0;i--){
 00DE                   .dbline 117
 00DE           ;       data_r>>=1;
 00DE 4695              lsr R20
 00E0                   .dbline 118
 00E0           ;       read_data;
 00E0 AA98              cbi 0x15,2
 00E2                   .dbline 119
 00E2           ;       num=PINC&0x04;
 00E2 63B3              in R22,0x13
 00E4 6470              andi R22,4
 00E6                   .dbline 120
 00E6           ;       if(num == 1)
 00E6 6130              cpi R22,1
 00E8 09F4              brne L25
 00EA                   .dbline 121
 00EA           ;       {
 00EA                   .dbline 122
 00EA           ;               data_r|=0x80;
 00EA 4068              ori R20,128
 00EC                   .dbline 123
 00EC           ;       }       
 00EC           L25:
 00EC                   .dbline 124
 00EC A99A              sbi 0x15,1
 00EE                   .dbline 125
 00EE A998              cbi 0x15,1
 00F0                   .dbline 126
 00F0           L22:
 00F0                   .dbline 116
 00F0 AA94              dec R10
 00F2           L24:
 00F2                   .dbline 116
 00F2 2224              clr R2
 00F4 2A14              cp R2,R10
 00F6 98F3              brlo L21
 00F8                   .dbline 127
 00F8           ;       Set_ds1302_clk;//ds1302_clk = 1;        
 00F8           ;       Clr_ds1302_clk;//ds1302_clk = 0; 
 00F8           ;   }
 00F8           ; return data_r;
 00F8 042F              mov R16,R20
 00FA                   .dbline -2
 00FA           L20:
 00FA 00D0              rcall pop_gset3
 00FC                   .dbline 0 ; func end
 00FC 0895              ret
 00FE                   .dbsym r data_r 20 c
 00FE                   .dbsym r num 22 c
 00FE                   .dbsym r i 10 c
 00FE                   .dbsym r addr 20 c
 00FE                   .dbend

⌨️ 快捷键说明

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