版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
时钟芯片DS1302及其应用时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数。年计数可达到2100年。有31*8位的额外数据暂存寄存器最少I/O引脚传输,通过三引脚SCLK,RST,IO控制工作电压:2.0-5.5V
工作电流小于320纳安(2.0V)读写时钟寄存器或内部RAM(31*8位的额外数据暂存寄存)可以采用单字节模式和突发模式
8-pinDIP封装或8-pinSOICs
兼容TTL(5.0V)可选的工业级别,工作温度-40–85摄氏度兼容DS1202较DS1202增加的功能:
1.可通过Vcc1进行涓流充电
2.双重电源补给
3.备用电源可采用电池或者超级电容(0.1F以上),可以用老式电脑主板上的3.6V充电电池。功能介绍引脚分布结构框图主要工作原理:移位寄存器,控制逻辑,晶振,时钟和RAM
在进行任何数据传输时,/RST必须被制高电平(注意虽然将它置为高电平,内部时钟还是在晶振作用下走时的,此时,允许外部读写数据)。在每个SCLK上升沿时,数据被输入,下降沿时数据被输出,一次只能读写一位,是读还是写需要通过串行输入控制指令来实现(也是一个字节),通过8个脉冲便可读取一个字节从而实现串行输入与输出。
最初通过8个时钟周期载入控制字节到移位寄存器。如果控制指令选择的是单字节模式,后来的连续的8个时钟脉冲可以进行8位数据的写或8位数据的读操作,SCLK时钟的上升沿时,数据被写入DS1302,SCLK脉冲的下降沿读出DS1302的数据。工作过程DS1302的基本操作方式是:先写地址(最后一位是0),再写数据;或者先写地址(最后一位是1),再读数据。写:发送10XXXXX0再发送写的字节读:发送10XXXXX1再读一个字节复位与时钟控制所有的数据传输必须从将置高电平开始;数据传输时序复位与时钟控制所有的数据传输必须从将置高电平开始;一个时钟周期是由下降沿、上升沿组成的序列;对于数据输入来说,数据必须在数据必须在时钟的上升沿到来之前有效,对于数据输入来说,在时钟的下降沿输出数据位。如果是低电平,所有的数据传输端和IO引脚都为高阻态。数据输入(单片机写)在8个时钟周期的控制写字节的输入之后,一个字节的输入将在下8个时钟周期的上升沿完成,数据传输从字节最低位开始。读写时间寄存器与时间有关的寄存器为:SEC,MIN,HR,DATE,MONTH,DAY,YEAR这些寄存器的操作方式是一样的:写:发送10XXXXX0,再发送写的字节读:发送10XXXXX1,再读一个字节下面以秒为例:秒分时日月周年初始化时要置当前时间:写地址:发送10000000(即0x80),再发送写的字节0x55如时间12:23:55初始化完了,读当前时间:读地址:发送10000001(即0x81),再读一个字节,即为当前的秒读写时间寄存器write_DS1302(0x80,0x55]);readtimeR[6]=read_DS1302(0x81);bit7秒控制寄存器秒寄存器秒写地址:0x80读地址:0x81分写地址:0x82读地址:0x83时写地址:0x84读地址:0x85日写地址:0x86读地址:0x87月写地址:0x88读地址:0x89周写地址:0x8a读地址:0x8b年写地址:0x8c读地址:0x8d读写时间控制寄存器时钟停止标志位秒寄存器的最高位,定义为时钟停止位,当该位置1,时钟振荡停止,DS1302进入低功耗待机模式;当该位置0,时钟振荡启动;初始上电状态是没有定义。val=read_DS1302(0x81);//读秒寄存器到valval&=0x7f; //最高位清零,振荡器工作允许write_DS1302(0x80,val);//写秒寄存器,内容val启动时钟示例ucharval;bit7秒控制寄存器秒寄存器AM-PM/12-24MODE小时寄存器的第7位定义为12-24小时模式位。Bit7为1:是12小时制;bit5=1表示下午bit5=0表示上午Bit7为0:是24小时制;bit7bit5小时控制寄存器小时寄存器12-24小时模式位12小时制模式时,0:上午;1:下午写保护位(WRITEPROTECTBIT)控制字节的bit7是写保护位(前面已经提到),低7位(bit0~bit6),被置0,在任何写操作前,bit7都应该置‘0’。控制寄存器地址控制寄存器字节写保护关闭:write_DS1302(0x8e,0x00);bit70000000写保护打开:write_DS1302(0x8e,0x80);地址该寄存器决定了DS1302的充电特性,涓流充电选择位为bit4~7,置1010时使涓流充电,其他选择将禁止涓流充电。DS1302刚上电时无涓流充电。二极管选择位diodeselect(DS)bit2~3,将在Vcc1和Vcc2之间选择1或2个diode,如果DS是01,只有一个二极管被选择,如果DS四10,将选择两个diode,具体电路如下图,如果是00或11,无涓流充电能力。还有电阻选择位RS(bit0~1)将会选择Vcc1和Vcc2之间的电阻,具体如下表:涓电流充电寄存器sbitDS1302_CLK=P1^7;sbitDS1302_IO=P2^3;sbitDS1302_RST=P1^3;大赛DS1302部分电路#definenop_nop_()voidsendbyte(uchara){uchari;for(i=8;i>0;i--) { DS1302_IO=a&0x01; a>>=1; DS1302_CLK=1; _nop_(); DS1302_CLK=0; _nop_();}}函数功能:单片机向DS1302写一个字节子程序IO=字节a的最低位字节右移1位CLK=1,延时CLK=0,延时到8次了?结束将上面的写字节和读字节放在一起研究voidsendbyte(uchara){uchari;for(i=8;i>0;i--) { DS1302_IO=a&0x01; a>>=1; DS1302_CLK=1; _nop_(); DS1302_CLK=0; _nop_();}}读一个字节子程序ucharreadbyte(void){ uchari,dat=0; for(i=8;i>0;i--) { dat>>=1; if(DS1302_IO) dat|=0x80; DS1302_CLK=1; nop; DS1302_CLK=0; } returndat;}写一个字节子程序这是一种方案在控制字节最后一位写完后的下降沿,第一个读数据位就出现了此句看上去,在没有先产生下降沿的情况下就读了数据,其实在左边已经产生了第一个数据位将上面的写字节和读字节放在一起研究voidsendbyte(uchara){uchari;for(i=8;i>0;i--) { DS1302_CLK=0;nop;DS1302_IO=a&0x01;a>>=1;DS1302_CLK=1;nop; }}读一个字节子程序ucharreadbyte(void){uchari,dat=0;for(i=8;i>0;i--){ DS1302_CLK=1; nop; DS1302_CLK=0; dat>>=1; if(DS1302_IO) dat|=0x80; }returndat;}写一个字节子程序这是另一种方案这里是先产生数据,再产生上升沿的方式送数据,最后没有产生下降沿。这里要先产生下降沿,再读数据/*****************************************************************************函数功能:写DS1302地址子程序向address地址上写入数据dat*****************************************************************************/voidwrite_DS1302(ucharaddress,uchardat){
DS1302_RST=0; nop; DS1302_CLK=0; nop; DS1302_RST=1; nop;
sendbyte(address); nop;
sendbyte(dat); nop; DS1302_RST=0; nop; DS1302_CLK=0;}经过8个时钟周期的控制字节的输入,一个字节的输入将在下8个时钟周期的上升沿完成,数据传输从字节最低位开始。这3句的目的是将CLK置0,但是不知道会不会产生下降沿而送错数据,所以先RST=0,停止所有数据传送,高阻态,等CLK=0之后,再回复RST=1;/*****************************************************************************函数功能:初始化DS1302子程序入口参数:wr_data[](全局变量)出口参数:*****************************************************************************/voidDS1302_init(){write_DS1302(0x8e,0x00);//关闭保护,bit7=0write_DS1302(0x8c,wr_data[0]); //年write_DS1302(0x88,wr_data[1]); //月write_DS1302(0x86,wr_data[2]); //日 write_DS1302(0x8A,wr_data[3]); //星期write_DS1302(0x84,wr_data[4]); //时write_DS1302(0x82,wr_data[5]); //分write_DS1302(0x80,wr_data[6]); //秒 write_DS1302(0x8e,0x80); //开写保护,bit7=1}voidclock_start(void){ucharval;val=read_DS1302(0x81);//读秒寄存器val&=0x7f; //秒寄存器最高位0,时钟振荡启动
write_DS1302(0x8e,0x00);//关写保护
write_DS1302(0x80,val);//写回秒寄存器write_DS1302(0x90,0xa5);
//1010使能涓电流充电,DS=01:选择一个二极管,RS=01:R1=2kwrite_DS1302(0x8e,0x80);//开写保护
}启动振荡器,启动涓电流充电(竞赛可省略)(竞赛可省略)可以省略的理由:1.由于秒寄存器是内容0x00~0x59,显然初始化时最高位也同时清零了;2.使用的电池,不充电,可以不对电池充电。/*****************************************************************************函数功能:读DS1302时间子程序读到数组readtimeR中*****************************************************************************/voidread_time(void){ readtimeR[0]=read_DS1302(0x8d);//年BCD码 readtimeR[1]=read_DS1302(0x89); //月BCD码 readtimeR[2]=read_DS1302(0x87); //日BCD码 readtimeR[3]=read_DS1302(0x8b);//周BCD码 readtimeR[4]=read_DS1302(0x85); //时BCD码 readtimeR[5]=read_DS1302(0x83);//分BCD码 readtimeR[6]=read_DS1302(0x81); //秒BCD码}送显示的数据处理方式year_h=readtimeR[0]>>4; //年十位year_l=readtimeR[0]&0x0f;//年个位month_h=readtimeR[1]>>4; //月十位month_l=readtimeR[1]&0x0f;//月个位date_h=readtimeR[2]>>4; //日十位date_l=readtimeR[2]&0x0f;//日个位hour_h=readtimeR[4]>>4; //时十位hour_l=readtimeR[4]&0x0f;//时个位minute_h=readtimeR[5]>>4;//分十位minute_l=readtimeR[5]&0x0f;//分个位second_h=readtimeR[6]>>4;//秒十位second_l=readtimeR[6]&0x0f;//秒个位disTime[0]=hour_h;disTime[1]=hour_l;disTime[3]=minute_h;disTime[4]=minute_l;disTime[6]=second_h;disTime[7]=second_l;display(disTime);disDate[0]=year_h;disDate[1]=year_l;disDate[3]=month_h;disDate[4]=month_l;disDate[6]=date_h;disDate[7]=date_l;display(disDate)作判断的数据处理方式ucharsec,min,hour,dat,m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年浙教版选修3地理上册月考试卷654
- 早教机构 课程设计
- 智能控制课程设计
- 2021-2022学年河南省新乡市封丘县四年级下学期期末英语真题及答案
- 人教版高中物理必修第三册第十一章电路及其应用11-4串联电路和并联电路练习含答案
- 疫情居家主题课程设计
- 2023-2024学年四川省成都市双流区小学三年级上册语文期末试题及答案
- 2024年粤教版八年级物理下册月考试卷95
- 2024年北师大版八年级科学下册月考试卷91
- 2025年高考数学复习热搜题速递之一、二次函数及方程、不等式(2024年7月)
- 公司控股公司的协议书范本
- 2024版固定资产的转让协议书
- 2024年1月国开电大法律事务专科《企业法务》期末考试试题及答案
- 2023-2024学年河北省保定市满城区八年级(上)期末英语试卷
- 2020-2024年安徽省初中学业水平考试中考历史试卷(5年真题+答案解析)
- 上海市虹口区2023-2024学年八年级下学期期末考试语文试题
- 2024合同范本之太平洋保险合同条款
- 万用表的使用
- 废气治理设施运行管理规程
- JTS-131-2012水运工程测量规范
- 园区物业管理方案计划书
评论
0/150
提交评论