ds1302原理图
扫描二维码
随时随地手机看文章
DS1302实时时钟
芯片原理图:
引脚图:
需要注意的是,VCC1跟VCC2都外接了电容,只是容量不一样,同常备用电源VCC2的电容值是VCC1电容值的100倍,这也不难理解,如果断电,VCC2将能够提供较长一段时间的电力。
VCC1(主电源)-----------过滤滤波作用
VCC2(备用电源)--------断电时放电提供电力
X1与X2引脚接上晶振以获取实时时间
各种不同的引脚有着不一样的作用,我们在这里只介绍了一些特殊引脚,如有所需,请自行查阅官方数据手册。
DS1302内部有8个寄存器,分别掌管着秒,分,时,天,星期,月,年还有一个写入保护。
我们将依次介绍,首先看原理图:
寄存器0:
“Bit7”中的“CH”位表示时钟开始计时,1表示时钟停止计时。
“Bit4~Bit6”表示秒的十位
“BIt0~Bit3”表示秒的个位
寄存器1:
“Bit4~Bit6”表示分钟的十位
“Bit0~Bit3”表示分钟的个位
寄存器2:
Bit7:
1:代表12小时制,分上午和下午
2:代表24小时制
Bit5:当表示为12小时制的时候:
0:表示上午
1:表示下午
Bit4:与BIt5一起用,表示小时的十位
寄存器7:
Bit7:写保护位,如果是1,则禁止写入数据。
数据在时钟芯片中存储形式为”BCD”码,假如我们要在数码管上显示数字“59”,那么我们将分别显示“5”和“9”在不同的数码管上,因为数据中单片机内部是二进制形式,也就是说要么是0要么是1。
我们在计算机上显示的数字其实对应的有ASCII码表值。
时序图:
上升箭头指的是DS1302
单字节写/读操作时序图:
第一个字节:通过写的方式指明对哪个寄存器进行读写操作
第二个字节:读写的数据
写操作:
单片机----》数据-----》`I/O`口----`DS1302`
1
读操作:
`DS1302`----》数据-----》`I/O`口----单片机
1
写操作:
写操作的时候单片机向I/O口发送的数据是二进制,所以要检测I/O口的电平状态,判断是低还是高
写操作是在SCLK低电平时单片机将数据放在I/O口上,当SCLK上升沿时,DS1302读取
void DS1302Write(unsigned int reg,unsigned int data)
{
unsigned char detect;
DS1302RST = 1;//只有高电平才能触发
for(detect = 0x01;detect!=0;detect<<=1)//写地址
{
if((detect®)!=0)
{
DS1302DAT = 1;
}
else
{
DS1302DAT = 0;//IO状态
}
DS1302CK = 1;
delay();
DS1302CK = 0;
delay();
}
for(detect = 0x01;detect!=0;detect<<1)//写地址
{
if((detect&data)!=0)
{
DS1302DAT = 1;//IO口状态
}
else
{
DS1302DAT = 0;
}
DS1302CK = 1;
dalay();
DS1302CK = 0;
delay();
}
}
读操作:
读操作是单片机对I/O口的状态进行判断,是单片机读取DS1302发送到I/O口的二进制数据 所以要挨个对I/O口的高低进行判断
读操作是在SCLK高电平时DS1302放数据到I/O上,将SCLK置为低电平时,单片机就可以从I/O口上读取数据
unsigned int DS1302Read(unsigned int addr)//只写入地址
{
DS1302RST = 1;//打开总开关
unsigned int detect;
unsigned int dat = 0;
for(detect = 0x01;detect!=0;detect<<=1)//写地址
{
if((detect&addr)!=0)
{
DS1302DAT = 1;
}
else
{
DS1302DAT = 0;
}
DS1302CK = 1;
delay();
DS1302CK = 0;
delauy();
}
for(detect = 0x01;detect!=0;detect<<=1)
{
if(DS1302DAT!=0)
{
dat|=detect;//
}
DS1302CK = 1;//拉高
delay();
DS1302CK = 0;//拉低完成一位发送
delay();
}
DS1302RST = 0;//总电平置低完成发送
return dat;//返回数据
}
总结:
单片机对DS1302的读写操作
其实就是单片机对I/O口状态的判断
然后进行第二条总线的拉高和拉低
————————————————
版权声明:本文为CSDN博主「Mr.YunLong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44486550/article/details/104610124