首页天道酬勤51单片机ds1302时钟程序,ds1302时钟芯片数据手册

51单片机ds1302时钟程序,ds1302时钟芯片数据手册

张世龙 05-12 23:29 55次浏览

2018/4/30

1.功能

能够计算2100年前的秒、分、时、日、日期、星期、月、年的能力

2 .在其内部有31字节的静态RAM,供用户使用

3 .采用串行数据传输,采用SPI三线接口

4 .工作电压(2.0v--5.5v )、工作温度:-40c--85c

5 .可以双电源供电

2.SPI 总线

安全外围接口(SPI )

信号类型:

1.MOSI:主机输出、从站输入

2.MISO:主机输入、从站输出

3.SCLK:时钟信号

4./cs(rst ) :复位功能

2.DS1302引脚设置

1 .特点:

有两个内部和外部电源(VCC ),SLCK、IO和RST模拟了SPI总线

x1、x2连接了2个32.768KHZ水晶振动

3.DS1302片内RAM介绍(重点)

DS1302包括控制寄存器、12个日历、时钟寄存器和31个可读写RAM

注:D7位固定为1,D6位选择RAM/CK(选择是片内RAM还是日历,时钟寄存器),D5到D1为用于读写的时间寄存器或者片内RAM.

对于时钟寄存器的具体介绍图解:

注:时钟均由BCD码进行写入,从低位写入高位

4.片内RAM

1 .操作方式:单字节方式和多字节方式

2 .奇数为读出操作,偶数为写入操作

5.相关代码详解(写入是以两位为一个单元,控制命令和数据,读取以一位为一个单元,数据)

0 .时序图分析

1 .写入

void ds 1302写入(uchar addr,uchar dat ) /写控制位和数据位) {uchar n; RST=0; _nop_ (); //1使机器周期SCLK=0延迟//首先使SCLK为低电平。 //在低电平写入_nop_ (); RST=1; //然后使RST(CE )成为高电平。 _nop_ (); for(n=0; n8; 开始传输n//8位地址指令{DSIO=addr0x01; addr=1; //数据右移SCLK=1; //从数据的上升沿开始数据_nop_ (); SCLK=0; //数据在下降沿为数据_nop_ (); (for ) n=0; n8; 写入n//8位数据{DSIO=dat0x01; //从最低有效位发送dat=1的SCLK=1; //当数据处于上升边缘时,DS1302返回数据_nop_ (); SCLK=0; _nop_ (); } RST=0; //数据传输结束_nop_ (; )2.读取操作

uchards1302read(ucharaddr ) {uchar n,dat,dat1; RST=0; _nop_ (); SCLK=0; //首先将SCLK设为低电平。 _nop_ (); RST=1; //然后使RST(CE )成为高电平。 _nop_ (); for(n=0; n8; 开始传输n//8位地址指令{DSIO=addr0x01; //从低位传输addr=1; SCLK=1; //当数据处于上升边缘时,DS1302返回数据_nop_ (); SCLK=0; //DS1302下降沿时,数据_nop_ (); }_nop_ (); for(n=0; n8; 读取n//8位数据{dat1=DSIO; //从最低位开始dat=(dat1)|)| (dat17 ); SCLK=1; _nop_ (); SCLK=0; //DS1302下降沿时,数据_nop_ (); }RST=0; _nop_ (); //以下是DS1302复位的稳定时间,是必需的。 SCLK=1; _nop_ (); DSIO=0; _nop_ (); DSIO=1; _nop_ (); 返回日期; }3.初始化

void Ds1302Init () {uchar n; ds 1302写入(0X00,0X00 ); //禁止写保护意味着关闭写保护功能for (n=0; n7; (n ) /写入7字节时钟信号)分分秒时日月周年(ds1302write ) write_RTC_addr[n],TIME[n] ); } ds 1302写入(0x80,0x80 ); //打开写保护功能}4.读取时钟信息

void Ds1302ReadTime () {uchar n; for(n=0; n7; n (读取//7字节时钟信号)分分秒时日月周年(time [ n ]=ds 1302 read (read _ RTC _ addr [ n ] ); }

51单片机可调时钟程序,ds1302与单片机的连接 ds1302是什么芯片,时钟模块ds1302的使用