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