基于51单片机的简易电子时钟_第1页
基于51单片机的简易电子时钟_第2页
基于51单片机的简易电子时钟_第3页
基于51单片机的简易电子时钟_第4页
基于51单片机的简易电子时钟_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与单片机接口技术课程设计报告基于51单片机的简易电子时钟设计摘要今天,电子时钟是生活中不可或缺的一部分。电子时钟通过数码管显示,具有整点报时等功能,可以使得我们的生活变得更加有序。电子时钟也通过不断地改进,变得功能越来越强大。本次设计的电子时钟利用单片机STC89C5进行控制的,利用单片机1自身的定时器功能,采用数码管显示,可对电子时钟进行调整校准。此设计具有相当重要的现实意义和实用价值。基于单片机STC89C5的电子时钟,采用数码管显示“时“分“秒”1而且可用按键进行调整校准。此次设计与传统的机械表相比,它具有走的更精准,显示更直观等特点,而且单片机的数字时钟具有灵活编程,便于功能扩

2、充等特点。本次所设计主要有三个模块:显示模块,按键模块,闹铃模块。该时钟采用STC89C5单片机自身定时器进行计时,按键模块采用独立式键1盘(4个按键),闹铃部分由8550三极管和蜂鸣器构成,显示时、分、秒用两个四位共阴极数码管显示,具有可调整时间功能和设定闹钟功能,在设计过程中硬件和软件应同时进行。关键词 : 电子时钟,单片机,闹钟,蜂鸣器IVSIMPLE ELECTRONIC CLOCK DESIGN BASED ON 51MCUABSTRACTToday, the electronic clock is an integral part of life. Through the digi

3、tal display electronic clock, with the whole point timekeeping function, can make our life more orderly. The electronic clock also through continuous improvement, has become more and more powerful.The design of the electronic clock using STC89C51 MCU to control the use of single-chip, self timer fun

4、ction, the use of digital tube display, can adjust the calibration of the electronic clock. Has very important realistic significance and practical value of this design.The electronic clock based on MCU STC89C51, using digital tube display "when""seconds" and the button can be us

5、ed to adjust the calibration. And the design of the traditional mechanical watch, it has to go more accurate, more intuitive display characteristics, and the digital clock has flexible programming, easy to function expansion and so on.This design has three main modules: the display module, keyboard

6、module, alarm module. The clock uses STC89C51 microcontroller timer timing, key module with separate keyboard (4 buttons), the alarm is composed of 8550 transistors and a buzzer, when the display is divided by two seconds, four common cathode digital display, which can adjust the time and set the al

7、arm function, hardware and software in the design process should be carried out at the same time.Key Words: electronic clock, microcontroller, alarm clock, a buzzer微机原理与单片机接口技术课程设计报告- 1 - 1 - 1 - 2 - 2 - 3 - 4 - 5 - 6 - 7 - 7 - 8 - 8 - 9 - 11 - 11 - 11 - 12 - 13 - 13 - 13 - 14 - 14 - 14 - 14 - 20 -

8、21 - 32 -第一章 绪论 -1 -1.1 课题背景及意义1.2 课题内容1.2.1 题目及要求1.2.2 主要部分第二章 方案 -2 -2.1 功能要求2.3 数码管显示方案第三章 电子时钟的硬件设计- 4 -3.1 电子时钟的组成3.2 单片机最小系统图3.3 STC89C51引脚功能3.4 数码管显示模块3.5 闹铃部分3.6 按键模块第四章 电子时钟的软件设计- 8 -4.1 电子时钟程序流程框图4.2 按键调整流程图4.3 子程序的设计4.3.1 数码管显示模块4.3.2 按键子模块4.3.3 主程序 第五章 硬件的制作与测试分析- 13 -5.1 电子时钟的硬件制作5.2 硬件

9、测试5.3 软件调试5.4 测试结果分析与结论5.4.1 数码管测试结果分析5.4.2 按键测试结论5.4.3 测试结论总结与致谢- 16 -参考文献- 18 -附录 -20 -附录一 分组表 附录二 程序 附录三 电子时钟实物图微机原理与单片机接口技术课程设计报告微机原理与单片机接口技术课程设计报告第一章 绪论1.1 课题背景及意义二十一世纪的今天,电子时钟已经融入到千千万万户家庭中,它已经成为了人们生活中不可或缺的一部分。电子时钟通过数码管显示,使其直观明了,更能实现整点报时等功能,使其更符合当今人们的生活需求,电子时钟的出现使人们的生活更加的有条不紊。目前市场上的电子时钟很多,为了迎合市

10、场的需要,满足广大的消费人群,人们通过自己的DIY设计让电子时钟富有创意。电子时钟通过不断地改进,使其更具有市场。本次设计的电子时钟利用单片机STC89C51进行控制的,利用单片机自身的定时器功能,采用数码管显示,可对电子时钟进行调整校准。电子时钟既可广泛应用于家庭, 也可应用于银行、邮电、 宾馆、 医院、 学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相当重要的现实意义和实用价值。1.2 课题内容1.2.1 题目及要求基于 51 单片机的电子时钟设计与制作。利用单片机的计时、校时等功能,设计并制作出一个以单片机STC89C51为核心组件,采用数码管显示“时“分

11、“秒”的电子时钟,要求能正常显示,并可用按键进行调整校准。此次设计与传统的机械表相比, 它具有走的更精准,显示更直观等特点,同时具有不同的操作方式,让此次设计更符合现代生活的需求,而且单片机的数字时钟具有编程灵活,便于功能扩充等特点。1.2.2 主要部分本次设计可分为两部分:软件部分、硬件部分。硬件部分包括: STC89C51 单片机模块,数码管模块,蜂鸣器模块,按键模块,闹铃模块。通过正确连接电路以及单片机的编程来实现上述要求。软件部分的主程序包括:数码管显示程序,按键控制程序。使其实现时分秒正常显示,并可通过按键进行调试功能。第二章 方案2.1 功能要求1、能显示时、分、秒2、通过按键可以

12、对电子时钟进行调整校准3、可实现设定闹钟并报警功能4、上电后,电子钟显示“12-59-00 ”,蜂鸣器同时发出声音2.2 数字时钟方案在本次设计中,数字时钟是最主要的部分:采用单片机本身的定时器进行计时,来实现数字时钟功能。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1 ;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且

13、,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。2.3 数码管显示方案采用动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O 口,降低了能耗。- 23 -第三章 电子时钟的硬件设计3.1 电子时钟的组成本次设计制作的电子时钟组成部分为:STC89C51主控制模块,按键模块,复位电路,数码管显示模块,闹铃模块。组成图如图3-1 所示。数码管显

14、示模块STC89C51主控制模块复位电路按键模块图 3.1 电子时钟系统组成3.2 单片机最小系统图单片机最小系统又称为最小应用系统,即用最少的元器件组成单片3.2 所示为单片机最小系统图。3.2 单片机最小系统图3.3 STC89C51 引脚功能图 3.3 STC89C51 引脚如图 3.3 所示,STC89C51主要管脚有:XTAL1( 19 脚)和XTAL2( 18脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd( 9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC( 40 脚) 和 VSS( 20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I

15、/O 脚,其功能用途由软件定义,在本设计中,P0 端口( 3239 脚)被定义为功能控制端口,分别与其相应功能管脚相连接,13 脚定义为IR 输入端。3.4 数码管显示模块图 3.4 数码管显示模块如图 3.4 所示, 在这次的设计中,数码管接在单片机的P0和 P2口,P0控制段选信号,P2控制位选信号。通过位选信号依次点亮各个数码管,由于人眼有视觉暂留的特性,因此如果第一个数码管灭和第二个数码管亮之间的时间足够短,人眼是感觉不出数码管的变化的。3.5 闹铃部分动设置来实现闹铃功能。图 3.5 闹铃图3.5 所示,主要由8550 三极管和蜂鸣器构成,可通过手3.6 按键模块如图 3.6 所示,

16、本次设计是采用四个独立式按键,分别为“时间设置”键, “闹钟设置”键, “ +”键, “ - ”键, ,通过这四个按键来调整电“闹钟设置”“+”“ -”图 3.6 按键图第四章 电子时钟的软件设计本次设计主要是对单片机,数码管,按键和闹铃部分进行编写的。4.1 电子时钟程序流程框图图 4.1 系统程序流程框图 本次的设计主程序是根据每个模块的特性来进行编写,先对各个模块进行初始化,然后再按照各自不同来分模块编写,最后得出总的流程图。4.2 按键调整流程图图 4.2 按键调整流程图进入程序后,先将单片机,数码管,按键等进行初始化,数码管显示固定数值“12-59-00 ”,程序开始等待按键按下,当

17、有按键按下,单片机检测一次,确定按下,单片机调用程序,同时数码管刷新一次,显示当前操作结果。完后,程序返回按键等待,如此循环执行。4.3 子程序的设计4.3.1 数码管显示模块4 位独立数码管显示,电路相对简单,主要特点,简单易用,显示清晰,性价比高。数码管显示程序:(见附录2.1 )4.3.2 按键子模块本次设计是采用四个独立式按键,分别为“设置”键, “ +”键,“ -键, “复位” 键, 通过这四个按键来调整电子时钟的时间显示和闹钟响应。按键操作子程序:(见附录2.2)当用手按下一个键时,如图4.3 所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回

18、会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。此次设计过程中电路的工作原理:数字电子钟是一个将“时” , “分”, “秒”显示于人的视觉器官的计时装置。它的计时周期为24 小时,显示满刻度为23 时 59 分 59 秒,另外还有校时功能。因此, 一个基本的数字钟电路主要由显示器 “时”,“ 分” ,“秒”和单片机,还有校时电路组成。 8 个数码管的段选接到单片机的P0口, 位选接到单片机的P2口。 数

19、码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”, “秒单元”采用 60 进制计数器,每累计60 秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。 “分单元”也采用 60 进制计数器,每累计60 分钟,发出一个“时脉冲” 信号, 该信号将被送到 “时单元”。 “时单元”采用 24 进制计时器,可实现对一天24 小时的累计。显示电路将“时”、 “分”、 “秒”通过七段显示器显示出来。校时电路时用来对“时”、 “分”、 “秒”显示数字进行校对调整,按一下设置键进入时设置,按下“+”时加一次,按下“-”键,时减一次,同理,按设置键两次即进行分调整,按下三次进行秒调整。4.

20、3.3 主程序(见附录2.3 )第五章 硬件的制作与测试分析5.1 电子时钟的硬件制作此次的电子时钟是根据所设计的原理图,把每个部分都焊接好,连接起来,然后接入电源,上电,最后将所编写的程序烧入单片机中。5.2 硬件测试电子时钟的硬件相对简单,只用几个模块构成,但在检查电路的时候容易因掉以轻心而出错,主要检查电路连接是否有短路或者短路现象(通过万用表检测),元器件的型号和规格是否使用合理。其次,检测电源。检测方法:一种是断开稳压电源的输出端,检查空载时电源工作情况;另一种是拔下电源上的主要集成芯片,检查电源的负载能力(用假负载),确保电源无故障并性能符合设计要求。检测完电路,确保其不发生电路故

21、障的前提下才可上电。5.3 软件调试电子时钟虽然看着硬件比较少,但是写起程序来并非那么简单,在设计阶段,因为我们是刚入手单片机没多久的,所以对挺多的程序并不是很了解,我们查阅了很多资料,研究了很多关于按键,数码管等方面的内容,我们通过参考查阅到的资料,根据自己的删改添加终于完成了自己的程序。在电子时钟的程序设计阶段,让数码管显示“12-59-00 ”,由于对十六进制不够熟练,所以在实现显示的时候总是出现乱码,后面静下心慢慢算,终于能够正常显示,不过只是实现数码管的静态显示,动态显示才是关键,通过我们在课上讲的数码管累加计时,仿照其原理,通过改进,也实现了动态显示。在按键方面,按键因为是独立的,

22、所以我一个个按键的功能慢慢实现,先做加减后做调整和复位,刚开始做按键的时候因为考虑的不够全面,虽然按键能够实现加减,但是出现按一次跳很多次的现象,经过查找资料并观看视频,原来按下去的时候会出现所谓的“抖动”,这时候就需要多添加几句程序来进行消抖,最终数码管才正常加减,同样道理实现选择位跟复位功能,在一步步添加程序的同时也一步步地掌握了按键的使用方法。5.4 测试结果分析与结论5.4.1 数码管测试结果分析数码管主要是分清楚共阴还是共阳,在写程序的时候一定要注意,通过肉眼看数码管是否出现亮度不够判断其电路是否供电异常或者程序占用太多CPU,进行电路调整及程序修改,让数码管正常显示。5.4.2 按

23、键测试结论在对按键进行测试的时候主要出现按键按下去有时候会出现连续加跟连续减的现象,经过查找相关资料,原来按键按下去的时候会出现 “抖动” ,所以我们就要在程序中进行删改,做“消抖”处理。5.4.3 测试结论经过多次的反复测试,分析跟修改,程序越来越完善,我也对电路的原理跟功能更加熟悉,同时在编程方面也更加的熟练,很多平时老师没有教到的知识我通过自学,也都能基本掌握,可说在编程上得到了很大的提高,以及对所学的知识也得到很大的巩固。调试展示如下5.1 图所示:5.1 调试展示图总结与致谢在这 2016 年的年末,经过我们的努力,我们圆满的完成了本学期的课程设计。此次我们的课程设计是微机原理与单片

24、机接口技术课程设计,而我们小组做的是基于51 单片机的简易电子时钟设计。电子时钟与我们的生活息息相关,尽管它作为我们的日常用品,但说实话我们对其很不了解。这种很熟悉却又很遥远的感觉激发了我的求知欲望。经过我们认真的查阅资料,我们了解了电子时钟和51 单片机的原理以及如何使用51 单片机设计电子时钟。然后我们开始设计属于我们自己的电子时钟,我们通过仿真软件设计了原理图,编写了C语言程序。本次课程设计我和另外两位同学主要负责硬件部分,即按照原理图购买和焊接实物电路并烧写单片机和最后调试。这真正做之前我感觉并不难,但是真正上手之后却是错漏百出。比如我们在焊接排阻时,由于不仔细没有注意到它的极性,最后

25、才发现焊反了,还有部分地方存在虚焊等问题。虽然最后在大家的努力下一一得以解决,但是这也说明我们还存在很多问题。类似于对原理不是特别懂,还有就是粗心不仔细,再就是动手能力极差。看的时候感觉很简单,但是自己动手焊接时却发现非常不容易。总而言之,通过这次课程设计我感觉收获颇丰。不仅仅是学习能力的提升,还有动手能力的提升,更重要的是收获了一份钻研精神以及一种不畏困难勇往直前的勇气!参考文献1 郭天祥 . 新概念 51 单片机C语言教程M. 北京 : 电子工业出版社,20092 张靖武 , 周灵斌 . 单片机原理、应用与PROTEU仿真S M. 北京:电子工业出版社,20083 张道德 . 单片机接口技

26、术M. 北京 : 中国水利水电出版社,2007附录分组表任务 / 人设计电路编写程序焊接烧写调试备注焊接烧写焊接烧写焊接烧写总体电路设计总体程序编写数码管显示模块程序设计按键模块程序设计复位模块与电源开关模块数码显示模块和蜂鸣器电路模块晶振电路模块和单片机电路模块附录二 程序数码管显示程序:void display(void)P0=ledhour/10; /p0 口送数据拆数显示P2=0xFE; /片选delay(); /延时P2=0xFF; /片选关P0=ledhour%10;P2=0xFD;delay();P2=0xFF;P0=0x40;P2=0xFB;delay();P2=0xFF;P0

27、=ledminit/10;P2=0xF7;delay();P2=0xFF;P0=ledminit%10;P2=0xEF;delay();P2=0xFF;P0=0x40;P2=0xDF;delay();P2=0xFF;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;按键操作子程序:void display(void)P0=ledhour/10; /p0 口送数据拆数显示P2=0xFE; / 片选delay(); / 延时P2=0xFF; / 片选关P0=ledhour%10;P2=0x

28、FD;delay();P2=0xFF;P0=0x40;P2=0xFB;delay();P2=0xFF;P0=ledminit/10;P2=0xF7;delay();P2=0xFF;微机原理与单片机接口技术课程设计报告P0=ledminit%10;P2=0xEF;delay();P2=0xFF;P0=0x40;P2=0xDF;delay();P2=0xFF;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;void Keykonzhi()if(time=0) / 键盘时间设定键按下del

29、ay();delay();if(time=0)while(!time);timenum1+;/ 标记 +TR1=0;f2=0;if(timenum1=1) / 如果 timenum1=1 调时dsflg=0;st=0;delay();delay();if(add=0)while(!add); / 松手检测 hour+;/ 小时 + if(dec=0)/ 减键按下delay();delay();if(dec=0)while(!dec); / 松手检测 hour-; / 小时 - if(hour>23) / 限位hour=0;P0=ledhour/10;/ 显示小时函数P2=0xFE;del

30、ay();P2=0xFF;P0=ledhour%10; / 显示小时函数P2=0xFD;delay();P2=0xFF;if(timenum1=2) / 如果 timenum1=2 调分 / 以下也是和调时一样的方法dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);minit+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit-;if(minit>60)minit=0;P0=ledminit/10;P2=0xF7;delay();P2=0xFF;P0=ledminit

31、%10;P2=0xEF;delay();P2=0xFF;if(timenum1=3)/ 如果 timenum1=3 调秒dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);second+;if(dec=0)delay();delay();if(dec=0)while(!dec);second-;if(second>60)second=0;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;if(timenum1=4)

32、 / 如果 timenum1=4 退出TR1=1;timenum1=0;dsflg=1;f2=1;st=1;void almset()timenum1=0;if(timer=0) / 键盘上的闹钟键按下delay();delay();if(timer=0)while(!timer); / 松手timenum2+; / 标记 +f1=0;if(timenum2=1)/ 如果 timenum2=1 设定脑钟的小时 dsflg=0;st=0;if(add=0) / 加键按下 delay();delay();if(add=0)while(!add);/ 松手 hour1+;/ 小时 +if(dec=0) / 减键按下delay();delay();if(dec=0)while(!dec);/ 松手hour1-; /小时 -if(hour1>23) / 限位ho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论