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