于基单片机的电子时钟设计本科毕业设计.docx
- 文档编号:27009668
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:38
- 大小:400.65KB
于基单片机的电子时钟设计本科毕业设计.docx
《于基单片机的电子时钟设计本科毕业设计.docx》由会员分享,可在线阅读,更多相关《于基单片机的电子时钟设计本科毕业设计.docx(38页珍藏版)》请在冰豆网上搜索。
于基单片机的电子时钟设计本科毕业设计
10722
学号
学校代码
公开
密级
TH714
分类号
本科毕业论文
基于单片机的电子时钟设计
题目
(中、英文)
TheDesignofElectronicClockBasedonMCU
作者姓名
电气工程及其自动化
专业名称
工科
学科门类
郝海燕
成绩评定
提交论文日期
指导教师
二〇一三年五月
摘要
单片机是一种数字集成电路芯片,是指集成在一块芯片上的微型计算机。
一个比较完整的单片机应该包括微处理器(CPU)、存储器(RAM和ROM)、并行输入/输出接口(I/O接口)电路、可编程全双工串行口、定时/计数器、中断系统以及复位电路。
由于它具有小巧灵活,成本低,可靠性好,控制功能强,易扩展等一系列优点,所以被越来越广泛地应用于各个领域。
而51系列的单片机就是最为典型和具有代表性的一种单片机。
本设计是基于单片机的简单电子时钟的设计,系统主要以单片机AT89C51为核心,结合按键模块来显示相应的时间,并可以对时、分、秒进行单独校对,使其达到标准时间。
本次设计以软件控制硬件以及软硬件结合为指导思想,充分发挥单片机功能。
同时,该系统的诸多优点使其具有很强的实用性,由于该系统实现的功能简单,因此具有很好的可扩展性。
关键词:
AT89C51;电子时钟;按键控制
Abstract
Thatthemicrocontrollerisintegratedonasinglechipmicrocomputerisadigitalintegratedcircuitchip.Shouldbeamorecompleteincludesingle-chipmicroprocessor(CPU),memory(RAMandROM),parallelinput/outputinterface(I/Ointerface)circuit,aprogrammablefull-duplexserialport,timer/counter,interruptsystem,andresetcircuit.Becauseofitscompactandflexible,lowcost,reliability,andcontrolfunctions,easytoexpandaseriesofadvantages,itismoreandmorewidelyusedinvariousfields.The51seriesisthemosttypicalandrepresentativeofasingle-chipmicrocontroller.
Theprojectisthedesignofsimpleelectronicclockbasedonmicrocontroller.ItisasthecoreofAT89C51microcontroller,withkeymoduletodisplayrelativetimeandmakehour,minutes,secondsseparateproofreadingtomakeituptostandardtime.Thedesigncontrolhardwareandsoftwarecombinationofhardwareandsoftwareastheguidingideology,givefullplaytothemicrocontrollerfeatures.Meanwhile,thesystemhassomanyadvantagesthatithasastrongpracticability,becauseofitssimplefunction,andthereforeithasgoodscalability.
Keywords:
AT89C51;Electronicclock;Keycontrol
1.引言
1.1单片机的发展历程
单片机是计算机技术、大规模集成电路技术和控制技术的综合产物。
经过30多年的发展历程,单片机应用已广泛深入人们生活中的方方面面。
根据Motorola公司的统计,1990年,平均每辆汽车使用12个单片机,而到了2000年就增加到35个。
所以可以毫不夸张的说,任何设备和产品的自动化、数字化和智能化都离不开单片机。
现在,凡是电脑控制的设备和产品,必有单片机嵌入在其中。
这一切表明,单片机已经成为人们生活中必不可少的助手。
单片机有两种基本结构:
一种是在通用计算机中广泛应用的,程序和数据存储器共用一个存储器空间的结构,称为VonNeumann结构。
另一种是将程序存储器和数据存储器分开,分别寻址的结构,称为Harvard结构,目前的单片机多采用这种结构[1]。
本文设计的单片机电子时钟系统的核心是当前应用很广泛的51系列单片机,配置了外围设备,构成了一个简单的计时系统,它具有体积小,可靠性比较高的特点,不仅能满足要求而且还可以扩展很多功能,在实际生活中应用很广泛。
1.2设计任务
本设计采用AT89C51单片机对电子时钟进行开发,通过Proteus软件来实现电子时钟系统的设计与仿真,并应用LED显示相应的时间。
1.3设计意义
在日常生活和工作中,我们常常用到定时控制。
早期常用的一些时间控制单元都是使用模拟电路设计而成的,它的定时准确性和重复精度都不很理想,而现在基本上都是一些基于数字技术的新型产品,随着单片机性本身价比的不断提高,新型产品的应用也越来越广泛。
有的可以运用于大工业里的过程控制系统,具有强大的控制功能;有的可以运用于智能家居控制,甚至可以用于小孩的电子玩具中。
它功能强大、体积小、质量轻、灵活好用,给它连接各种不同的控制芯片,就可以实现各种不同的功能[2]。
根据这些情况,设计了一个单片机电子时钟系统,它有基本的时间显示功能,还有定时功能,可扩展多种功能用来方便人们的生活。
2.电子时钟的设计原理
2.1电子时钟的特点
随着电子工业的发展,电子产品日新月异。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的功能。
诸如数字钟、万年历、电子表、定时自动报警、定时启闭电路、通断动力设备,甚至各种定时电气的自动启用、通信、网络等众多领域,所有这些都是以钟表数字化为基础的。
由于其功能的不断增加,使用方便性不断提高,很多产品已经成为人类日常生活中不可或缺的助手。
现在许多高精度的计时工具都使用了石英晶体振荡器,由于电子钟,电子表,石英表都采用了石英技术,因此工作时精度高,稳定性能好,用起来方便,不需要经常调试,数字电子时钟用集成电路计时时,译码代替机械式传动,用LED显示代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示的功能,还可以进行时和分的校对,片选的灵活性好[3]。
2.2电子时钟的应用
电子时钟除了在城市的主要营业场所、车站、码头等公共场所使用,还可以改装在摩托车和汽车上,LCD显示,带蓝色背光,白天在太阳光下也能非常清楚的看到显示时间,关钥匙可以关闭蓝色背光,时间还能显示也不会清零,因LCD的显示耗电量很省的,所以工作时也不用担心耗电问题。
在行路上,如果司机看时间可能会很麻烦甚至影响其他人的生命安危。
现在车上改装了一个蓝色的液晶电子钟,不管白天还是黑夜,随时可以看时间,非常方便[4]。
2.3电子钟的工作原理
本设计的电子时钟是由AT89C51,八段数码管等构成,采用晶振电路作为驱动电路,由计时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
电路中的四个控制键拥有多种不同的功能,按下又松开,可以实现校对时间以及定时的功能,还可以达到省电的目的。
2.4电子时钟的设计流程
图1设计流程图
3.设计方案
3.1硬件电路的设计方案
本设计的硬件电路设计框图如图2所示:
图2总体结构框图
由图2可以看出:
本设计电路的硬件部分共由五部分组成,分别为按键模块、复位电路模块、振荡电路模块、发声模块、时间显示模块。
振荡电路模块负责给单片机提供时钟周期。
复位电路模块负责上电后自动复位,或按键后强制复位。
上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。
与此同时,按键扫描函数一直扫描按键引脚状态,一旦扫描按键被按下,即进入相应的功能函数。
如果检测到定时时间到,则驱动蜂鸣器发生提示。
3.2硬件电路的原理图
由上面的设计框图可以进一步得出本系统的电路原理图。
原理图如图3所示:
图3电路原理图
本设计是采用晶振电路作为驱动电路,由计时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
电路中的四个控制键拥有多种不同的功能,按下又松开,可以实现校对时间以及定时的功能。
3.3硬件电路说明
3.3.1主控制模块
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机[5]。
AT89C51单片机引脚介绍:
Vcc:
电源
Vss:
地线
P0口:
P0口地址为80H,位地址为80H~87H。
各位口线是有完全相同但又相互独立的逻辑电路。
P0口的逻辑电路主要由D触发器构成的锁存器,FET(场效应管)构成的输出驱动电路,用于引脚数据输入缓冲的缓冲器,一个多路转接开关(MUX)构成。
8位口线的锁存器位构成一个口的锁存器,所谓的口地址就是锁存器的地址。
锁存器的功能是使数据在口中保留一段时间。
MUX的一个输入来自锁存器,另一个输入为“数据/地址”。
输入转接由控制信号控制,设置多路转接开关的原因是P0口既可以作为通用I/O口进行数据输入/输出,又可以作为单片机系统的地址/数据线使用。
设置多路转接开关可以方便的实现转换。
P1口:
P1是一个带有内部上拉电阻的8位双向I/O口。
P1口地址为90H,位地址为90H~97H。
P1口只能作为通用数据I/O口使用所以在电路结构上与P0口有些不同。
第一,因为它只能传送数据,所以不再需要多路转接开关(MUX);
第二,驱动电路中有上拉电阻。
其上拉电阻并不是真正的电阻,而是一个能起到上拉电阻作用的由两个场效应管构成的电路。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2口地址为A0H,位地址为A0H~A7H。
P2口既可作为系统高位地址线使用,也可作为通用I/O口使用,所以P2口的电路逻辑与P0口类似,也有一个多路转接开关。
但多路转接开关的一个输入端不再是地址/数据,而是单一的地址,因为在构造系统总线时,P2口只能作为高位地址而不能作为数据线使用。
当P2口作为高位地址线使用时,多了开关倒向地址端;而当通用I/O口使用时,多路开关倒向锁存器的Q端。
图4AT89C51引脚排列图
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口的地址为B0H,位地址为BOH~B7H。
虽然P3口可以作为通用I/O口使用,但在实际应用中我们更多的使用的是他的第二功能信号。
P3.0RXD(串行数据接收)
P3.1TXD(串行数据发送)
P3.2INT0(外部中断0申请)
P3.3INT1(外部中断1申请)
P3.4T0(定时器/计时器0计数输入)
P3.5T1(定时器/计时器1计数输入)
P3.6/WR(外部RAM写选通)
P3.7/RD(外部RAM读选通)
RST:
复位信号。
当输入的复位信号延续2个机器周期以上的高电平时即为有效,用于单片机的复位操作。
ALE:
地址锁存控制信号。
在系统扩展时,ALE用于把P0口输出的低八位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。
此时由于ALE是以1/6晶振频率的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用
:
外部程序存储器读选通信号。
在读外部ROM是/PSEN有效,以实现外部ROM单元的读操作。
:
访问程序存储器控制信号。
当/EA信号为低电平时,对ROM的读操作是针对外部程序存储器的;而当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
XTAL1和XTAL2:
外部晶体引线端。
当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。
3.3.2按键模块
图5按键模块
在该模块中,采用四个按键作为对电子时钟的控制输入,通过按键来实现时钟的时间设置、定时功能。
电路中将四个按键的一端接地,而单片机的P2口默认为高电平,一旦按键被按下,则该按键对应的管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作[6]。
本设计中,四个按键K1、K2、K3、K4分别与AT89C51单片机的引脚P1.0、P1.1、P1.2、P1.3连接。
当按下K1时,开始进行“时”的校对,再次按下K1时,则切换到“分”的校对,第三次按下则切换到“秒”的校正,第四次按下则返回到正常时间显示。
当按下K2时,切换到闹钟模式,连续按下K2键时依次进行定时。
K3和K4键是实现加一和减一功能。
3.3.3复位电路
图6复位电路
单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出现混乱。
对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。
单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定的[7]。
RESET引脚是复位信号的输入端,高电平有效,低电平工作。
常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路。
本设计中采用按键电平复位电路,如图6所示。
3.3.4振荡电路
图7振荡电路
AT89C51单片机内部有一个高增益反相放大器,它的作用就是用来构成振荡器,但要形成时钟,还需要一些附加的电路[8]。
AT89C51单片机的时钟产生有以下两种方法:
1.内部时钟方式。
利用单片机内部的振荡器,然后在引脚XTAL1和XTAL2两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30pF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHZ-12MHZ之间选择。
2.外部时钟方式。
此方式是利用外部振荡脉冲接入XTAL1和XTAL2。
本设计采用内部时钟方式。
振荡电路由两个皆为30PF的C1,C2及振荡频率为12MHZ的晶振组成,并配合单片机定时器0实现准确计时。
如图7所示。
3.3.5发声模块
图8发声模块
发声模块由电源,蜂鸣器两部分组成。
正常情况下,不发声,一旦按键按下,或定时时间到,蜂鸣器发声[9]。
3.3.6时间显示模块
LED是LightEmitingDiode(发光二极管)的缩写,发光二极管是能将电信号转换为光信号的电致发光器件。
由条形发光二极管组成“8”字形的LED显示器,也称数码管[10]。
通过数码管中发光二极管的亮暗组合,可以显示多种数字、字母以及其他符号。
数码管有7段数码管和8段数码管之分。
7段数码管由7个发光二极管组成,而8段数码管则是在7段发光二极管的基础上再加一个圆点型发光二极管,用以显示小数点。
8段数码管中发光二极管的排列形状以及数字显示的段组合如图9所示:
图9八段数字显示器及发光段组合图
在使用中,为了给发光二极管加驱动电压,它们有一个公共引脚,公共引脚共有两种连接方法,如图10所示,分别为共阴极接法与共阳极接法[11]。
1.共阴极接法。
把发光二极管的阴极连在一起构成阴极公共引脚,如图a所示。
使用时阴极公共引脚接地,这样阴极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不点亮。
2.共阳极接法。
把发光二极管的阳极连在一起构成阳极公共引脚,如图b所示。
使用时阳极公共引脚接+5V。
这样阴极引脚上加低电平的发光二极管即可导通点亮,而加高电平的则不点亮。
a共阳极接法b共阴极接法
图10LED显示器接法
本设计中采用共阴极LED数码管显示方式,电路图如图11所示:
图11时间显示模块
4.控制系统的软件设计
4.1KEIL集成开发环境的应用与操作
4.1.1KEIL集成开发环境简介
KeilC51是KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
。
在Keil中使用C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势[12]。
4.1.2KEIL集成开发环境的基本仿真流程[13]
1.新建与保存源程序[13]
第一步:
双击KEILuVision3的桌面快捷方式,启动KEIL集成开发软件。
第二步:
新建文本编辑界面或加入原有的程序文件。
选择“File(文件)”→“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”。
第三步:
在“Text1”中输入C语言源程序。
第四步:
保存源程序。
保存文件时必须加上文件的扩展名并选择路径和文件名进行保存,C语言程序文件的扩展名为“.C”。
2.建立新工程
第五步:
新建KEIL工程。
选择“Project(工程)”→“NewProject(新建工程)”命令,将出现保存对话框。
在保存工程对话框中输入工程文件名,工程名称不用输入扩展名。
输入名称后保存,将出现“SelectDeviceforTarget”对话框。
第六步:
选择CPU型号。
在对话框中选择“公司(Atmel)”→“CPU型号”,单击“确定”按钮返回主界面。
3.加入源程序到工程中
4.2Proteus软件简介
Proteus软件是目前世界上最先进的嵌入式系统设计与仿真平台,可以实现模拟电路、数字电路及各种电路系统的仿真和PCB设计等功能,是目前唯一一个能够对各种处理器进行实时仿真、调试与测试的EDA工具。
微控制器系统相关的仿真需建立编译和调试环境,可选择Keil5软件。
该软件支持许多芯片,集编辑、编译和程序仿真于一体,同时还支持汇编和C语言的程序设计。
它的界面简单易学,在调试程序、软件仿真方面有很强大的功能[14]。
其最关键的功能是:
将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如LED、开关等,实时看到运行后的输入、输出的结果,Proteus为我们建立了比较完整的电子设计开发环境[15]。
4.3程序流程图
图12主程序流程图
本设计的主程序是一个循环的过程,其流程是:
开始运行显示正常时间,如果扫描过程中,发现有键按下,则进行时间和闹钟模式的切换,再次按下,进行时分秒的校正;如果没有键按下,则正常显示时间;在正常时间显示过程中,若定时时间到,则闹钟自动响起,否则时间正常显示。
4.4仿真结果
仿真结果如下图13所示。
图13仿真结果
4.5仿真结果分析
本设计实现了时分秒的显示,设计简单,对时间的调节感觉不是很好,在闹钟定时方面还是比较满意。
在测试过程中,有很多小问题,通过多次的修改程序并在Proteus软件中进行仿真,最终解决可了这些问题,同时也反映出我在单片机设计和程序设计方面的不足[16]。
仿真效果达到了预期的效果,能通过调节控制键来矫正时间,是本人比较满意。
5.总结
首先,我觉得这次的单片机设计非常必要,通过这次的设计使我们学到了更多的关于单片机的实际应用知识,以前在课堂上只是简单的掌握了一些基础知识和简单指令,对于实际的应用还很陌生。
刚开始设计时,脑子里一片空白,不知道从哪开始下手,学过的知识不知道怎么运用。
设计,编程,仿真,每一步都感觉很难,尤其是编程这一块,老是有错误,后来我发现,应该把程序分开来,一块一块的进行编程,不能混在一起,否则程序太大了,容易混淆,很难发现里面存在的问题。
于是我把程序按照实现的功能不同分成几部分,然后进行逐一分析,进行编程,把每一部分实现的功能都实现后再对整个的程序进行整理。
这次设计让我深有感触的是做什么事都要细心,并且一定要有耐心,不然只会半途而废,而且思路很重要,当有了明确的思路之后再按照思路一步一步的按照步骤来走,注意细节,这样会大大提高效率,而且会节省很多时间和精力。
以上这些就是我在这次设计中学到的东西,而且将这些东西运用到以后的学习中。
参考文献
[1].李广弟,朱月秀,冷祖祁.单片机基础(第三版)[M].北京:
航空航天大学出版社,2007
[2].李朝青.单片机原理及接口技术(简明修订版)[M].北京:
北京航空航天大学出版社,1998
[3].THKACM-1型单片机实验系统实验指导书、KEIL软件、WAVE软件
[4].数字控制与PLC实验室“THKSCM-1型单片机实验系统”
[5].李光才.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社2004
[6].耿永刚.单片机C51应用技术[M].北京:
电子工业出版社2011
[7].周润景,徐宏伟,丁莉.单片机电路设计、分析与制作[M].北京:
机械工业出版社2010
[8].林志琦,郎建军,李会杰,佟大鹏.基于Proteus的单片机可视化软硬件仿真[M].北京:
北京航空航天大学出版社2006
[9].李海滨,片春媛,许瑞雪.单片机技术课程设计与项目实例[M].北京:
中国电力出版社2009
[10].张鹏,王雪瑞.单片机原理与应用实例教程[M].北京:
海洋出版社2008
[11].戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:
电子工业出版社2006
[12].兰吉昌.51单片机应用设计实例[M].北京:
化学工业出版社2008
[13].杜立,张俊亮.单片机原理及应用-基于Proteus和KeilC(第二版)[M].北京:
电子工业出版社2013
[14].周润景,张丽娜,刘映群.Proteus入门实用教程[M].北京:
机械工业出版社2007
[15].朱清慧.Proteus电子技术虚拟实验室[M].北京:
中国水利水电出版社2010
[16].周润景,蔡雨恬.Proteus入门实例教程(第二版)[M].北京:
机械工业出版社2011
附录
程序
#include
#definetl0xba;
#defineth0x3c;
sbittime=P1^0;//时间设置
sbittimer=P1^1;//闹钟设置
sbitadd=P1^2;//加
sbitdec=P1^3;//减
sbitspeaker=P3^5;//闹钟输出
bitdisp_sd;//数码管闪动显示标志位
bitdisp_ms;//数码管显示时间/闹钟标志位
bitdisp_sdt;//数码管闪动间隔反转标志位
bit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 时钟 设计 本科 毕业设计