




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DS1302的驱动一、芯片介绍DALLAS公司推出的专用时钟芯片DS1302内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒分时日星期月年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信,DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,采用普通32.768kHz晶振。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:RES 复位;I/O 数据线;SCLK串行时钟,其引脚图如图2-8所示。图2-8 DS1302引脚图其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入输出端,SCLK始终是输入端。1) DS1302的控制字节 DS1302 的控制字如图2-9所示。1RAMA4A3A2A1A0W/CK/R图2-9 DS1302 的控制字节控制字节的最高有效位必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。2) DS1302的数据输入输出 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。3) DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字如表2-12所示。表2-12 日历、时间寄存器及其控制字寄存器名称命令字取值范围各位内容写操作读操作76543210秒寄存器80H81H059CH秒十位秒个位分寄存器82H83H0590分十位分个位时寄存器84H85H023或012T010时时个位AP日寄存器86H87H028,29,30,3100日十位日个位月寄存器88H89H112000月月个位周寄存器8AH8BH1700000星期年寄存器8CH8DH099年十位年个位其中CH为时钟停止位,CH=0振荡器工作允许;CH=1振荡器工作停止。T为12小时制与24小时制选择位,T=0为24小时制;T=1为12小时制。AP为12小时制的上下午指示位,AP=0为上午;AP=1为下午。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。二、驱动程序分析接口定义:sbit IO=P34;/定义P3.4为DS1302的数据输出输入口;sbit RST=P31;/定义P3.1为DS1302的复位信号输入口;sbit CLK=P35; /定义P3.5为DS1302的串行时钟信号输入口。1) DS1302寄存器写操作SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。在对寄存器写操作是应先指明寄存器的地址。各寄存器的地址详见表2-12。DS1302写操作驱动函数代码如下:void WriteByte_1302(uchar d)uchar i;RST=1;/启动写操作for(i=0;i=1;寄存器写操作驱动函数代码如下:void D_W1302(uchar add,uchar Data)RST=0;CLK=0;delay_us(10);RST=1;WriteByte_1302(add);/指明寄存器地址WriteByte_1302(Data);/写寄存器CLK=1;RST=0;2) DS1302寄存器读操作 SCLK时钟的下降沿时,数据被读出DS1302,数据输入从低位即位0开始。在对寄存器读操作时应先指明寄存器的地址。各寄存器的地址详见表2-12。DS1302读操作驱动函数:uchar ReadByte_1302()uchar i;uchar rdata=0x00;IO=1;RST=1;for(i=0;i=1;if(IO) rdata|=0x80;return(rdata);寄存器读操作驱动函数代码如下:uchar D_R1302(uchar add)uchar Data;RST=0;CLK=0;delay_us(1);RST=1;WriteByte_1302(add);Data=ReadByte_1302();CLK=1;RST=0;return(Data);2) DS1302读取时间和设置时间功能模块从DS1302读取时间是通过void gettime_1302(uchar times12)实现的。入口参数uchar times12用来存储从DS1302读取的时间和日期,从数据第0位开始分别存储秒、分、时、日、月、星期、年的个位和十位。其程序代码如下:void gettime_1302(uchar times14)uchar i,j=0;uchar time6;uchar add=0x81;for(i=0;i=4;times2*i+1=(timei&0x0f);对DS1302设置时间由void set_1302(uchar *p)来实现,入口参数uchar *p设置时间数组首地址指针。数组p7共7个元素分别对应秒、分、时、日、月、星期、年。程序代码如下:void set_1302(uchar *p)uchar i;uchar add=0x80;D_W1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遗赠协议书与遗嘱
- 夫妻互不干涉协议书模板
- 中药炮制工职业健康技术规程
- 浮选药剂工标准化技术规程
- 2026届天津市蓟州区第三联合区数学七上期末统考试题含解析
- 2026届云南省保山市施甸县七年级数学第一学期期末综合测试试题含解析
- 2025标准借款合同范本样式是怎样的
- 2026届安徽省合肥五十中学数学九年级第一学期期末达标检测模拟试题含解析
- 专项安全知识培训课件
- 2026届宁夏银川市兴庆区唐徕回民中学七年级数学第一学期期末综合测试试题含解析
- 2025年国学与传统文化考试试题及答案
- 仪表参数调校规程
- 2024年10月自考00144企业管理概论真题及答案
- 如何预防呼吸机相关性肺炎
- 脑梗死中西医结合诊疗指南
- 殷商甲骨占卜制度-洞察及研究
- 多孔中空球形二氧化硅行业深度研究分析报告(2024-2030版)
- 2025至2030年中国洗护用品行业市场行情监测及前景战略研判报告
- 无人机操控与维护专业教学标准(中等职业教育)2025修订
- 2025年内蒙古鄂尔多斯市国源矿业开发有限责任公司招聘笔试参考题库含答案解析
- 2025年广州市越秀区九年级中考语文一模试卷附答案解析
评论
0/150
提交评论