基于单片机的万年历设计-课程设计.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机的万年历设计 (计算机科学与技术) 摘要:时间是科学技术中最基本的物理量之一,无论是农业生产,还是工业自动控制,都与时间息息相关。随着科技的发展,人们生活水平不断提高,人们所关心的不仅仅是时间,还有其他一些像室内温度、农历日期、星期等和人们生活联系紧密的数据,万年历集合了定时闹铃、整点报时、温度显示、农历日期和节日的显示等,它的设计和实现对人们的生活提供了更多的方便。此次万年历设计选用的是C语言实现的,所用到的原理非常简单,他是由软件实现时间,利用外部中断,和定时计数器中断来完成的。时间的走动主要是有程序执行时的延时来完成的,设计的结果是基本完成万年历的功能。 关键字:万年历 单片机 仿真 1 选题背景 万年历是我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年的功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,实际上就是记录一定时间范围内的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起。单片机具有集成度高,通用性好,功能强特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。单片机的应用已经渗透到工业控制、家用电器、通信设备、 信息处理、尖端武器等各个领域。而随着单片机的发展,人类用于计时的工具也在不断发 展更新,单片机技术使得万年历有了新的发展方向。目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量4-5 倍以上。用最少的芯片就能实现最强大的功能,这是 将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。设计的主要:1、了解单片机技术的发展现状,熟悉万年历各模的工作原理2、选择适当的芯片和元器件确定系统电路,绘制电路原理图尤其是各接口电路3、熟悉单片机使用方法和C语言的编程规则,编写出相应模块的应用程序具有年、月、日、星期、时、分、秒校准功能Proteus?7?Professional 编译软件:Keil uVision4 开发语言:C语言 3.3.2程序流程框图 图3-1万年历程序流程图 4 详细设计 此次设计运用了C语言来实现万年历的各个功能。秒的产生是由定时器T0产生的,他把单片机晶振的时间通过累加,最后产生秒[6]。再通过秒的累加产生分钟,最后产生年。其中按键1的作用是产生中断信号,通过按键1的中断进入到调挑时间的界面,然后由第一个按键来选择要调的内容下方,把光标移过去,再通过按键2来调用子函数,实现所调内容的改变[7]。 接着又运用两个中断实现闹钟的开启和关闭,当当前时间和闹钟所设定的时间一致的时候,通过定时器中断来请求CPU中断,由CPU的响应来启动闹钟。但人们按按键的时候,又会通过外部中断1来完成脑中的关闭[8]。 4.1秒数的产生由定时器T0产生 0置10ms定时初值dc00H(2^16=65536D,dc00H=56320D) 定时时间=(65536-56320)*(1/11.0592)*12=10ms (单片机晶振f0=11.0592Mhz) 用累加的方法让定时时间累加一百次即可产生一秒时间:100*10ms=1000ms=1s T 4.2 总天数的算法首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,,否则,为。然后判断,否则,用累加法。 输出月份第一天为星期几的算法使总天数除以7取余加2得几既为星期几,若是7,则为星期日。 图3-2 主控制系统 4.5显示模块的设计 LCD1602液晶显示屏是工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)通过D0~D7的8位数据端传输数据和指令 图3-3 LCD1602引脚示意图 LCD1602液晶显示屏引脚功能如表3-1所示: 表3-1 LCD1602引脚功能 管脚1 Vss 一般接地 管脚2 Vdd 接电源(+5V) 管脚3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 管脚4 RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器 管脚5 R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 管脚6 E E(或EN)端为使能(enable)端,下降沿使能。 管脚7 DB0 底4位三态、 双向数据总线 0位 管脚8 DB1 底4位三态、 双向数据总线 1位 管脚9 DB2 底4位三态、 双向数据总线 2位 管脚10 DB3 底4位三态、 双向数据总线 3位 管脚11 DB4 高4位三态、 双向数据总线 4位 管脚12 DB5 高4位三态、 双向数

文档评论(0)

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

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

1亿VIP精品文档

相关文档