51单片机电子时钟课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理与应用》课程设计
总结报告
题目:单片机电子时钟(带秒表)的设计
设计人员:张保江江润洲
学号:2012197213 2012118029
班级:自动化1211
指导老师:阮海容
目录
1.题目与主要功能要求 (2)
2.整体设计框图及整机概述 (3)
3.各硬件单元电路的设计、参数分析及原理说明 (3)
4.软件流程图和流程说明 (4)
5.总结设计及调试的体会 (10)
附录
1.图一:系统电路原理图 (11)
2.图二:系统电路PCB (12)
3.表一:元器件清单 (13)
4.时钟程序源码 (14)
题目:单片机电子时钟的设计与实现
课程设计的目的和意义
课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
课程设计的基本任务
利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。
主要功能要求
最基本要求
1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。
2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。
4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。
5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。
6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。
7)掌握硬件和软件联合调试的方法。
8)完成系统硬件电路的设计和制作。
9)完成系统程序的设计。
10)完成整个系统的设计、调试和制作。
11)完成课程设计报告。
基本要求
1)实现最基本要求的1~10部分。
2)键盘输入可以控制电子时钟的走时/调试。
3)设计键盘输入电路和程序并调试。
4)掌握键盘和显示配合使用的方法和技巧。
提高发挥部分
1)另设三个键,分别作小时、分、秒的减1调校。
2)在以上设计的基础上,修改程序制作一个电子秒表。分、秒各占用2位显示,1/10秒、1/100秒各占用1位显示。设定二个键分别作启动/停止、清零(清零应在停止后有效)。
3)在做完(2)后,将时钟与秒表合二为一,并且在同时使用时互不影响,即可在时钟与秒表之间任意切换,而不影响走时、计秒。
整体设计框图及整机概述
整体设计框图
整机概述
1)开机为走时模式,正常显示时间。在此模式下,时钟可调。
2)共设置7个按键,分别为模式键、功能键、加一键、减一键、复位键、秒表启动键、秒表复位键。按动模式键,模式将在‘走时/调时/显示及秒表显示及调整’2个模式下切换。
3)在时钟模式下,功能键选择是正常走时,还是进入调试(时、分、秒)模式。
4)按动加一键可以将值(时、分、秒)加一。
5)按动减一键可以将值(时、分、秒)减一。
6)按动秒表中开始/暂停按键可以随时控制秒表的开始和停止。
7)按动秒表中清零按键时,秒表计的数就会被清除(只有在秒表停止了以后)。
8)按下复位键后,无论是任何状态都会从新开始。
9)开机时钟与闹钟都为00:00:00。
各硬件单元电路的设计、参数分析及原理说明
电源电路
元件有限没有制作电源电路部分。使用9V的电池经过7805稳压后进行供电。
按键
参考书本P232的键盘接口电路原理图,P3口(除去P3.6)接的是键盘按键。当按键按下后,P3口被拉成低电平,给单片机一个信号,使单片机产生一个中断。单片机再指令相应的P0口,P2口产生变化。
单片机最小系统
参考实验指导书与课本及网络资料设计按键电平复位。
LED数码管
首先P0口作为段码输出。由于P0口输出级无上拉电阻,故需添加一排阻为其上拉电阻。其次采用共阳极数码管。段码端为低电平时导通LED,此时数码管向89S51芯片P0口灌电流,为防止芯片烧坏,还需加1个1 KΩ的限流电阻。考虑到数码管的亮度问题,采用了PNP 三极管做驱动电路。基极接上1 KΩ电阻后再与P2口相连(P2.0~P2.5)进行位选。发射极接5V电源,集电极接数码管位选。
软件流程图和流程说明
软件流程图Array 1)主程序流程图
流程图说明
初始化:包括定时器赋
初值,初始化各内存单
元。开定时器中断,开
CPU中断。
时间显示及调整子程序与秒表显示及调整子程序流程图与调时模式子程序大同小异。
总结设计及调试体会
硬件设计部分:首先要通过计算与参考资料等决定参数。而后通过仿真软件等调试,确定参数无误后再开始用AD画原理图,进而生成PCB进行布板。在焊板子的时候,也出现了问题,不小心将7805焊成了7905,结果又调试了一个时间。
软件设计部分:设计软件首先要考虑要做的功能,确定出合理的算法。合理的算法不仅要可以实现功能,而且在添加功能的时候要方便灵活。有的人为了实现某种功能用了各种各样的方法来实现,结果程序结构吃死,当想要添加功能或者修改其他功能的时候,将修改程序大部分结构,也就是说要破坏程序现有的结构。
关于调试:Keil软件调试单片机程序的时候,编译通过并不代表程序是正确的。编译通过只能说明程序没有语法上的错误。进行软件仿真或者下载到开发板上进行调试,经常会出现各种各样的错误。许多超出预期效果的现象往往是一些微小错误引起的。例如没有现场保护跟恢复现场等,所以养成良好的编程习惯也很重要。有些想达成某些功能而添加的语句,实际上确一点效果也没有。举个编程中的小问题:当有按键按下时,我们都要有软件防抖。正常的方法是调用一个延时。在实际调试中,要跳过这个抖动,需要100MS左右。如果使用正常的延时,会导致按键按下时CPU100MS内无法进行其他操作,也就是说。平均1S内100MS不调用显示子程序,这样就会导致亮度降低。这时候,考虑到显示子程序一次有十几毫秒,就特别写了一个程序来作为按键防抖的延时,实际上效果也是