📄 mudle1302.lis
字号:
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 + -