完整版单片机的电子时钟设计毕业设计论文.docx
《完整版单片机的电子时钟设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版单片机的电子时钟设计毕业设计论文.docx(16页珍藏版)》请在冰豆网上搜索。
![完整版单片机的电子时钟设计毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/1/3d5288e1-2d31-48b8-9adf-e0dc7228d721/3d5288e1-2d31-48b8-9adf-e0dc7228d7211.gif)
完整版单片机的电子时钟设计毕业设计论文
优秀论文审核通过
未经允许切勿外传
济源职业技术学院
毕业设计
题目
单片机的电子钟设计
系别
电气工程系
专业
应用电子技术
班级
电技0801
姓名
肖见
学号
指导教师
苗绍强
日期
2010年12月
设计任务书
设计题目:
单片机的电子钟设计
设计要求:
1.设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动调整键再次进入时钟运行状态。
2.设计完成上述功能的相应的硬件调试和软件调试。
3.完成焊接和实物电路的调试。
设计进度要求:
第一周:
选定设计题目,查找、搜集相关资料。
第二周:
了解各元器件、模块的功能及使用方法。
第三周:
硬件电路的设计。
第四周:
相应软件设计(程序设计)。
第五周:
利用相关的仿真软件测试并记录相关的数据和错误。
第六周:
焊接实物电路,并且在实物电路上调试并且记录相关的数据和问题。
第七周:
写毕业论文。
第八周:
毕业答辩。
指导教师(签名):
摘 要
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。
数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。
本设计主要介绍用单片机内部的定时计数器来实现电子时钟的方法,本设计由单片机AT89C52芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。
与传统机械表相比,它具有走时精确,显示直观等特点。
它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能等特点。
关键词:
电子钟,单片机,汇编
目录
摘 要III
目录1
第1章总体方案的介绍2
1.1电子钟功能介绍2
1.2总体方案介绍3
1.3电子钟电路原理图4
1.4元件清单4
第2章硬件系统设计4
2.1单片机的选择5
2.2复位电路8
2.3晶振电路9
2.4显示电路9
2.5按键电路10
第3章软件系统设计11
3.1电子钟主程序流程框图11
3.2键扫子程序流程框图12
3.3中断服务程序流程框图13
3.4“P.”点显示子程序流程框图14
3.5显示子程序流程框图15
第4章电子钟的使用说明及调试运行16
4.1使用说明书16
4.2电子钟运行结果17
4.4误差分析21
参考资料22
致谢23
第1章总体方案的介绍
1.1电子钟功能介绍
可调整运行的电子钟具有三种工作状态:
“P.”状态、运行状态、调整状态。
(1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均无效,按A键有效,进入运行状态;
(2)、运行状态,按奇数次A键进入,在此状态下,按B、C、D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态;
(3)、调整状态,按偶数次A键进入,在此状态下,按A、B、C、D键均有效。
如按下A键,则退出调整状态,进入运行状态;按下B、C、D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态。
基本功能要求:
“P.”稳定地显示在LED显示器的最左端数码管(LED5)上,无A键按下(在“P.”状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“P.”。
按下A键后,电子钟以起始时间:
00时00分00秒开始运行。
再次按下A键后,电子钟退出运行状态,进入调整状态,利用B、C、D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。
注意:
每次按下B、C、D键,只允许加一,不允许连加。
(1)、在调整状态下,按下B、C、D键,允许连加,而A键无论在何种状态下,均不允许连击;
(2)、时、分、秒的间隔符“。
”以一定频率闪烁;
(3)、时间显示以“灭零”方式进行;
(4)、可调整运行的电子钟用两个按键(例如:
A键、B键)来控制。
1.2总体方案介绍
1.计时方案
利用AT89C52单片机内部的定时计数器进行中断定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解。
2.键盘显示方案
AT89C52的P0口和P2口外接由六个LED数码管(LED5~LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。
AT89C52是一种低功耗,高性能的CMOS8位微型计算机。
它带有8KFlash可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C52和80S52的指令系统及引脚兼容,片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的IO便可完成,所以本书中采用此的设计方案,结构如图1.1如示。
图1.1硬件框图
1.3电子钟电路原理图
电子钟原理图(见附录1)
1.4元件清单
电子钟元件清单如表1所示:
表1 电子钟元器件清单
元件名称
规格型号
数量(个)
单片机
AT89C52
1
8位一体的共阳LED显示器
7SEG-MPX8-CA-BLUE
1
晶振
12MHz
1
电容
33pF
2
电容
22μF
1
按键
BUTTON
5
电阻
0.2K
1
电阻
1K
1
限流电阻
0.1K
8
第2章硬件系统设计
硬件电路主要包括:
单片机、晶振电路、复位电路、显示电路、按键电路以及电源等几部分。
。
单片机的选择:
选用AT89C52单片机,配备11.0592MHz晶振。
P1.0—P1.3接的是按键电路,P0和P1口分别接的是位码和断码。
显示电路的选择:
采用软件译码器动态显示,共阳极LED数码管。
复位电路的选择:
RC复位电路。
。
电源电路的选择:
采用直流+5V电源供电。
2.1单片机的选择
单片机实质上是一个芯片,在实际应用中,必须外加各种扩展接口电路、外部设备等相关硬件和软件,才能构成一个单片机系统。
尽管各类单片机很多,但无论是从世界范围或是从全国范围来看,使用最为广泛的应属MCS-51单片机。
单片微型计算机市指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU、随机存储器RAM、只读存储器ROM、基本输入输出接口电路、定时器计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机,从而实现微型计算机的基本功能。
89C52单片机是在一块芯片中集成了CPU、存储器、定时器计数器和多种功能的IO现等一台计算机所需的基本功能部件。
主要包括1个8位CPU、1个片内振荡器及时钟电路、128BRAM、4KBROM、2个16位定时器计数器、32条可编程的IO线和一个可编程的全双工串行接口、5个中断源、2个中断优先级套中断结构。
1、中央处理器CPU是单片机的内部核心部件,是一个8位二进制数的中央处理单元,主要由运算器,控制器和寄存器阵列构成。
2、控制器控制器是单片机内部各部件按一定时序协调工作的控制核心,是分析和执行指令的部件。
控制器主要由程序计数器、指令寄存器、指令译码器、振荡和定时控制逻辑电路等构成。
3、寄存器阵列寄存器阵列式单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和专用寄存器组。
4、存储器程序存储器是可读不可写的,用于存放编号的程序和表格常数。
5、数据存储器是即可读也可写的,用于存放运算的中间结果,进行数据暂存及数据缓冲等。
6、定时器计数器89C52内部有2个16位可编程定时器计数器,简称为定时器0(T0)和定时器1(T1),T0和T1在定时器控制寄存器TCON和定时器方式选择寄存器TMOD的控制下,可工作在定时器模式或计数器模式下,每种模式又有不同的工作方式。
89C52有两个16位的可编程定时计数器,以实现定时或计数产生中断用于控制程序转向。
7、并行输入输出(IO)口89C52共有4组8位IO口(P0、P1、P2或P3),用于对外部数据的传输。
89C52单片机内部总线是单总线结构,即数据总线和地址总线是公用的。
89C52有40条引脚,与其他51系列单片机引脚是兼容的。
这40条引脚可分为IO接口线、电源线、控制线、外接晶体线4部分。
89C52单片机为双列直插式封装结构,如图3.2所示。
图2.189C52引脚分配图
Pin40:
电源脚。
工作电压为+5V
Pin20:
接地端
P0口:
P0口为一个8位漏极开路的双向IO口,每脚可以吸收8TTL门电流。
当P0口的管脚第一次写“1”时,被定义为高阻输入,P0口能够用于外部数据存储器,它可以被定义为数据地址的第八位,在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0口输出原码,此时,P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流,P1口管脚写入1时,被内部上拉为高,可用作输出,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可以接收、输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
因此作为输入时,P2口的管脚被外部拉低,将输出电流,这就是内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向IO口,可以接收输出4个TTL门电流。
当P3口写入“1”时,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平;P3口将输处电流(ILL),这就是上拉的缘故。
P3口也可以作为AT89C52的一些特殊功能口,如下所示:
P3.0:
RXD(串行输入口)
P3.1:
TXD(串行输出口)
P3.2:
(外部中断0)
P3.3:
(外部中断1)
P3.4:
T0(定时计数器0)
P3.5:
T1(定时计数器1)
P3.6:
(外部数据存储器写选通线)
P3.7:
(外部数据存储器读选通线)
P3口同时为闪烁编程和编程校验接收一些控制信号
RST复位输出:
当振荡器复位时,要保持RST脚两个机器周期的高电平时间。
XTAL1:
反向振荡器的输入及内部时钟工作电路的输入;
XTAL2:
来自反向振荡器的输出。
振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器,石英振荡器和陶瓷振荡器均可采用,如果采用外部时钟源驱动器件,XTAL2应不连接,有余的输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉冲没有任何严格的要求,但必须保证脉冲的高低电平要求的宽度。
2.2复位电路
单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位.复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.
89C52单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位.复位后,PC程序计数器的内容为0000H,片内RAM中内容不变.复位电路一般有上电复位、手动开关复位和自动复位电路3种,而本设计中用到的是手动开关复位电路。
如图4.3所示.
图2.2单片机复位电路
2.3晶振电路
1.晶体振荡器的作用:
石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。
2.本次设计所用的晶体振荡电路如图4.4所示:
电图2.3晶体振荡电路
路所选用的石英晶振频率为12MHZ。
时钟此晶振周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是112us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。
我们学习的51系列单片机的时钟范围是1.2MHz-12MHz。
2.4显示电路
显示电路中运用到的显示器为8为一体的共阳极LED显示器,P0和P2分别对应的是断码和位码,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
如图所示
图2.4显示电路
2.5按键电路
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。
A键控制电子钟的启、停;
B键调整时;
C键调整分;
D键调整秒。
它们所对应的管脚分别为:
A键对应的是P1.0,B键对应的是P1.1,C键对应的是P1.2,D键对应的是P1.3。
如图所示:
图2.5按键电路图
第3章软件系统设计
3.1电子钟主程序流程框图
上电后程序开始系统初始化显示“P.”然后判断A键是否按下,若按下,进入自动计时状态,如果A键再次按下则进入时间设置状态,再次按A键,则进入时间调整后的状态,若没按下返回于时间设置状态。
见图3.1所示
3.2键扫子程序流程框图
进入开始后判断是否有键闭合若有,进入调显示子程序,在判断是否有键按下,若有判断按键是否放开,若没有放开调用显示子程序,若放开保存键值(A中)。
见图3.2所示
图3.2键扫子程序流程框图程框
3.3中断服务程序流程框图
中断程序开始后进入现场保护,改变寄存器组组号,重装定时器计数初值,中断次数减1,然后判断是否满8次,若满8次秒值加1,满60秒后,秒缓冲单元清0,分值加1,满60分后,分缓冲单元清0,时值加1,满24时后,时缓冲单元清0,恢复寄存器组组号,现场保护。
见图3.3所示
3.3中断服务程序流程框图
3.4“P.”点显示子程序流程框图
开始后堆栈初始化,PSW初始化,RAM初始化,“P.”字符序号送显示缓冲区,然后调显子程序。
见图3.4所示
3.5显示子程序流程框图
开始后,程序进入现场保护,开辟3组寄存器,地址指针R0初始化、位控寄存器R2初始化,进出查表取段码,段控码送P0口,段位码送P2口,延时1毫秒,位控码左移,显示缓冲区地址加1,8位LED显示完否,若显示完恢复现场返回。
若没返回查表取段码。
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8LED7LED6LED5LED4LED3LED2LED1
37H36H35H34H33H32H31H30H
时十位时个位分隔分十位分个位分隔秒十位秒个位
见图3.5所示
图3.5显示子程序框图
第4章电子钟的使用说明及调试运行
4.1使用说明书
1.操作说明
时间显示:
电子钟上电后,8个数码管显示初始状态即最左边的一个数码管显示P.。
如果未显示P.,只需按一下复位键即可使其显示出P.。
按下A键后电子钟进入自动计时状态,电子钟显示00时00分00秒并开始运行。
时间调整:
若要进行时间调整,则需再次按下A键,进入时间调整状态,然后分别按下B键调时,按下C键调分,按下D键调秒,按下B、C、D键并松开可使电子钟的时,分,秒分别加一。
调整好时间后,按下A键就可以回到调整好的时间为基础的自动计时状态。
无论是在自动计时,还是在调整校正时,都可按下复位键使系统回到显示P.的初始状态。
其中B键显示范围为0-23,0为25点;C,D键显示范围为0-59,0为60分。
4.2电子钟运行结果
1.待机
(如图4.1所示)
图4.1待机框图
2.启动
(如图4.2所示)
图4.2启动框图
3.运行
(如图4.3所示)
图4.3运行框图
4.4误差分析
在调试运行过程中,在所有参数正确的情况下,我的结果仍出现运行缓慢情况。
产生误差的主要原因是我们用软件计时,计时1秒是采用定时器的中断服务程序。
当电子钟运行1秒,执行中断程序需要一定时间,这个时间就是所产生的误差,这个误差是不可避免的。
同时,单片机工作也会受到环境的影响,比如温度、湿度,以及其它电子设备的干扰。
因此,应该让电子钟工作在适度温度、干燥和电子干扰较少的环境下,还有一种方法就是采用实时时钟芯片,这样可以使误差降低到最少。
参考资料
[1]胡辉,单片机应用系统设计与训练[M],中国水利水电出版社,2005.9。
[2]曹巧媛,单片机原理及应用[M],北京:
电子工业出版社,1997.7。
[3]赵秀珍,单永磊,单片微型计算机原理及其应用[M],北京:
中国水利水电出版社,2001.8。
[5]张毅刚,修林成,胡振江,MCS-51单片机应用设计[M],哈尔滨:
哈尔滨工业大学出版社,1990.8。
[5]张洪润,兰清华,单片机应用技术教程[M],北京:
清华大学出版社,1997.11。
[6]李华,MCS-51系列单片机实用接口技术[M],北京:
北京航空航天大学出版社,1993.8。
致谢
这次的课程设计,所谓是一波三折啊。
但终于还是完成了!
这个历史性时刻的来临,要感谢的人太多太多!
首先,感谢我们尊敬的苗老师,有了他的谆谆教诲,处处提点,我才得以成功的完成。
是他在课堂上将电子钟的原理及设计思路详细讲解给我们听,也是苗老师一次次给我们指出原理图的错误,让我们修改再重新绘制。
老师在课堂上严格要求我们,这是对我们的负责,毕竟严师出高徒。
而我自由散漫的性格弱点也说明了我需要这样的老师来对我进行督促和鞭策,我学到的不仅仅只有书本上的知识,还有做人的道理。
他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。
在此谨向苗老师致以诚挚的谢意和崇高的敬意。
其次,是我亲爱的寝室兄弟们,如果没有他们的对我的帮助和关照还有鞭策,我想,我对KEIL和PROTEUS这些软件根本就不会这么熟练起来的。
诚恳感谢我的宿友,我的同学,谢谢他们给我提供资料,帮我修改图和程序,真的很感谢他们!
最后要感谢徐述,是他在我搞设计感到很郁闷的时候,开导我,让我心情保持舒畅,我才得以更好的完成这次设计。
谢谢他!
附录一