22、时钟IC_DS1302应用之二……实际制做.docVIP

22、时钟IC_DS1302应用之二……实际制做.doc

  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文档。上传文档
查看更多
22、时钟IC_DS1302应用之二……实际制做

22、时钟IC_DS1302应用之二……实际制做 2009-05-07 19:42   这个电路本身还是很简单的,见下图: 元件就是DS1302、一个晶振,一个104的瓷片电源滤波电容。和98ATS52连接的线有电源5V(Vcc)、接地(GND)、SCLK、I/O、CE(RST)。共5根线。   按上面的电路图焊好后别忘了检测一直是否有短路,我检测了我的电路,电源和地之间的静态电流为50uA。   接上单片机后如图: 软件部分的编写,首先得把显示部分调试好,我用的是LCD12864,是已经调试好的可调用子程序12863put.c 下面DS1302程序部分,是根据网上用的非常多的一个DS1302子程序修改的: /**************************/ /* ds1302实时时钟C程序??? */ /**************************/ #include reg52.h #define uchar unsigned char sbit T_CLK = P1^0; /*实时时钟时钟线引脚 */ sbit T_IO = P1^1; /*实时时钟数据线引脚 */ sbit T_RST = P1^2; /*实时时钟复位线引脚 */ sbit ACC0=ACC^0; sbit ACC7=ACC^7; void Init1302(void); void v_W1302(uchar ucAddr, uchar ucDa); uchar uc_R1302(uchar ucAddr); void v_Set1302(uchar *pSecDa); void v_Get1302(uchar ucCurtime[]); /****************************************** * 名称: v_RTInputByte * 说明: * 功能: 往DS1302写入1Byte数据 * 调用: * 输入: ucDa 写入的数据 * 返回值: 无 ******************************************/ void v_WTInputByte(uchar ucDa) { uchar i; ACC= ucDa; for(i=8; i0; i--) { T_IO = ACC0; //相当于汇编中的 RRC T_CLK = 1; T_CLK = 0; ACC =ACC 1; } } /***************************************** * 名称: uchar uc_RTOutputByte * 说明: * 功能: 从DS1302读取1Byte数据 * 调用: * 输入: * 返回值: ACC ******************************************/ uchar uc_RTOutputByte(void) { uchar i; for(i=8; i0; i--) { ACC = ACC1; //相当于汇编中的 RRC ACC7 = T_IO; T_CLK = 1; T_CLK = 0; } return(ACC); } /******************************************** * 名称: v_W1302 * 说明: 先写地址,后写数据 * 功能: 往DS1302写入数据 * 调用: v_RTInputByte() * 输入: ucAddr: 控制字, ucDa: 要写的数据 * 返回值: 无 *********************************************/ void v_W1302(uchar ucAddr, uchar ucDa) { //OE=0; T_RST = 0; T_CLK = 0; T_RST = 1; v_WTInputByte(ucAddr); /* 地址,命令 */ v_WTInputByte(ucDa); /* 写1Byte数据*/ T_CLK = 1; T_RST =0; //OE=1; } /********************************************* * 名称: uc_R1302 * 说明: 先写地址,后读数据 * 功能: 读取DS1302某地址的数据 * 调用: v_RTInputByte() , uc_RTOutputByte() * 输入: ucAddr: 控制字 * 返回值: ucDa :读取的数据 **********************************************/ uchar uc_R1302(uchar ucAd

文档评论(0)

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

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

1亿VIP精品文档

相关文档