单片机电子时钟课程设计实验报告范文.docx
《单片机电子时钟课程设计实验报告范文.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟课程设计实验报告范文.docx(8页珍藏版)》请在冰豆网上搜索。
单片机电子时钟课程设计实验报告范文
《单片机实践报告》
题目电子时钟设计
专业电子信息工程
学生姓名王健吉
准考证号
指导教师
2014年10月
一,课程设计的目的和意义
课程设计的目的与意义在于让我们将理论与实践相结合。
培养我们综合运用电子课程中的理论知识解决实际性问题的能力。
让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
二,课程设计的基本任务
利用89S51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入、蜂鸣报警等知识,设计一款单片机和简单外设控制的电子时钟。
三,主要功能要求
1)使用6位数码管,前两位显示小时(24小时制),中间两位显示分钟,后两位显示秒。
时钟每走1秒,秒数码管加1显示,60秒后分钟数码管加1显示,60分钟后小时数码管加1显示。
2)设计89S51单片机最小系统
3)掌握使用Protel99绘制原理图和布板的过程、方法和技巧。
4)掌握单片机开发软件(KeilC51或Wave)的使用和调试。
5)编写并调试单片机定时及其中断程序,以实现电子时钟的功能。
6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。
7)掌握硬件和软件联合调试的方法。
8)完成系统硬件电路的设计和制作。
9)完成系统程序的设计。
10)完成整个系统的设计、调试和制作。
11)完成课程设计报告。
四,整体设计框图及整机概述
整体设计框图
整机概述:
1)开机为走时模式,正常显示时间。
在此模式下整点闹时,定点闹时有效。
2)共设置3个按键,分别为模式键、功能键1、功能键2。
按动模式键,模式将在‘走时/调时/日期显示及调整/闹钟显示及调整’4个模式下切换。
3)走时模式下,按动功能键1/功能键2停止闹时。
4)调时模式下,功能键1调整分钟数值,功能键2调整小时数值。
5)日期显示及调整模式下,功能键1调整日期数值,功能键2调整月份数值。
6)闹钟显示及调整模式下,功能键1调整闹钟分钟数值,功能键2调闹钟时钟数值。
五,软件流程图和流程说明
1)主程序流程图
流程图说明
初始化:
包括定时器赋
初值,初始化各内存单
元。
开定时器中断,开
CPU中断,送段码表头
地址给DPTR。
2)显示子程序流程图
3)按键扫描子程序
4)模式查询子程序
日期显示及调整子程序与闹钟显示及调整子程序流程图与调时模式子程序大同小异。
a)日期显示及调整子程序送给R3/R4/R5的数据为日/月/年,按功能键1日期加1,按功能键2月份加1。
至于数值的合法性在程序里有具体的判断。
b)闹钟显示及调整子程序送给R3/R4/R5的数据为闹钟开关值/闹钟分/闹钟时,按功能键1闹钟分加1,按功能键2闹钟时加1。
至于数值的合法性在程序里有具体的判断。
5)闹钟查询子程序
六,总结设计及调试体会
硬件设计部分
首先要通过计算与参考资料等决定参数。
而后通过仿真软件等调试,确定参数无误后再开始用Protel99SE画原理图,进而生成PCB进行布板。
软件设计部分
设计软件首先要考虑要做的功能,确定出合理的算法。
合理的算法不仅要可以实现功能,而且在添加功能的时候要方便灵活。
有的人为了实现某种功能用了各种各样的方法来实现,结果程序结构吃死,当想要添加功能或者修改其他功能的时候,将修改程序大部分结构,也就是说要破坏程序现有的结构。
关于调试
Keil软件调试单片机程序的时候,编译通过并不代表程序是正确的。
编译通过只能说明程序没有语法上的错误。
进行软件仿真或者下载到开发板上进行调试,经常会出现各种各样的错误。
许多超出预期效果的现象往往是一些微小错误引起的。
例如没有现场保护跟恢复现场等,所以养成良好的编程习惯也很重要。
有些想达成某些功能而添加的语句,实际上确一点效果也没有。
举个编程中的小问题:
当有按键按下时,我们都要有软件防抖。
正常的方法是调用一个延时。
在实际调试中,要跳过这个抖动,需要100MS左右。
如果使用正常的延时,会导致按键按下时CPU100MS内无法进行其他操作,也就是说。
平均1S内100MS不调用显示子程序,这样就会导致亮度降低。
这时候,考虑到显示子程序一次有十几毫秒,就特别写了一个调用7次显示的子程序来作为按键防抖的延时,实际上效果也是很不错的。
这个想法就是在修改了多次程序未达到想要的效果(有按键按下时显示亮度不降低)后最终想出来的办法。
最后在做完板,焊完电路后,在接通电源之前,要用万用表仔细检查电路是否有连接错,以免烧坏芯片和数码管。
五天以来的其他体会:
态度要积极,不要认为很简单就不紧不慢。
很多东西并不是自己设想的那么顺利,有时候一个小问题可以花上你半天甚至一天的时间。
虽然自己在程序上并没遇到太大的问题,但是因为态度不够积极,对于没画过的PCB图迟迟不去下手,在周四晚上才解决。
本以为周五一天可以做完板并完成整机调试,可是各种突发事件让自己措手不及。
发现板来不及做完后才将程序功能进行扩展。
这是我在这次实验中的一个教训,也让我明白了对于自己不能太过于自信,态度决定一切。
评语:
成绩: