实时时钟万年历学习笔记.pdfVIP

  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文档。上传文档
查看更多
实时时钟万年历学习笔记

实时时钟万年历学习笔记 创作时间: 2010 年 03 月 修改时间: 2011 年 05 月 作 者: 王 金 龙 一、设计简述 设计采用实时时钟芯片( HT1380或 DS1302)实现精确实时时钟,通过 51 单 片机模拟时序, 对时钟芯片内部寄存器进行读写。 另外单片机也要扫描按键, 获 取输入命令, 进行内部控制, 并输出到 LCD1602显示。本设计完成了实时时钟年 月日、时分秒的显示,并通过软件算法,获得星期和农历。最后,我们加上了定 时功能。 二、系统框图 系统通过按键输入命令,设置时间和显示状态。实时时钟由外接芯片计时输 入。由于要显示的信息比较多, 需要翻页显示,所以加了三个 LED作为页数指示。 蜂鸣器作为定时闹钟用。 LED 指示: 按键 MCU 阳历、农历、时钟 数码管显示: DS1302/ 蜂鸣器 公历:年月日,星 期 HT1380 闹钟 农历:年月日 三、软件流程 开始 HT1380 初始化并 启振 HT1380 时钟 按键扫描 数码显示 结束 四、主要软件算法 1. 计算星期几 /* 函数功能 : 输入 BCD阳历数据 , 输出 BCD星期数据 ( 只允许 1901-2099 年 ) 调用函数示例 :Conver_week(c_sun,year_sun,month_sun,day_sun) 如: 计算 2004 年 10 月 16 日 Conversion(0,0x4,0x10,0x16); c_sun,year_sun,month_sun,day_sun 均为 BCD数据 ,c_sun 为世纪标志 位 ,c_sun=0 为 21 世纪 ,c_sun=1 为 19 世纪 调用函数后 , 原有数据不变 , 读 week 得出阴历 BCD数据 */ code uchar table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; // 月修正数据 表 /* 算法 : 日期+年份 +所过闰年数 +月较正数之和除 7 的余数就是星期但如果是 在闰年又不到 3 月份上述之和要减一天再除 7 星期数为 0 */ void Conver_week(bit c,uchar year,uchar month,uchar day) {//c=0 为 21 世纪 ,c=1

文档评论(0)

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

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

1亿VIP精品文档

相关文档