- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)