单片机电子时钟课程设计实验报告.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文档。上传文档
查看更多
单片机电子时钟课程设计实验报告

《单片机实践报告 2)显示子程序流程图 3)按键扫描子程序 4)模式查询子程序 日期显示及调整子程序与闹钟显示及调整子程序流程图与调时模式子程序大同小异。 a)日期显示及调整子程序送给R3/R4/R5的数据为日/月/年,按功能键1日期加1,按功能键2月份加1。至于数值的合法性在程序里有具体的判断。 b)闹钟显示及调整子程序送给R3/R4/R5的数据为闹钟开关值/闹钟分/闹钟时,按功能键1闹钟分加1,按功能键2闹钟时加1。至于数值的合法性在程序里有具体的判断。 5)闹钟查询子程序 六,总结设计及调试体会 硬件设计部分 首先要通过计算与参考资料等决定参数。而后通过仿真软件等调试,确定参数无误后再开始用Protel99 SE画原理图,进而生成PCB进行布板。 软件设计部分 设计软件首先要考虑要做的功能,确定出合理的算法。合理的算法不仅要可以实现功能,而且在添加功能的时候要方便灵活。有的人为了实现某种功能用了各种各样的方法来实现,结果程序结构吃死,当想要添加功能或者修改其他功能的时候,将修改程序大部分结构,也就是说要破坏程序现有的结构。 关于调试 Keil软件调试单片机程序的时候,编译通过并不代表程序是正确的。编译通过只能说明程序没有语法上的错误。进行软件仿真或者下载到开发板上进行调试,经常会出现各种各样的错误。许多超出预期效果的现象往往是一些微小错误引起的。例如没有现场保护跟恢复现场等,所以养成良好的编程习惯也很重要。有些想达成某些功能而添加的语句,实际上确一点效果也没有。举个编程中的小问题:当有按键按下时,我们都要有软件防抖。正常的方法是调用一个延时。在实际调试中,要跳过这个抖动,需要100MS左右。如果使用正常的延时,会导致按键按下时CPU100MS内无法进行其他操作,也就是说。平均1S内100MS不调用显示子程序,这样就会导致亮度降低。这时候,考虑到显示子程序一次有十几毫秒,就特别写了一个调用7次显示的子程序来作为按键防抖的延时,实际上效果也是很不错的。这个想法就是在修改了多次程序未达到想要的效果(有按键按下时显示亮度不降低)后最终想出来的办法。 最后在做完板,焊完电路后,在接通电源之前,要用万用表仔细检查电路是否有连接错,以免烧坏芯片和数码管。 五天以来的其他体会:态度要积极,不要认为很简单就不紧不慢。很多东西并不是自己设想的那么顺利,有时候一个小问题可以花上你半天甚至一天的时间。虽然自己在程序上并没遇到太大的问题,但是因为态度不够积极,对于没画过的PCB图迟迟不去下手,在周四晚上才解决。本以为周五一天可以做完板并完成整机调试,可是各种突发事件让自己措手不及。发现板来不及做完后才将程序功能进行扩展。这是我在这次实验中的一个教训,也让我明白了对于自己不能太过于自信,态度决定一切。 评语: 成绩: - 10 - 调用显示子程序 调用闹钟查询子程序 调用按键扫描子程序 调用模式查询子程序 初始化 开始 等待定时器中断 读R3数值,拆出低位并查表转成段码 送位选码 段码送P0口 保护现场 显示子程序 调用延时子程序 读R3数值,拆出高位并查表转成段码 送位选码 段码送P0口 调用延时子程序 读R4数值,拆出低位并查表转成段码 送位选码 段码送P0口 读R4数值,拆出高位并查表转成段码 送位选码 调用延时子程序 调用延时子程序 段码送P0口 读R5数值,拆出低位并查表转成段码 送位选码 调用延时子程序 段码送P0口 读R5数值,拆出高位并查表转成段码 送位选码 调用延时子程序 段码送P0口 返回 恢复现场 P1数据送累加器A并取反。取正逻辑 屏蔽高5位 P1口写1 按键扫描子程序 Y N A值为0? 存键值 调用显示延时 N ACC.0值为0? 返回 Y A值为0? Y N 模式值加1 模式值 为4? Y 模式值清零 N 模式查询子程序 走时模式设置 秒/分/时数据分别送R3/R4/R5 TR1置1 取键值送ACC N N 返回 ACC.1值为1? Y Y ACC.2值为1? 关闹钟,清键值 模式值送累加器A 模式查询子程序 N A值为0? N A值为1? A值为2? Y Y 走时模式设置 调时模式设置 Y 日期显示及调整模式设置 N 闹钟显示及调整模式设置 调时模式设置 秒/分/时数据分别送R3/R4/R5 TR1置0 取键值送ACC Y 分钟数值加1,键值清零 N ACC.1值为1? N 返回 Y ACC.2值为1? 小时数值加1,键值清零 闹钟查询子程序 Y 取闹钟开关 取闹钟数据 与当前时间一致 开闹钟 取模式值 Y Y 模式0? N N 闹钟开? N 返回

文档评论(0)

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

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

1亿VIP精品文档

相关文档