51单片机电子时钟课程设计报告实验报告

上传人:re****.1 文档编号:494809020 上传时间:2023-03-02 格式:DOCX 页数:24 大小:591.83KB
返回 下载 相关 举报
51单片机电子时钟课程设计报告实验报告_第1页
第1页 / 共24页
51单片机电子时钟课程设计报告实验报告_第2页
第2页 / 共24页
51单片机电子时钟课程设计报告实验报告_第3页
第3页 / 共24页
51单片机电子时钟课程设计报告实验报告_第4页
第4页 / 共24页
51单片机电子时钟课程设计报告实验报告_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《51单片机电子时钟课程设计报告实验报告》由会员分享,可在线阅读,更多相关《51单片机电子时钟课程设计报告实验报告(24页珍藏版)》请在金锄头文库上搜索。

1、单片机原理与应用课程设计总结报告题目:单片机电子时钟(带秒表)的设计设计人员:张保江江润洲号:班 级:自动化 1211指导老师:1.题目与主要功能要求 2.整体设计框图及整机概述3各硬件单元电路的设计、参数分析及原理说明34.软件流程图和流程说明5.总结设计及调试的体会10附录111.图一:系统电路原理2.二:系统电路 PCB123表一:元器件清单134时钟程序源码14题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理 论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识 进一步加深认

2、识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面 得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个 坚实的基础。课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制主的电要子时功钟。能要求最基本要求1)使用 MCS-51 单片机设计一个时钟。要求具有6 位 LED 显示、3个按键输入。2)完成硬件实物制作或使用 Pruteus 仿真(注意位驱动应能提供足够的电流)。3)6位 LED 数码管从左到右分别显示时、分、秒(各占用 2 位),采用 24 小时标准计时制。开始

3、 计时时为000000,到235959 后又变成000000。4)使用 3 个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加 1。 分、 秒加到59 后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位 进位 (例如分加到59 后变为00,但小时不发生改变)。5)软件设计必须使用 MCS-51 片内定时器,采用定时中断结构,不得使用软件延时法,也 不得使用其他时钟芯片。6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。8)完成系统硬件电路的设计和制作。9)完成系统程序的设计。10)完成整个系统的设计

4、、调试和制作。11)完成课程设计报告。基本要求1)实现最基本要求的 110部分。2)键盘输入可以控制电子时钟的走时/调试。3)设计键盘输入电路和程序并调试。4)掌握键盘和显示配合使用的方法和技巧。提高发挥部分1)另设三个键,分别作小时、分、秒的减1 调校。2)在以上设计的基础上,修改程序制作一个电子秒表。分、秒各占用2位显示,1/10秒、 1/100秒各占用1位显示。设定二个键分别作启动/停止、清零(清零应在停止后有效)。3)在做完(2)后,将时钟与秒表合二为一,并且在同时使用时互不影响,即可在时钟与秒表之 间任意切换,而不整响数码管整体设计框图整机概述1)开机为走时模式,正常显示时间。在此模

5、式下,时钟可调。2)共设置7个按键,分别为模式键、功能键、加一键、减一键、复位键、秒表启动键、秒表复位键。按动模式键,模式将在走时/调时/显示及秒表显示及调整2个模式下切换。3)在时钟模式下,功能键选择是正常走时,还是进入调试(时、分、秒)模式。4按动加一键可以将值(时、分、秒)加一。5)按动减一键可以将值(时、分、秒)减一。6)按动秒表中开始/暂停按键可以随时控制秒表的开始和停止。7)按动秒表中清零按键时,秒表计的数就会被清除(只有在秒表停止了以后)8)按下复位键后,无论是任何状态都会从新开始。9)开机时钟与闹钟都为00:00: 00。各硬件单元电路的设计、参数分析及原理说明电源电路元件有限

6、没有制作电源电路部分。使用9V的电池经过7805稳压后进行供电。按键参考书本P232的键盘接口电路原理图,P3 口(除去P3.6)接的是键盘按键。当按键按下后, P3 口被拉成低电平,给单片机一个信号,使单片机产生一个中断。单片机再指令相应的P0 口,P2 口产生变化。单片机最小系统参考实验指导书与课本及网络资料设计按键电平复位。首先P0 口作为段码输出。由于P0 口输出级无上拉电阻,故需添加一排阻为其上拉电阻。 其次采用共阳极数码管。段码端为低电平时导通LED,此时数码管向89S51芯片P0 口灌电 流,为防止芯片烧坏,还需加1个1KQ的限流电阻。考虑到数码管的亮度问题,采用了 PNP 三极

7、管做驱动电路。基极接上1 KQ电阻后再与P2 口相连(P2.0P2.5)进行位选。发射极 接5V电源,集电极接数码管位选。等待定时器中4斤时间显示及调整子程序与秒表显示及调整子程序流程图与调时模式子程序大同小异。总结设计及调试体会硬件设计部分:首先要通过计算与参考资料等决定参数。而后通过仿真软件 等调试,确定参数无误后再开始用 AD 画原理图,进而生成 PCB 进行布板。在焊 板子的时候,也出现了问题,不小心将7805 焊成了7905,结果又调试了一个时 间。软件设计部分:设计软件首先要考虑要做的功能,确定出合理的算法。合理 的算法不仅要可以实现功能,而且在添加功能的时候要方便灵活。有的人为了

8、实 现某种功能用了各种各样的方法来实现,结果程序结构吃死,当想要添加功能或 者修改其他功能的时候,将修改程序大部分结构,也就是说要破坏程序现有的结 构。关于调试:Keil软件调试单片机程序的时候,编译通过并不代表程序是正确 的。编译通过只能说明程序没有语法上的错误。进行软件仿真或者下载到开发板 上进行调试,经常会出现各种各样的错误。许多超出预期效果的现象往往是一些 微小错误引起的。例如没有现场保护跟恢复现场等,所以养成良好的编程习惯也 很重要。有些想达成某些功能而添加的语句,实际上确一点效果也没有。举个编 程中的小问题:当有按键按下时,我们都要有软件防抖。正常的方法是调用一个 延时。在实际调试

9、中,要跳过这个抖动,需要100MS左右。如果使用正常的延 时,会导致按键按下时CPU100MS内无法进行其他操作,也就是说。平均1S内 100MS 不调用显示子程序,这样就会导致亮度降低。这时候,考虑到显示子程 序一次有十几毫秒,就特别写了一个程序来作为按键防抖的延时,实际上效果也 是很不错的。这个想法就是在修改了多次程序未达到想要的效果(有按键按下时 显示亮度不降低)后最终想出来的办法。最后在做完板,焊完电路后,在接通电源之前,要用万用表仔细检查电路是 否有连接错,以免烧坏芯片和数码管。设计课设的其他体会:态度要积极,不要认为很简单就不紧不慢。很多东西 并不是自己设想的那么顺利,有时候一个小

10、问题可以花上你半天甚至一天的时 间。虽然自己在程序上并没遇到太大的问题,但是因为态度不够积极,对于没画 过的 PCB 图迟迟不去下手,在周四晚上才解决。本以为周五一天可以做完板并 完成整机调试,可是各种突发事件让自己措手不及。发现板来不及做完后才将程 序功能进行扩展。这是我在这次实验中的一个教训,也让我明白了对于自己不能 太过于自信,态度决定一切。r?一:系统电路原理图0B.fl 日+3*fc 1 M Jfl-5!苕aaae.IF G2GNDiifimmrrK-一邑亠&-ppbi伽PI2M?IJM2FI4N-Fl?皿1Mh|bWi1:h|Tli祁itraTKl:啖iraMI-7XDU L ff

11、i ix.! ! I- IlFSI:Fu/mMGra-iLK5FWFflI2JrpiDn.sD44L2 rjj !唧 叫iilili崗I ClTTIi7nTiirSiTFNjIJXsmwi:系统电路PCBDO* *LEDnusnusnu_-HumsJ KN 皿n 。牛nu在protues中调试的结果-口一ff劇圧工10力立归怡1&5= HH .H Fr_ p DI DI DI DI DI p pJ=L|T 0-JUU.BnJZL* -D 0-二.-0 AmKCDEFQ DP但髀冈托MttJ=L*-0 0血在开发板上实现的效果(见实物)在焊的PCB板子上效果(见实物)在protues里的仿真以及

12、在开发板上实现和自己做实物所看到的现象 是不一样的。在protues里不用接三极管(NPN)就可以实现效果, 但是在自己做板子的时候就不行了,因为51 单片机的输出的电流不 能驱动数码管发光,需要一个增加驱动的9014三极管。另外,protues 里的复位按键不起作用(软件里就是这样设计的)。将在 PCB 上实 现的程序用在开发板上又出现了问题,delay (3)这个延时子程序不 合理,出现了闪烁的问题,所以将delay (3)改成了 delay(1),这 样问题就解决了。我是将三极管加在了段选上,又加了限流电流,这 样做数码管也能点亮。另一方面,一样的程序用在不同的显示上,现 象也是不一样的

13、。 所以, 我需要不断地修正定时器的装值。TH1=(65536-49997)/256;/重装初值TL1=(65536-49997)%256;TH0=(65536-8000)/256; TL0=(65536-8000)%256;经过实际测量,这个数值是最合适的,一个小时一秒不差。表一:元器件清单器件名称数量电池个Lm7805个自锁开关个51单片机个LED两个极性电容个非极性电容两个晶振个10K电阻九个1K电阻两个按键七个100电阻八个PNP三极管八个4位数码管(共阴)两个时钟程序源码# include # define uchar unsigned char# define uint unsigned int uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号