📄 1302.h
字号:
#ifndef __1302_H__
#define __1302_H__
sbit DS1302_data=P0^2;
sbit DS1302_cs=P0^0;
sbit DS1302_clk=P0^1;
unsigned char display_buffer[6];
void short_delay()
{
unsigned char i;
for(i=0;i<5;i++);
}
void long_delay()
{
unsigned char i;
for(i=0;i<25;i++);
}
void DS1302_write(unsigned char DS1302_temp)
{
unsigned char i,temp;
long_delay();
temp=DS1302_temp;
for(i=0;i<8;i++)
{
if(temp&0x01)
DS1302_data=1;
else
DS1302_data=0;
short_delay();
DS1302_clk=1;
short_delay();
DS1302_clk=0;
short_delay();
temp=temp>>1;
}
}
unsigned char DS1302_read(void)
{
unsigned char i,temp;
long_delay();
temp=0;
for(i=0;i<8;i++)
{
temp=temp>>1;
if(DS1302_data==1)
temp=temp+0x80;
DS1302_clk=1;
short_delay();
DS1302_clk=0;
short_delay();
}
return temp;
}
void init(void)
{
unsigned char i;
DS1302_cs=0;
DS1302_clk=0;
short_delay();
DS1302_cs=1;
DS1302_write(0x81);
DS1302_data=1;
i=DS1302_read();
DS1302_cs=0;
short_delay();
DS1302_clk=1;
display_buffer[4]=(i>>4)&0x07;
display_buffer[5]=i&0x0f;
DS1302_clk=0;
short_delay();
DS1302_cs=1;
DS1302_write(0x83);
DS1302_data=1;
i=DS1302_read();
DS1302_cs=0;
short_delay();
DS1302_clk=1;
display_buffer[2]=(i>>4)&0x07;
display_buffer[3]=i&0x0f;
DS1302_clk=0;
short_delay();
DS1302_cs=1;
DS1302_write(0x85);
DS1302_data=1;
i=DS1302_read();
DS1302_cs=0;
short_delay();
DS1302_clk=1;
display_buffer[0]=(i>>4)&0x07;
display_buffer[1]=i&0x0f;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -