基于DS1302时钟芯片的电子万年历设计.docVIP

基于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文档。上传文档
查看更多
基于DS1302时钟芯片的电子万年历设计.doc

基于DS1302时钟芯片的电子万年历设计   【摘 要】本文阐述了一种基于DS1302时钟芯片的电子万年历软硬件设计方法。绘制了电路图,并给出了该电子万年历的部分C语言源代码。   【关键词】DS1302;时钟芯片;单片机   0.引言   时钟芯片被广泛应用于需要时间信息的电路设计领域中。当今市场上的时钟芯片种类繁多,比如DS1302、DS12C887、PCF8485、SB2068等。其中DS1302具有价格低、功耗小、易操作等优点,故本文选用DS1302作为本次设计的时钟芯片。   1.电路连接   电路连接图如图1所示,主要包括STC89C52单片机、DS1302、12864液晶屏和3个独立按键等电子元器件。   1.1 DS1302简介及其与单片机的接口电路   DS1302是DALLAS公司推出的涓流充电时钟芯片,可提供秒、分、时、日、月、年、周等时间信息,通过串行接口与单片机进行通信,并且仅需用到3个口线,功率小于1mW,被广泛应用于便携式仪器及其他电池供电的仪器仪表。   下面阐述DS1302的电路连接问题:DS1302一共有8个管脚,其中第1脚接5V电源,4脚接地;2脚和3脚跨接一个32.768KHz的无源晶振,该晶振作为DS1302的正常工作提供时钟脉冲;8脚为外部备用电源输入端,本文使用一个3.3V的纽扣电池作为备用电源,当系统掉电后,备用电源立即给DS1302供电,可以避免DS1302内部时间信息的丢失;5脚、6脚、7脚为DS1302的3个控制端,分别接至单片机的P3.7、P3.6、P3.5口,5脚REST为复位端,低电平有效,6脚I/O为数据输入输出口,7脚CLK为串行时钟信号输入端,该时钟信号由单片机提供。   1.2 独立按键接口电路   本文在设计时使用到了3个独立按键,其一端共同接地,另外一端分别接至单片机P1.0、P1.1、P1.2。当按键被按下时,对应的单片机端口将出现低电平,单片机通过判断该低电平信号来获知相应按键被按下,本文通过这3个按键来设定时间。   1.3 12864液晶屏接口电路   12864液晶屏接口部分一共有20只管脚,1脚接电源地,2脚为液晶内部驱动芯片电源端;3脚为液晶面板电源输入端,该端口经过1个10K可调电阻接至5V电源端,当改变可调电阻大小时,3脚将得到不同的电压,从而起到调节液晶面板对比度的作用;4脚RS、5脚RW、6脚EN为液晶的三个控制端,其中RS为并行数据/指令选择端,RW为液晶读/写选择端,EN为使能端(高电平有效);7脚―14脚(D0―D7)为液晶的数据端,接至单片机的P0口,与单片机做数据交互。15脚PSB为并行/串行数据通信格式选择端,本文将其固定接高电平,意为选择并行数据通信方式;19脚为液晶背光正极,20脚为液晶背光负极。   2.DS1302内部时钟寄存器分析   图2是DS1302内部关于时钟的寄存器,现在以第一行为例加以说明。第一行所述为“秒”寄存器,其读操作地址为0x81h,写操作地址为0x80h,“秒”寄存器第7位(BIT7)为时钟暂停标志位,当该位为高电平时,时钟震荡器停止工作,DS1302转为节能休眠状态,反之,DS1302重新投入运行。第4位-第6位(BIT4-BIT6)为“十秒”位,第0位-第3位(BIT0-BIT3)为“秒”位,秒的取值范围为“00-59”。其他行可以此类推或参照DS1302官方数据手册即可,本文不再赘述。   3.DS1302单字节读操作时序分析   根据DS1302读操作时序图可知,DS1302要完成一个字节的读操作需经过以下过程:首先CE端(即前文所述的REST端)应变为高电平,此时DS1302进入正常工作状态,随时准备读/写数据操作。数据写入操作发生在SCLK端上升沿到来时,数据读出操作发生在SCLK端下降沿到来时。在初始的8个SCLK周期中,先向DS1302写入读命令字节,表明此时为写操作,接着跟上要写的寄存器地址,表明需要读出的是什么位的信息(如“秒”位、“分”位、“时”位等),然后在后面的8个SCLK周期中,从低位到高位依次读出对应寄存器的数值(如“秒”数、“分”数、“时”数等)[1]。   4.程序编写   读写操作是DS1302最关键的两种操作,本文编写了完整的DS1302读和写操作程序,如下所示,并给出程序注释。   4.1 DS1302读操作程序   unsigned char DS1302ReadByte()//单字节读操作   {   unsigned char i,date;   delay2us();//延时2微秒   for(i=0;i8;i++)   {   date=1;//将读出的数据右移一位   if(IO

文档评论(0)

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

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

1亿VIP精品文档

相关文档