DS1302电子时钟

DS1302电子时钟

在这里插入图片描述
DS1302如上图所示,它是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片, DS1302是一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。
各个引脚功能
1 脚 VCC2 是主电源正极的引脚, 2 脚 X1 和 3 脚 X2 是晶振输入和输出引脚, 4 脚 GND是负极, 5 脚 CE 是使能引脚,接单片机的 IO 口, 6 脚 I/O 是数据传输引脚,接单片机的 IO
口, 7 脚 SCLK 是通信时钟引脚,接单片机的 IO 口, 8 脚 VCC1 是备用电源引脚。
Vcc2:主电源; Vcc1:备份电源。
当Vcc1>Vcc2+0.2V时,由Vcc1向DS1302供电,当Vcc1< Vcc2时,由Vcc2

向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;

I/O:三线接口时的双向数据线;

CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:

第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。

1、 DS1302 是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软件自动调整的能力,可以通过配置 AM/PM 来决定采用 24 小时格式还是 12 小时格式。
2、DS1302有关日历和时钟的寄存器有12个,我们最常用的有7个
这里数据格式为BCD码,是用十六进制来表示十进制。例如,十六进制数0x13的值为整数19,但BCD码表示的是整数13。后续需要转换。
在这里插入图片描述1、CH为0时,时钟振荡停止;CH为1时,时钟开始运行。

2、控制寄存器I(8EH和8FH)的位7(WP)为写保护位

WP为0时,可对任何的时钟或RAM寄存器进行写操作;

WP为1时,禁止对任一寄存器进行写操作

3、读取一个地址的数据

unsigned char Ds1302Read(unsigned char addr)
{ 
	unsigned char n,dat,dat1;
	 SCLK=0;//先将SCLK置低电平。
	 _nop_();
 	RST=1;//然后将RST(CE)置高电平。
 	_nop_();
 	for(n=0;n<8;n++)//开始传送八位地址命令
	 {
		  DSIO=addr&0x01;//数据从低位开始传送
  		addr>>=1;
 	 	SCLK=1;//数据在上升沿时,DS1302读取数据
 	 	_nop_();
  		SCLK=0;//DS1302下降沿时,放置数据
 		 _nop_();
	 } 
 	_nop_();
	 for(n=0;n<8;n++)//读取8位数据
	 {
		  dat1=DSIO;//从最低位开始接收
 		 dat=dat>>1;
 		 dat|=dat1<<7;
  		SCLK=1;
  		_nop_();
  		SCLK=0;//DS1302下降沿时,放置数据
  		_nop_();
	 }
	 RST=0;
	 _nop_(); //以下为DS1302复位的稳定时间,必须的。
	 SCLK=1;
	 _nop_();
	 DSIO=0;
 	_nop_();
 	DSIO=1;
 	_nop_();
 	return dat; 
}

4、向DS1302命令(地址+数据)


void Ds1302Write(unsigned char addr,unsigned dat)
{
 unsigned char n;
 SCLK=0;//先将SCLK置低电平。
 _nop_();
 RST=1; //然后将RST(CE)置高电平。
 _nop_();
 for(n=0;n<8;n++)//开始传送八位地址命令
 {
  DSIO=addr&0x01;//数据从低位开始传送
  addr>>=1;
  SCLK=1;//数据在上升沿时,DS1302读取数据
  _nop_();
  SCLK=0;
  _nop_();
 }
for(n=0;n<8;n++)//写入8位数据
 {
  DSIO=dat&0x01;
  dat>>=1;
  SCLK=1;//数据在上升沿时,DS1302读取数据
  _nop_();
  SCLK=0;
  _nop_(); 
 }   
 RST=0;//传送数据结束
 _nop_();
}





基于DS1302电子时钟的设计 【摘 要】针对电子时钟芯片DS1302的工作原理,本文对基于DS1302电子时钟系统进行了硬 件和软件的设计。仿真结果表明,该设计的电子时钟电路简单,能完整地显示日期、星 期和时间,实用性较强。 【关键词】DS1302 ;AT89C51;时钟系统 The Design of Electronic Clock Based on DS1302 FENG Da-jie (Automation Department, Hainan Normal University, Haikou Hainan, 571158) 【Abstract】According to the working principle of electronic clock chip DS1302, this paper has designed electronic clock system both in hardware and software. The result of simulation demonstrates that electronic clock system designed is of simple structure and can display date, week and time, and therefore the system is more practical. 【Key words】DS1302; AT89C51; Clock system 在很多单片机系统中都要求带有实时时钟电路,如数据记录仪表、数字钟。本论文介 绍了利用时钟芯片DS1302来制作电子时钟。利用时钟芯片DS1302制作的电子时钟最大的 优点是精度高,能完整的提供秒、分、时、日、星期、月、年的信息,并且每个月的天 数和闰年的天数可自动调整。 1 电子时钟系统硬件电路设计 DS1302电子时钟电路如图1所示,该系统主要由AT89C51单片机、时钟芯片DS1302及液 晶显示器1602 三大部分组成。在此系统中,DS1302是美国DALLAS公司推出的一种高性能,低功耗的实 时时钟芯片。系统的工作原理是单片机通过读取DS1302寄存器的数据,然后将数据显示 在1602液晶显示器上。 DS1302时钟芯片简介 DS1302是DALLAS公司堆出的涓流充电时钟芯片,可以通过串行接口与单片机进行通信 。DS1302单片机之间的通信,仅需三根I/O线:复位(RET)、I/O数据线、串行时钟( SCLK),DS1302外部引脚如图2所示。 2 电子时钟系统软件设计 在软件设计方面,采用C 语言编写DS1302初始化、读写时序, LCD1602初始化及LCD1602显示子程序,软件流程图如图3所示。 2.1 DS1302 读写时序 在DS1302时钟芯片与单片机的通信过程中,一个时钟周期是一个上升沿序列,紧跟着 一个下降沿。对于数据的输入,在时钟周期的上升沿期间,数据必须正确;在时钟周期 的下降沿,数据位输出。如果RST的输入低电平,所有数据传输中止,I/O引脚变成高阻 状态,DS1302读写时序如图4所示。 采用英国Labcenter electronics 开发的Proteus 软件对该电子时钟系统进行仿真,仿真效果如图5所示,从DS1302中读出的数据通过LCD 1602显示出来,显示器的第一行显示日期和星期,第二行显示时间。仿真结果表明,该 电子时钟系统具有电路结构简单,能显示出日期、星期和时间。 【参考文献】 [1]刘坤,宋弋,赵红波,等.51 单片机C 语言应用开发技术大全[M].北京:人民邮电出版社,2008. [2]王明顺,吴省.可涓流充电的串行实时时钟芯片DS1302 及其应用设计[J]. 电子技术应用,1996,10. [3]何立民. 单片机应用系统设计[M]. 北京:北京航空航天大学出版社,1990:133-189. ----------------------- 基于DS1302电子时钟的设计(1)全文共2页,当前为第1页。 基于DS1302电子时钟的设计(1)全文共2页,当前为第2页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值