网站大量收购闲置独家精品文档,联系QQ:2885784924

【精品】毕业设计:基于单片机的电子日历时钟.doc

【精品】毕业设计:基于单片机的电子日历时钟.doc

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一 课程设计题目: 电子日历时钟 二 实现的功能: 基本功能: (1) 显示北京时间,并且能够校准时间; (2) 程序使用汇编语言; (3) 显示的时、分、秒之间以及年、月、日间以小数点分隔; (4) 显示公历日期,并且能够校准日期; 发挥功能: (5) 运动秒表; (6) 闹钟功能; (7) 自动整点报时。 三 课程设计的目的: 课程标志性内容的设计理解和综合运用,对所学内容进行一次实操,学以致用。 四、设计方案说明 1、硬件部分 采用6位LED数码管显示日期或者时间。 显示器的驱动采用 “动态扫描驱动”, 且采用“一键多用”的设计方案,系统电路大为简化。使用小数点表示闹钟设置状态; 电路连接使用PCB,使电路连接简洁美观 2、软件部分 “时钟”基准时间由单片机内部的定时中断提供,考虑因素:定时时间是“秒”的整除数,且长短适宜。最长不能超过16位定时器的最长定时时间;最短不能少于中断服务程序的执行时间。基准时间越短,越有利于提高时钟的运行精确度。基准时间定为0.05秒。 用一个计数器对定时中断的次数进行计数,由基准时间为0.05秒知计数值为20即可实现实现“秒”定时,同理进行“分”﹑“时”定时,以及“日”﹑“月”﹑“年”定时。 LED 数码管显示器采用“动态扫描驱动”考虑问题:驱动信号的维持时间必须大于“起辉时间”(电流大起辉时间短),而驱动信号的间歇时间必须小于“余辉时间”(电流大余辉时间长),但驱动电流大小受硬件电路能力和LED数码管极限功耗的制约。 动态扫描显示方式在更新显示内容时,考虑到因LED数码管余辉的存在可能会造成显示字符的模糊,所以新内容写入显示器之前将所有的LED数码管熄灭。 关于自动识别“月大﹑月小”和“平年﹑润年”问题的考虑 月大和月小 2月另外计算; 4月﹑6月﹑9月﹑11 月为月小30天,其余为月大31天。 平年和润年(年号能被4整除的就是润年) 平年的2月为28天; 润年的2月为29天。 五、使用说明 实物图请参照后面附带图片,从左至右为按键K2,K1,K0,以两个LED显示器为一组,左中右显示时分秒或者年月日,还有闹钟和秒表 K2:复位 K1:设置闪烁 K0:切换时间/日期或者调整时间/日期 初始状态:接上电源之后,日期默认为10年6月21日,时间为0时0分 秒,闹钟2点整但默认关闭,秒表为0状态 (1)显示状态切换:不断按K0键就会依次循环显示下面的状态 初始状态时间 日期 闹钟时间 闹钟状态 秒表状态 (2)调节时间,日期:按K0键切换到想要调节的显示状态,再按K1键选择要修改的位,不断按K1键会按左闪烁.中闪烁.右闪烁.确定.四个状态切换,闪烁的位可以修改,按K0键可以实现增加,不能递减,例如要调慢时间要按到循环到较慢时间。 (3)闹钟使用:闹钟默认响的时间为一分钟,闹钟的时间设置同时间日期的调节,只需把状态切换到闹钟时间的状态,闹钟的开关先按K0键切换到屏幕显示为OFF的状态,如下: 再按K1可切换到开状态,如下图,再按K1可关闭,不断循环 秒表:K0键按4下就可切换到秒表状态,出示为0,此时按下K1键就可开始计时,再按一下K1键可停止,此时K1为秒表开关,按K0键可再切换显示其他。 六、硬件连接图 1、原理图 2、pcb图 3、实物图 七、程序流程图: 主程序 定时器0中断子程序 外部中断0子程序 外部中断1子程序 八、性能测试与故障排查 1、硬件部分 问题:断路。 现象:程序下载完之后可以工作但是6个LED显示器有2个没亮。 分析:因为其他几个显示器完全正常,这两个则完全没亮,所以推断是位选的线路出故障。 检测:用万用表测试各点电压,着重测试两条位选线路的断路与短路情况,最终发现两处断路。 解决:焊锡接上,最终全亮 2、软件部分 偶数组实现基础功能的程序老师已经提供,该程序基本没有多大的问题,就是里面的几个参数需要修改,同时还有一个小bug。 修改一:由于提供的程序所默认采取的晶振计数频率是6MHz,但是所提供的现实原件则是12MHz,所以根据晶振的不同,定时器的定时时间变为0.05s。按照该程序直接跑的话,计数时间为0.5s。这就需要设置计数次数TICK_CNT为#14H,即0.05s*20=1s。代码段:MOV TICK_CNT,#14H 修改二:程序默认设置的外部中断延时过短,导致操作过于“灵敏”,也即按键K0、K1按下时,跳变过快。这里所说的延时是中断子程序EX0_INT和EX1_INT中的语句 LCALL DIS_DELAY。解决这个情况只需修改DELAY 次数,则DIS_DELAY: MOV D_CNT_DIS,#10H。 修改三:观察实物电路工作发现每一位:LED数码管的小数点都是亮的,没有起到用小数点区分时间/日期中的时分秒/年月日。

您可能关注的文档

文档评论(0)

14576 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档