基于单片机的电子时钟设计毕业论文.doc

上传人:good****022 文档编号:116790695 上传时间:2022-07-06 格式:DOC 页数:39 大小:1.84MB
返回 下载 相关 举报
基于单片机的电子时钟设计毕业论文.doc_第1页
第1页 / 共39页
基于单片机的电子时钟设计毕业论文.doc_第2页
第2页 / 共39页
基于单片机的电子时钟设计毕业论文.doc_第3页
第3页 / 共39页
点击查看更多>>
资源描述
基于单片机的电子时钟设计 摘 要 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几 乎渗透了社会的各个领域,现代电子产品性能进一步提高,产品更新换代的节 奏也越来越快。对于那些对时间把握非常严格和准确的人或事来说,时间不准 会带来麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优 势。数码管显示的时间简单明了且读数快、时间精确显示到秒。数字钟是采用 数字电路实现对“时”、“分”、“秒”数字显示的计时装置。 本文设计的是电子时钟,利用单片机原理MCS-51,制作高精度的电子时 钟。这次毕业设计通过对它的学习、应用,以 AT89S51 芯片为核心,辅以必要 的电路,设计了一个简易的电子时钟,它由 4.5V 直流电源供电,通过数码管能 够准确显示时间,调整时间,从查找资料到达学习、设计、开发软、硬件的能 力。在这次设计中,我们采用 LED 数码管显示时、分、秒,以 24 小时计时方 式,根据数码管动态显示原理来进行显示,用 12MHz 的晶振产生振荡脉冲,定 时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间 的调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于 集成化而受广大消费的喜爱,因此得到了广泛的使用。 关键词:数字电子钟,MCS-51 单片机,LED ABSTRACT The late 20th century, electronic technology has been rapid development in its promotion, penetration of modern electronic products will almost Fields, a strong impetus to the development of social productive forces and social improvement in the level of information, while also further improve the performance of modern electronic products, replacement products have become increasingly fast pace. For those who are very strict and accurate grasp of time or things, time will not exactly bring a very big trouble, so as to control the display of digital clock than the clock pointer showed a big advantage. Digital Clock is a digital circuit implementation of the “when” , “sub” , “seconds”. The design is the electronic clock. Using MCS51 digital high-precision electronic clock.This graduation design passes to its study and application, Take the AT89S51 chips as core, assist with the electric circuit of the necessity, design a simple electronics clock, it from the 4.5 V direct current power supply power supply, pass the figures tube can accurate manifestation time, adjust time. Arrive a study and design, develop thus soft, the ability of the hardware. In this design, we use LED digital display hours, minutes, seconds, to 24-hour time mode, according to digital control theory to dynamic display to display, use the 12MHz crystal oscillation pulse, the timer count. In this design, the circuit has a display time of the this function, you can also realize the time adjustment. Digital clock is its compact, low cost, travel time and high precision, easy to use, features and more, easy integration and loved by the general consumer, so widely used. KEY WORDS: digital electronic clock, SCM-51, LED 目 录 摘 要I ABSTRACTII 第 1 章 绪 论.1 1.1 数字电子钟的背景1 1.2 数字电子钟的意义2 1.3 数字电子钟的应用2 第 2 章 整体设计方案.3 2.1 单片机的选择.3 2.2 单片机的基本结构.5 第 3 章 数字时钟的硬件设计.10 3.1 最小系统设计.10 3.2 LED 显示电路.13 第 4 章 数字时钟的软件设计.16 4.1 系统软件设计流程图16 4.2 源程序.20 4.3 数字钟的原理图.21 第 5 章 系统仿真.24 5.1 PROTUES 软件介绍24 5.2 电子钟系统 PROTUES 仿真24 5.3 调试功能25 结束语.27 参考文献.28 致 谢.28 附 录.30 0 第 1 章 绪 论 1.1 数字电子钟的背景 1957 年,Ventura 发明了世界上第一个电子表,从而奠定了电子时钟的基 础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工 具,用延时程序产生一定的时间中断,用于 1 秒的定义,通过计数方式进行满 六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时 的功能,是人民日常生活中不可缺少的工具。现在高精度的计时工具大多数都 使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因 此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成 电路计时时,译码代替机械式传动,用 LED 显示器代替指针显示进而显示时间, 减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分 的校对,片选的灵活性好。 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎 渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的 提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越 快。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面 发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根 本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字 电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件 代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、 分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械 装置,具有更长的使用寿命,因此得到了广泛的使用。 青岛理工大学毕业论文 1 1.2 数字电子钟的意义 数字电子时钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的 应用。数字时钟是采用数字电路实现对时、分、秒.数字显示的计时装置,广泛用 于个人、家庭、车站、码头、办公室等公共场所,成为人们日常生活中不可少的 必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精 度远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且 大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间 程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚 至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础的。因此, 研究数字钟及扩大其应用,有着非常现实的意义。 1.3 数字电子钟的应用 数字时钟已成为人们日常生活中必不可少的必需品,广泛用于个人、家庭 以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱 乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术, 使数字时钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动 报时及自动控制等各个领域。 青岛理工大学毕业论文 2 第 2 章 整体设计方案 2.1 单片机的选择 单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部 件:中央处理器、存储器和 I/O 接口电路等。因此,单片机只需要和适当的软 件及外部设备相结合,便可成为一个单片机控制系统。 单片机正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、 强 I/O 功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面: 1、多功能 单片机中尽可能地把所需要的存储器和 I/O 口都集成在一块芯片上,使得 单片机可以实现更多的功能。比如 A/D、PWM、PCA(可编程计数器阵列) 、 WDT(监视定时器看家狗) 、高速 I/O 口及计数器的捕获/比较逻辑等。有 的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯 片数量。 2、高效率和高性能 为了提高执行速度和执行效率,单片机开始使用 RISC、流水线和 DSP 的 设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到 提高,同样频率的单片机运行效率也有了很大的提升,由于集成度的提高,单 片机的寻址能力、片内 ROM 和 RAM 的容量都突破了以往的数量和限制。 3、低电压和低功耗 单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于 CMOS 等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V 或 0.9V) ,功 耗已经降低到 A 级。这些特性使得单片机系统可以在更小电源的支持下工作 更长的时间。 4、低价格 单片机应用面广,使用数量大,带来的直接好处是降低成本。目前世界各 青岛理工大学毕业论文 3 大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价 格。 下面大致介绍一下单片机的主要应用领域和特点。 (1)家用电器领域 用单片机控制系统取代传统的模拟和数字控制电路,使家用电器功能更完 善,更加智能化和易于使用。 (2)办公自动化领域 单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘 驱动、打印机、复印机、电话机和传真机等。 (3)商业应用领域 商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、 可靠性和安全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读 器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的 专用系统。与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病 毒和电磁干扰等,可靠性更高。 (4)工业自动化 在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是 以单片机为核心的单片机和多机系统。 (5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量 系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机 和传感器相结合,可以构成新一代的智能传感器。它将传感器变换后的物理量 作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。 (6)现代交通与航空航天领域 通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统 以及运行监视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比 商用系统还要高,因此采用单片机系统更加重要。 目前,我国生产很多型号的单片机,在此,我们采用型号为 AT89S51 的单 青岛理工大学毕业论文 4 片机。因为 AT89S51 是一个低电压,高性能 CMOS 8 位单片机,片内含 4k bytes 的可反复擦写的 Flash 只读程序存储器和 128 bytes 的随机存取数据存储器 (RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标 准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,内置功能 强大的微型计算机的 AT89S51 提供了高性价比的解决方案。 AT89S51 是一个低功耗高性能单片机,40 个引脚,32 个外部双向输入/输 出(I/O)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全 双工串行通信口,AT89S51 可以按照常规方法进行编程,也可以在线编程。其 将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储 器可有效地降低开发成本。 2.2 单片机的基本结构 MCS-51 单片机内部结构,图 2.1 单片机 8051 内部结构。 8051 是 MCS-51 系列单片机的典型产品。8051 单片机包含中央处理器、 程序存储器、数据存储器、定时/计数器、并行接口、串行接口和中断系统等几 大单元及数据总线、地址总线和控制总线等三大总线。 具体说明如下: 中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能 处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的 工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM): 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们 是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不 能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的 数据,运算的中间结果或用户定义的字型表。 青岛理工大学毕业论文 5 图 2.1 单片机 8051 的内部结构 程序存储器(ROM): 8051 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。 定时/计数器(ROM): 8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制 程序转向。 并行输入输出(I/O)口: 8051 共有 4 组 8 位 I/O 口(P0、P1、P2 或 P3) ,用于对外部数据的传输。 全双工串行口: 8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行 口既可以用作异步通信收发器,也可以当同步移位器使用。 中断系统: 8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行 中断,可满足不同的控制要求,并具有 2 级的优先级别选择。 时钟电路: 8051 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时 序,但 8052 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式, 即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数 据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列单片机 则采用普林斯顿结构。下图是 MCS-51 系列单片机的内部结构示意图。 青岛理工大学毕业论文 6 图 2.2 MCS-51 系列单片机的内部结构 MCS-51 的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,图 2.3 是它们的引脚配置,40 个引脚中,正 电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中 断口线与 P3 口线复用。 现在我们对这些引脚的功能加以说明: Pin20:接地脚。 Pin40:正电源脚,正常工作或对片内 EPROM 烧写程序时,接+5V 电源。 Pin19:时钟 XTAL1 脚,片内震荡电路的输入端。 Pin18:时钟 XTAL2 脚,片内震荡电路的输出端。 8051 的时钟有两种方式,一种是片内时钟震荡方式,但需在 18 和 19 脚外 接石英晶体(2-12MHz)和震荡电容,震荡电容的值一般取 10p-30p。另外一种 是外部时钟方式,即将 XTAL1 接地,外部时钟信号从 XTAL2 脚输入。 青岛理工大学毕业论文 7 图 2.3 单片机的引脚图 输入输出(I/O)引脚:Pin39-Pin32 为 P0.0-P0.7 输入输出脚,Pin1-Pin1 为 P1.0-P1.7 输入输出脚,Pin21-Pin28 为 P2.0-P2.7 输入输出脚,Pin10-Pin17 为 P3.0-P3.7 输入输出脚,这些输入输出脚的功能说明如下: Pin9:REST/VPD复位信号复用脚,当 8051 通电,时钟电路开始工作,在 REST 引脚上出现 24 个时钟周期以上的高电平,系统即为初始复位。初始化后, 程序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈指针写入 07H, 其他专用寄存器被清“0” 。REST 由高电平下降为低电平后,系统即从 0000H 地址开始执行程序。然而初始复位不改变 RAM(包括工作寄存器 R0-R7)的状 态,8051 的初始态。 8051 的复位方式可以是自动复位,也可以是手动复位。此外,RESET/Vpd 还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据不丢失。 Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地 址的低位字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正 脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外 输出。更有一个特点,当访问外部程序存储器,ALE 会跳过一个脉冲。 如果单片机是 EPROM,在编程其间,将用于输入编程脉冲。 Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位 地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上, 青岛理工大学毕业论文 8 由 CPU 读入并执行。 Pin31:EA/Vpp程序存储器的内外部选通线,8051 和 8751 单片机,内置 有 4kB 的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程 序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平, 则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器 的 8031,EA 端必须接地。 在编程时,EA/VPP 脚还需加上 21V 的编程电压。 青岛理工大学毕业论文 9 第 3 章 数字时钟的硬件设计 3.1 最小系统设计 单片机的最小系统是由电源、复位、晶振、/EA=1 组成,下面介绍一下每 一个组成部分。 电源引脚: Vcc 40 电源端 GND 20 接地端 工作电压为 5V,另有 AT89S51 工作电压则是 2.7-6V,引脚功能一样。 图 3.1 单片机最小系统的结构图 2.外接晶体引脚 青岛理工大学毕业论文 10 图 3.2 晶振连接的内部、外部方式图 XTAL1 19 XTAL2 18 XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外 部振荡器时,外部振荡信号应直接加到 XTAL1,而 XTAL2 悬空。内部方式时, 时钟发生器对振荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振 的频率可以在 1MHz-24MHz 内选择。电容取 30PF 左右。系统的时钟电路设计 是采用的内部方式,即利用芯片内部的振荡电路。AT89 单片机内部有一个用于 构成振荡器的高增益反相放大器。 引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。这个放大器与 作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以 及电容 C1 和 C2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的 值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳 定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为 12MHz,电容应尽可能的选择陶瓷电容,电容值约为 22F。在焊接刷电路板时, 晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好 地保证震荡器稳定和可靠地工作。 3. 复位 RST 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在 此引脚时,将使单片机复位,只要这个引脚保持高电平,51 芯片便循环复位。 复位后 P0P3 口均置 1 引脚表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。当复位脚由高电平变为低电平时,芯片为 ROM 的 00H 处开始 运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚 RST 青岛理工大学毕业论文 11 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输 出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采用上电自动 复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟 频率选用 6MHz 时,C 取 22F,Rs 约为 200,Rk 约为 1K。复位操作不会对 内部 RAM 有所影响。常用的复位电路如下图: 图 3.3 常用复位电路图 4.输入输出引脚 (1) P0 端口P0.0-P0.7 P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接 上拉电阻。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数据总线,访问期间内部的上拉电阻起作用。 (2) P1 端口P1.0P1.7 P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。 输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输 入用。对内部 Flash 程序存储器编程时,接收低 8 位地址信息。 (3)P2 端口P2.0P2.7P2 是一个带一个有内部上拉电阻的 8 位双向 I/O 端 口。输出时可驱动 4 个 TTL。端口置一时,内部上拉电阻将端口拉到高电平, 作输入用。对内部 Flash 程序存储器编程时,接收高 8 位地址和控制信息。在 访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访问 8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。 (4)P3 端口P3.0P3.7 P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。 输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输 入用。对内部 Flash 程序存储器编程时,接控制信息。除此外 P3 端口还用于一 青岛理工大学毕业论文 12 些专门功能,如下表: 表 3-1 P3 端口引脚第二功能表 P3 引脚第二功能 P3.0串行数据接收(RXD) P3.1串行数据发送(TXD) P3.2外部中断 0 申请( INT0) P3.3外部中断 1 申请(INT1) P3.4定时器/计数器 0 计数输入(T0) P3.5定时器/计数器 1 计数输入(T1) P3.6外部 RAM 写选通 WR P3.7外部 RAM 读选通 RD 3.2 LED 显示电路 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料 及产品工艺,单片机应用系统中常用的显示器有: 发光二极管 LED 显示器、 液晶 LCD 显示器、CRT 显示器等。LED 显示器是现在最常用的显示器之一, 如下图所示。 图 3.4 LED 显示器的符号图 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以 单独使用,也可以组装成分段式或点阵式 LED 显示器件(半导体显示器) 。分 段式显示器(LED 数码管)由 7 条线段围成 8 字型,每一段包含一个发光二极 管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、 灭,就可以显示各种字形或符号。LED 数码管有共阳、共阴之分。下图是共阳 式、共阴式 LED 数码管的原理图和符号。 青岛理工大学毕业论文 13 图 3.5 共阳式、共阴式 LED 数码管的原理图和数码管的符号图 显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要 6 个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接 如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和 个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和 第八个数码管,其余数码管显示横线。LED 显示器的显示控制方式按驱动方式 可分成静态显示方式和动态显示方式两种。对于多位 LED 显示器,通常都是采 用动态扫描的方法进行显示,其硬件连接方式如下图所示。 图 3.6 数码管的硬件连接示意图 数码管使用条件: 青岛理工大学毕业论文 14 a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA) ;动态:平均电流 4.5mA 峰值电流 100mA 数码管使用注意事项说明: (1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260 度;焊接时间:5s; (3)表面有保护膜的产品,可以在使用前撕下来。 青岛理工大学毕业论文 15 第 4 章 数字时钟的软件设计 系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执 行软件的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面 的问题: (1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计 出合理的总体结构,使软件开发清晰、简洁和流程合理; (2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序 化。既便于调试、链接,又便于移植和修改; (3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数; (4)绘制程序流程图; (5)合理分配系统资源; (6)为程序加入注释,提高可读性,实施软件工程; (7)注意软件的抗干扰设计,提高系统的可靠性。 4.1 系统软件设计流程图 这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测 完后,就可以显示时间。 开始 启动定时器 按键检测 时间显示 青岛理工大学毕业论文 16 图 4.1 主程序图 按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1;如果没 有按下,就检测分按键是否按下,分按键如果按下,分就加 1;如果没有按下, 就检测时按键是否按下,时按键如果按下,时就加 1;如果没有按下,就把时 间显示出来。 图 4.2 按键处理流程图 定时器中断时是先检测 1 秒是否到,1 秒如果到,秒单元就加 1;如果没到, N Y N Y N Y 时加 1 显示时间 结束 开始 秒按键按下? 秒加 1 分按键按下? 分加 1 时按键按下? 青岛理工大学毕业论文 17 就检测 1 分钟是否到,1 分钟如果到,分单元就加 1;如果没到,就检测 1 小时 是否到,1 小时如果到,时单元就加 1,如果没到,就显示时间。 图 4.3 定时器中断流程图 N 24 小时到? 分单元清零,时单元加 1 N N N Y Y 时单元清零 时间显示 中断返回 开始 1 秒时间到? 60 秒到? 60 分钟到? 秒单元加 1 秒单元清零,分单元加 1 Y Y 青岛理工大学毕业论文 18 时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算 显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。 图 4.4 时间显示流程图 时十位计 算显示 结束 开始 秒个位计 算显示 秒十位计 算显示 分个位计 算显示 分十位计 算显示 时个位计 算显示 青岛理工大学毕业论文 19 4.2 源程序 表 4-1 P1 口对应段码及数值: P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0显示 数 字 dpgfedcba 16 进制 代码 0001111113FH 10000011006H 2010110115BH 3010011114FH 40110011066H 5011011016DH 6011111017DH 70000011107H 8011111117FH 9011011116FH 中断入口程序: ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号 START 执行 ORG 0003H ;外中断 0 中断程序入口 RETI ;外中断 0 中断返回 ORG 000BH ;定时器 T0 中断程序入口 LJMP INTT0 ;跳至 INTTO 执行 ORG 0013H ;外中断 1 中断程序入口 RETI ;外中断 1 中断返回 ORG 001BH ;定时器 T1 中断程序入口 LJMP INTT1 ;跳至 INTT1 执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回 主 程 序 : START: MOV R0,#70H ;清 70H-7AH 共 11 个内存单元 MOV R7,#0BH CLR P3.7 CLEARDISP: MOV R0,#00H 青岛理工大学毕业论文 20 INC R0 DJNZ R7,CLEARDISP MOV 20H,#00H ;清 20H(标志用) MOV 7AH,#0AH ;放入“熄灭符”数据 MOV TMOD,#11H ;设 T0、T1 为 16 位定时器 MOV TL0,#0B0H ;50MS 定时初值(T0 计时用) MOV TH0,#3CH ;50MS 定时初值 MOV TL1,#0B0H ;50MS 定时初值(T1 闪烁定时用) MOV TH1,#3CH ;50MS 定时初值 SETB EA ;总中断开放 SETB ET0 ;允许 T0 中断 SETB TR0 ;开启 T0 定时器 MOV R4,#14H ;1 秒定时用初值(50MS20) START1: LCALL DISPLAY ;调用显示子程序 JNB P3.7,SETMM1 ;P3.7 口为 0 时转时间调整程序 SJMP START1 ;P3.7 口为 1 时跳回 START1 SETMM1: LJMP SETMM ;转到时间调整程序 SETMM 4.3 数字钟的原理图 在此有必要介绍一下数字电子钟的工作原理。 工作原理 : 数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时 装置。它的计时周期为 24 小时,显示满刻度为 23 时 59 分 59 秒,另外还有校 时功能。因此一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和 单片机,还有校时电路组成。8 个数码管的段选接到单片机的 P0 口,位选接到 单片机的 P2 口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送 入“秒单元”,“秒单元”采用 60 进制计数器,每累计 60 秒发出一个“分脉 冲”信号,该信号将作为“分单元”的时钟脉冲。 “分单元”也采用 60 进制计 青岛理工大学毕业论文 21 数器,每累计 60 分钟,发出一个“时脉冲”信号,该信号将被送到“时单元” 。 “时单元”采用 24 进制计时器,可实现对一天 24 小时的累计。显示电路将 “时” 、 “分” 、 “秒”通过七段显示器显示出来。 用 PROTUES 软件,根据要求画出数字电子钟的原理图如下所示。 图 4.5 数字钟的原理图 在这里,我们有必要介绍一下单片机的中断系统。 中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机 CPU 的效率,也可以对突发事件处理。所谓中断就是当 CPU 正在执行程序 A 时, 发生了另一个急需处理的事件 B,这时 CPU 暂停当前执行的程序 A,立即转去 执行处理事件 B 的程序,处理完事件 B 后,再返回到程序 A 继续执行,这个过 程被叫做中断。 关于中断的概念有下列几个名词:程序 A 称为主程序,处理事件 B 的程序 称为中断服务程序,主程序中转向中断服务程序的地方称为断点,引起中断的 原因即事件 B 称为中断源,转去执行中断服务程序称为中断响应。关于中断的 概念可以打个如下的比喻。领导(CPU)在自己的房间办公(执行主程序) ,下 属(外设)有问题打电话来请示(中断源) ,领导停下正在进行的工作,通过电 话给下属做指示(执行中断服务程序) ,指示完后,领导挂断电话,继续做自己 青岛理工大学毕业论文 22 的工作(返回主程序继续执行) 。 中断是一个过程,当中央处理器 CPU 在处理某件事情时,外部又发生了另 一紧急事件,请求 CPU 暂停当前的工作而去迅速处理该紧急事件。处理结束后, 再回到原来被中断的地方,继续原来的工作。引起中断的原因或发出中断请求 的来源,称为中断源。 单片机一般允许有多个中断源,当几个中断源同时向 CPU 请求中断时,就 存在 CPU 优先响应哪一个中断请求源的问题(优先级问题) ,一般根据中断源 的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源 都有一个中断优先级别,并且 CPU 总是响应级别最高的中断请求。 当 CPU 正在处理一个中断源请求的时候,又发生了另一个优先级比它高的 中断源请求,如果 CPU 能够暂时中止对原来中断处理程序的执行,转而去处理 优先级更高的中断源请求,待处理完以后,再继续执行原来的低级中断处理程 序,这样的过程称为中断嵌套。 青岛理工大学毕业论文 23 第 5 章 系统仿真 5.1 PROTUES 软件介绍 Proteus 软件是 Labcenter Electronics 公司的一款电路设计与仿真软件,它包 括 ISIS、ARES 等软件模块,ARES 模块主要用来完成 PCB 的设计,而 ISIS 模 块用来完成电路原理图的布图与仿真。Proteus 的软件仿真基于 VSM 技术,它 与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比 如 MCS-51 系列、PLC 系列等等,以及单片机外围电路,比如键盘、 LED、LCD 等等。通过 Proteus 软件的使用我们能够轻易地获得一个功能齐全、 实用方便的单片机实验室。 5.2 电子钟系统 PROTUES 仿真 用 PROTUES 软件,根据数字电子钟的原理图,画出仿真图,得到的图如 下所示。 图 5.1 数字钟的 PROTES 仿真 青岛理工大学毕业论文 24 5.3 调试功能 单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。 一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。 拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短 路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其 数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片), 并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入, 再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引 脚上检测一下,看是否符合要求。 走时:默认为走时状态,按 24 小时制分别显示“时时分分秒秒”,有 2 个“”动态显示,时间会按实际时间以秒为最少单位变化。 走时调整:按 ksec 对秒进行调整,按一下加一秒;按 kmin 对分进行调整, 按一下加一分;按 khour 对时进行调整,按一下加一小时,从而达到快速设定 时间的目的。 时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间 基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持 同步的。结合时间概念和误差理论,可以定义电子钟的走时误差 S=S1-S2,S1 表示程序实际运行计算所得的秒;S2 表示客观时间的标准秒。S0 时表示电子 钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S0 表示秒单元数值的 刷新超前,即走时误差为“快”。 本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定 时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢 出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时 间过长或过短,都会造成与基准时间产生偏差,造成走时误差。 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软 件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借 助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,Keil 软件来 青岛理工大学毕业论文 25 调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后 统调程序。 仿真部分采用 proteus 6 professional 软件,此软件功能强大且操作较为简单, 可以很容易的实现各种系统的仿真。 首先打开 proteus 6 professional 软件,在元件库中找到要选用的所有元件, 然后进行原理图的绘制;绘制好后再选择 wave6000 已经编译好的*.hex 文件, 选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行 查,直到满足要求。 青岛理工大学毕业论文 26 结束语 通过这次的设计使我认识到自己对单片机方面的知识了解太少,对于书本 上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够 充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空 间增大。损耗了过多的内存资源。 本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践 的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学 习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去, 此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨 练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多 新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性 和重要性有了更加充分的理解。 我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目 的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自 己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习 就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种 做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强 我们的动手能力和解决问题的能力。 通过这次的实习,我深刻地认识到自己在课堂上学的知识是有限的,而且 知道是一会事,会运用又是另一回事。以后要多实践,要学以致用。 青岛理工大学毕业论文 27 参考文献 1李军.51 系列单片机高级实例开发指南.北京;北京航空航天大学出版社,2009. 2孙涵芳.MCS-51/96 系列单片机原理及应用.北京;北京航空航天大学出版社. 2010. 3徐爱华.单片机应用技术教程.北京;机械工业出版社.2010. 4付晓光.单片机原理与实用技术.北京;清华大学出版社.2011. 5秦曾煌.电工学电工技术与电子技术.北京;高等教育出版社.2010. 6孙涵芳.MCS51/96 系列单片机原理及应用.北京;北京航空航天大学出版社. 2009. 7许熙文.电路基础.北京;高等教育出版社.2011. 8郭慧.基于 MC51 单片机的最小系统设计与研究.西安电子科技大学长安学院 电子科学与技术.2006. 青岛理工大学毕业论文 28 致 谢 首先衷心地感谢我的指导老师梁倩老师。本文从选题到完成,从理论 上的探讨到实际问题的解决,无处不饱含着梁老师的心血。梁老师的悉心指导 和建议给了我极大的帮助和支持,使我受益匪浅。 经过三个月的忙碌和工作,本次毕业设计即将完成。在这次设计中多亏了 我的导师梁老师。梁老师平日里工作繁多,但在我做毕业设计的每个阶段,她 都给予了我很大的帮助,从查阅资料到设计草案的确定和修改,中期检查,后 期详细设计,程序编写等整个过程中都给予了我悉心的指导。有指导老师的帮 助我才能少走弯路,尽快完成毕业论文。其次要感谢我的同学们及舍友对我无 私的帮助,特别是在资料搜集方面,舍友帮助我查阅资料,分析其间的异同之 处,让我在极短的时间内整理出所需的材料,正因为如此我才能顺利的完成设 计;我要感谢我的母校青岛理工大学,是母校给我们提供了优良的学习环 境;另外,我还要感谢那些曾给我授过课的每一位老师,是你们教会我专业知 识。在此,我再一次真诚的向帮助我的老师和同学说一声谢谢!谢谢大家! 青岛理工大学毕业论文 29 附 录 部分程序清单部分程序清单 1 秒计时程序:T0 中断服务程序 INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关 T0 中断允许 CLR TR0 ;关闭定时器 T0 MOV A,#0B7H ;中断响应时间同步修正 ADD A,TL0 ;低 8 位初值修正 MOV TL0,A ;重装初值(低 8 位修正值) MOV A,#3CH ;高 8 位初值修正 ADDC A,TH0 MOV TH0,A ;重装初值(高 8 位修正值) SETB TR0 ;开启定时器 T0 DJNZ R4, OUTT0 ;20 次中断未到中断退出 ADDSS: MOV R4,#14H ;20 次中断到(1 秒)重赋初值 MOV R0,#71H ;指向秒计时单元(71H-72H) ACALL ADD1 ;调用加 1 程序(加 1 秒操作) MOV A,R3 ;秒数据放入 A(R3 为 2 位十进制数组合) CLR C ;清进位标志 CJNE A,#60H,ADDMM ADDMM: JC OUTT0 ;小于 60 秒时中断退出 ACALL CLR0 ;大于或等于 60 秒时对秒计时单元清 0 MOV R0,#77H ;指向分计时单元(76H-77H) ACALL ADD1 ;分计时单元加 1 分钟 MOV A,R3 ;分数据放入 A CLR C ;清进位标志 CJNE A,#60H,ADDHH 青岛理工大学毕业论文 30 ADDHH: JC OUTT0 ;小于 60 分时中断退出 ACALL CLR0 ;大于或等于 60 分时分计时单元清 0 MOV R0,#79H ;指向小时计时单(78H-79H) ACALL ADD1 ;小时计时单元加 1 小时 MOV A,R3 ;时数据放入 A CLR C ;清进位标志 CJNE A,#24H,HOUR HOUR: JC OUTT0 ;小于 24 小时中断退出 ACALL CLR0 ;大于或等于 24 小时小时计时单元清 0 OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移 MOV 73H,77H ;入对应显示单元 MOV 74H,78H MOV 75H,79H POP PSW ;恢复状态字(出栈) POP ACC ;恢复累加器 SETB ET0 ;开放 T0 中断 RETI ;中断返回 闪动调时程序:T1 中断服务程序,用作时间调整时调整单元闪烁指示 INTT1: PUSH ACC ;中断现场保护 PUSH PSW MOV TL1, #0B0H ;装定时器 T1 定时初值 MOV TH1, #3CH DJNZ R2,INTT1OUT ;0.3 秒未到退出中断(50MS 中断 6 次) MOV R2,#06H ;重装 0.3 秒定时用初值 CPL 02H ;0.3 秒定时到对闪烁标志取反 JB 02H,FLASH1 ;02H 位为 1 时显示单元“熄灭“ MOV 72H,76H ;02H 位为 0 时正常显示 MOV 73H,77H MOV 74H,78H MOV 75H,79H 青岛理工大学毕业论文 31 INTT1OUT: POP PSW ;恢复现场 POP ACC RETI ;中断退出 FLASH1: JB 01H,FLASH2 ;01H 位为 1 时,转小时熄灭控制 MOV 72H,7AH ;01H 位为 0 时,“熄灭符“数据放入分 MOV 73H,7AH ;显示单元(72H-73H) ,将不显示分数据 MOV 74H,78H MOV 75H,79H AJMP INTT1OUT ;转中断退出 FLASH2: MOV 72H,76H ;01H 位为 1 时, “熄灭符”数据放入小时 MOV 73H,77H ;显示单元(74H-75H) ,小时数据将不显示 MOV 74H,7AH MOV 75H,7AH AJMP INTT1OUT ;转中断退出 加 1 子程序: ADD1: MOV A,R0 ;取当前计时单元数据到 A DEC R0 ;指向前一地址 SWAP A ;A 中数据高四位与低四位交换 ORL A,R0 ;前一地址中数据放入 A 中低四位 ADD A,#01H ;A 加 1 操作 DA A ;十进制调整 MOV R3,A ;移入 R3 寄存器 ANL A,#0FH ;高四位变 0 MOV R0,A ;放回前一地址单元 MOV A,R3 ;取回 R3 中暂存数据 INC R0 ;指向当前地址单元 SWAP A ;A 中数据高四位与低四位交换 ANL A,#0FH
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 职业技能


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!