DS1302+LCD1602时钟.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文档。上传文档
查看更多
DS1302+LCD1602时钟.doc

DS1302+LCD1602时钟 实验目的效果: 做一个不怕掉电的LCD显示时钟。学习DS1302时钟芯片的读写,加强字符型液晶LCD1602的应用。在LCD屏上显示格式: 2 0 0 7 - 0 4 - 0 2 W e e k 1 T i m e : 2 0 : 2 5 : 2 3 1)按一下SW1进入时间调整,关标会闪烁 2)按一下SW2光标会在年份上闪烁,表明可以对年份进行调整,接着按SW3年份将加一,按SW4年份将减一; 2)再按一下SW2,光标闪烁移到月份上,同样按SW3月份加一,按SW4月份减一; 3)再按一下SW2,光标有下移到星期上,同样按SW3星期加一,按SW4星期减一; 4)同样的道理可以调整时,分,秒。 5)调整完毕按一下SW1,光标闪烁退出,时间调整结束。 DS1302: 1)读写时序: 2)DS1302相关寄存器: (详细DS1302资料请查看ds1302.pdf文档) 2.原理图: DS1302连接原理图 LCD1602连接原理图 3.实验板上操作: 1)用三个短路冒将SCLK-P3.5, I/O-P3.6, CE-P3.7短接起来。 2)将板上的相应拨码开关拨到拨到ON上。(建议把原来做过数码管显示的那个拨码开关全部拨到OFF那边) 3)把LCD1602液晶插到实验板上的LCD1602液晶插槽上。 (提示:程序烧进单片机后,液晶上没有显示,请调节板子上左上角那个电位器) 4)按一下SW1进入时间调整,关标会闪烁 按一下SW2光标会在年份上闪烁,表明可以对年份进行调整,接着按SW3年份将加一,按SW4年份将减一; 再按一下SW2,光标闪烁移到月份上,同样按SW3月份加一,按SW4月份减一; 再按一下SW2,光标有下移到星期上,同样按SW3星期加一,按SW4星期减一; 同样的道理可以调整时,分,秒。 调整完毕按一下SW1,光标闪烁退出,时间调整结束。 4.实物连接图如下: C语言程序: #include AT89X51.h #include intrins.h #define HIGH 1 #define LOW 0 #define TRUE 1 #define ZERO 0 #define MSB 0x80 #define LSB 0x01 // ds1302 PreDefinition #define DS1302_WP 0x8E #define DS1302_RESET RST=LOW;SCL=LOW;RST=HIGH #define DS1302_WP_ENABLE Write_Ds1302(DS1302_WP,0X00) #define DS1302_WP_DISENABLE Write_Ds1302(DS1302_WP,0x00) #define LCDPORT P0 sbit SCL = P3^5;// DS1302 Serial-Clock Input pin 5 sbit SDA = P3^6;// DS1302 Serial-Data Input pin 6 sbit RST = P3^7;// DS1302 Chip-Seclet Input pin 7 sbit RS=P1^0; sbit RW=P1^1; sbit EN=P1^2; code unsigned char set_rtc_code[7]={0x07,0x03,0x29,0x02,0x21,0x07,0x40}; code unsigned char write_rtc_address[7]={0x8c,0x88,0x86,0x8a,0x84,0x82,0x80}; code unsigned char read_rtc_address[7]={0x8d,0x89,0x87,0x8b,0x85,0x83,0x81}; unsigned char read_rtc_code[7]; //DS1302读出信息(年份,星期,时间)暂存数组, /********1ms延时子程序***********/ delay_nms(unsigned int n) { unsigned int i; unsigned char j; for(i=0;in;i++) for(j=0;j120;j++) ; //空操作 } //*************LCD1602驱动程序**************

文档评论(0)

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

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

1亿VIP精品文档

相关文档