实验 串行实时时钟实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验 串行实时时钟实验

实验三 串行口实时时钟实验 实验目的 1、了解实时时钟电路工作原理 2、了解串行时钟芯片的控制方法 3、掌握DS1302串行时钟芯片的使用方法 实验仪器 单片机开发板、万利仿真机、稳压电源、计算机 实验原理 DS1302串行时钟芯片工作原理 DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。芯片内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。引脚图如图4-77所示。 图4-77 DS1302引脚图 DS1302的控制字如下所示。 DS1302的控制字最高位必须为1;D6位:1:读写内部通用存储器,0:读写时钟存储器;随后是地址位。最低位是读写控制:1代表读,0:代表写。 DS1302内部日历数据存储器位定义如图4-78所示。 图4-78 DS1302内部日历数据存储器结构图 CH:时钟停止位(CH=0振荡器工作允许,CH=1振荡器停止) 寄存器2的第7位:12/24小时标志(bit7=1,12小时模式,bit7=0,24小时模式) 寄存器2的第5位:AM/PM定义(AP=1下午模式,AP=0上午模式) WP:写保护位(WP=0 寄存器数据能够写入,WP=1寄存器数据不能写入) TCS:涓流充电选择(TCS=1010使能涓流充电,TCS=其它禁止涓流充电) DS:二极管选择位(DS=01一个二极管,DS=10两个,DS=00或11,充电功能也被禁止) 从图中可以看出,第1脚电源经过开关、二极管、电阻对接在第8脚的备用电源进行充电。调整涓流充电控制寄存器的值可以控制涓流充电方式。 DS1302芯片读写时序 DS1302采用三线串行口通迅,占用IO口少。数据在SCLK的上升沿有效。每个SCLK正脉冲锁存一位数据。如图4-80所示。 图4-80 DS芯片读写时序图 DS1302支持单字节读写和多字节读写方式。单字节读写时,单片机先发出读写的地址,然后再读写一字节数据;多字节读写时,单片机先发出读写的地址,然后再连续读写多个字节。如图4-81所示。 图4-82 DS1302读数据帧结构 DS1302应用电路 51单片机没有SPI接口,只能用普通IO口来模拟读写时序。将芯片IO口与单片机连接,电容C1用于备份电源,电源断电时为DS1302提供电能。DS1302的复位端与74LS138的Y6连接,当P2=0CH时,复位端有效。电路如图4-83所示。 图4-83 DS1302应用电路 DS1302应用程序设计 DS1302应用程序设计包含:DS1302串口驱动程序、DS1302接口程序等。DS1302串口驱动程序就是串口发送、接收一个字节数据程序。DS1302接口程序包含:时钟启动/停止、时间日期设置、读时间日期、充电方式设计等。根据原理说明,我们可以设计出一部分程序。流程序图如图4-84所示。 图4-84 DS1302应用程序流程图 实验内容 #includereg52.h #includeintrins.h #define uint unsigned int #define uchar unsigned char #define data 1000 sbit LEDCLK=P3^4; sbit LEDDIN=P2^3; uchar code ledtable[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F, 0x01,0x09,0x11,0xC1,0x63,0x85,0x61,0x71,0xFD}; uchar dispbuf[8]; uint msecond=0; uchar wei=0; uchar timebuf[3]={0x12,0x34,0x56}; #define second timebuf[0] #define minute timebuf[1] #define hour timebuf[2] #define NOP3() _nop_();_nop_();_nop_() /**DS1302与MCU连接的各端口定义*****************/ sbit DS_IO=P3^5;//DS1302数据口 sb

文档评论(0)

fcp940 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档