欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于DS1302数字时钟电路的设计.docx

    • 资源ID:6553490       资源大小:75.56KB        全文页数:11页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于DS1302数字时钟电路的设计.docx

    1、基于DS1302数字时钟电路的设计1 引 言从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。钟表的数字化,大力推动了计时的精确性和可靠性。在单片机构成的装置中,实时时钟是必不可少的部件。目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大

    2、,占用空间多,给其它设计带来诸多不便。本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路。其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。这些优点解决了目前常用的实时时钟所无法解决的问题。该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。2 核心芯片简介2.1 DS1302简介DS13021是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日

    3、、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。时钟可工作在24小时格式或12小时(AM/PM)格式。 DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。2.1.1 DS1302引脚功能与内部结构DS1302的引脚功能如表1所示,外形及内部结构如图1所示2:引脚号引脚名称功能1VCC

    4、2主电源2、3X1、X2振荡源,外接32768Hz晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行时钟输入端8VCC1后备电源表1 DS1302引脚功能表图1 DS1302管脚图及内部结构图2.1.2 DS1302的控制字DS1302的控制字节如图2所示: 7 6 5 4 3 2 1 01RAMA4A3A2A1A0RAM 图2 DS1302控制字节的含义控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表

    5、示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。2.1.3 DS1302的复位引脚通过把输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通控制逻辑,允许地址命令序列送入移位寄存器;其次,提供了终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。2.1.4 DS1302的数据输入输出在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS

    6、1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序如图3所示:图3 数据读写时序2.1.5 DS1302的寄存器DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。 DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态

    7、为一个8位的字节,其命令控制字为C0H-FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器 80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN时寄存器84H85H01-12或00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存

    8、器8CH8DH00-9910YEARYEAR表2 DS1302的日历、时钟寄存器及其控制字该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 致 谢本设计是在指导老师徐波和黎会鹏的悉心指导下完成的。从设计的选题,相关资料的查寻,到论文的撰写这一整个过程中,老师以其广博的知识、丰富的经验 、清晰的思路,自始至终给我以指导,使我能够顺利完成设计,他严谨的治学态度,精益求精的工作作风和孜孜不倦的求学精神令我受益匪浅。在此设计完成之际,对老师表示衷心的感谢! 参 考 文 献1 王明顺,赵德平.可涓流充电的串行实时时钟芯片DS1302及应用设计J.国外电子元器件,1997,(

    9、2)2 高性能、低功耗带RAM实时时钟芯片DS1302.PS武汉力源电子股份有限公司,19993 ZYMCU AT89S51 Datasheets4 黄明强.DS1302在单片机系统中的应用J.保定师范专科学校学报,2004,17(2)5 赵海兰,朱剑,赵祥伟.DS1302实时显示时间的原理与应用J.电子技术,2002,(1)6 邓红,张越编著.单片机实验与应用设计教程M.冶金工业出版社,2004,57 孙雪梅,范久臣.实时时钟芯片在单片机系统中的应用J.沈阳教育学院学报,2005,7(2)8 孙安青编著. AT89S51单片机实验及实践教程M9 DALLAS SEMICONDUCTOR.DS

    10、1302 Trickle Charge Timekeeping Chip10 ATMEL AT89S51.Atmel Corporation 2001 附 录附录一:设计总电路图: 附录二:程序#include reg51.h#include intrins.h/*/DS18B20最小分辨率为1/16,0.0625度,温度值2字节表示,高五位为正负,/中间七位为温度整数位,低四位为小数位。*/#define uchar unsigned char#define uint unsigned intuchar code dis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0

    11、x82,0xF8,0x80,0x90,0xff,0xbf;/* 共阳LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 - */ sbit DQ=P33;/ds18b20与单片机连接口uchar data disdata5;uint tvalue;/温度值uchar tflag; /温度正负标志void delay1ms(unsigned int ms) /延时1毫秒(不够精确的)unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; /给读脉冲信号 dat=1; DQ = 1; if(DQ) dat|=0x80; delay_

    12、18B20(4); return(dat);void ds1820wr(uchar wdata)/*写数据*/ unsigned char i=0; for (i=8; i0; i-) DQ = 0; /写脉冲信号 DQ = wdata&0x01; delay_18B20(5); DQ = 1; wdata=1; void read_temp()/*读取温度值并转换*/ uchar a,b; ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0x44);/*启动温度转换*/ ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*

    13、/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff)/正数 tflag=0; else/负数 tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数/*/void ds1820disp()/温度值显示 disdata0=tvalue/1000;/百位数 disdata1=tvalue%1000/100;/十位数 disdata2=tvalue%100/10;/

    14、个位数 disdata3=tvalue%10;/小数位 if(tflag=0 & disdata0=0) disdata0=10; if(tflag=1 & disdata0=0) disdata0=11; /数码管显示 P1=0x08; P0=dis_7disdata3; delay1ms(5); P1=0x04; P0=dis_7disdata2&0x7f; delay1ms(5); P1=0x02; P0=dis_7disdata1; delay1ms(5); P1=0x01; P0=dis_7disdata0; delay1ms(5); /*主程序*/void main() unsigned char i = 0; while(1) read_temp(); /读取温度 ds1820disp();/显示


    注意事项

    本文(基于DS1302数字时钟电路的设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开