毕业设计(论文)-基于单片机的数字钟设计.doc_第1页
毕业设计(论文)-基于单片机的数字钟设计.doc_第2页
毕业设计(论文)-基于单片机的数字钟设计.doc_第3页
毕业设计(论文)-基于单片机的数字钟设计.doc_第4页
毕业设计(论文)-基于单片机的数字钟设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽工程大学机电学院毕业设计(论文) - -I 基于单片机的数字钟设计基于单片机的数字钟设计 摘摘 要要 传统的数字数字钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率 也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计 需求。本设计拟实现的基本功能为单片机计时显示功能。能够体现单片机数字钟的可 扩展优越性,加入时间调整程序,使用按钮,调整年月日及时间。 ,采用 LCD 数码管 显示时、分、秒,以 24 小时计时方式,根据数码管动态显示原理来进行显示,用 12MHz 的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本 功能,还可以实现对时间的调整。 单片机是集 CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。 它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而 51 系列的单片 机是各单片机中最为典型和最有代表性的一种。本文设计的数字钟是基于 51 单片机, 同时使用汇编语言为程序设计语言,从而克服传统数字钟的弊端。 数字钟是采用数字电路实现对“时” 、 “分” 、 “秒”数字显示的计时装置。数字钟 的精度、稳定度远远超过老式机械钟。20 世纪末,电子技术获得了飞速的发展,在其 推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展 和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的 节奏也越来越快。数字钟因其小巧,价格低廉,走时精度高,使用方便,功能多,便 于集成化而受广大消费的喜爱,因此得到了广泛的使用。 关键词:关键词:单片机;数字钟;汇编语言 严雅雯:基于单片机的数字钟设计 - II - Digital clock design based on SCM Abstract Traditional digital electronic clock with a greater amount of discrete components, not only takes up a lot of space and utilization than low, as the system design complexity continues to improve, the clock system design using traditional methods are difficult to meet the design requirements . Microcontroller is a CPU, RAM, ROM, timer / counter and a variety of interfaces in one of the micro-controller. Its small size, low cost, powerful, widely used in smart products and industrial automation. And 51 of the microcontroller MCU is the most typical and most representative one. This design is based on 51 single-chip electronic clock, using both assembly language for the assembly language, to overcome the drawbacks of conventional electronic clock. A digital clock is used in digital circuit , points and second digital display timer. A digital clock accuracy and stability than old mechanical clock. In this design, we adopt LED digital display tube, minutes and seconds, when in 24 hours time, according to the principle of dynamic display of digital tube to show, with the crystals 12MHz produce oscillation pulses, timer count. In this design, the circuit has its time, still can realize the function of the time. A digital clock is its small, inexpensive, high precision, easy to use and when, the function is much, facilitate integration by vast consumption, so it has been widely used. Keywords: microcontroller;electronic clock;assembly language 安徽工程大学机电学院毕业设计(论文) - -III 目目 录录 引言引言1 第第 1 章章 概述概述4 1.1 数字钟的研究背景 5 1.2 数字钟的国内外研究现状 5 第第 2 章章 硬件设硬件设 计计7 2.1 硬件芯片介绍 7 2.2 系统硬件架构 18 结论与展望结论与展望8 致致 谢谢9 参考文献参考文献10 附录附录11 严雅雯:基于单片机的数字钟设计 - IV - 严雅雯:基于单片机的数字钟设计 - 0 - 引引 言言 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了 社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也 使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说 总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情, 当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可 能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面 发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改 变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大 部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术 也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟, 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更 高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使 用。 数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭, 车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路 的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数 字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸 如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定 时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟 表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 数字 钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、 剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于 数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳 定、 携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。 安徽工程大学机电学院毕业设计(论文) - -1 第第 1 章章 概述概述 1.1 研究背景研究背景 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了 社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也 使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快1。在高度发达信息 化的 21 世纪,人们总是那么忙碌.时间对我们来说总是那么宝贵,在我们的日常工作、 学习、生活中,时间概念愈加显得重要。生活工作中班车要准点,上班要准时,开会 要有时间限制;工业生产中,每一道工序都要有严格的时间限制,这样才能做到井井 有条;严谨的科技研究中,时间更是重中之重。能够准确的了解并且实时性的知道时 间,是我们学习、工作、生活中不可或缺的。机械式钟表虽然也可以告知人们时间, 也可以定时,显示日历。但是由于受到机械结构、动力和体积的限制,在功能、性能 以及造价上都没办法与数字钟相比。同时时钟已经成为人们日常生活中不可或缺的一 部分,而如何在时钟的基础上,根据人们生活的需要增加相应的功能以及方便于人们 的生活,成为时钟设计方面的重点。 单片机以其强大的功能,低廉的价格成为许多多功能电子产品的首选。单片机应 用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前 必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实 现了2。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机应用中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒 计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更 更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对.时,分,秒.数 字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活 中不可少的必需品,数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带 来了极大的方便,而且大大地扩展了钟表原先的报时功能3。诸如定时自动报警、按时 自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力 设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因 此,研究数字钟及其应用的扩大,有着非常现实的意义。 1.2 研究现状研究现状 单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和 关注,应用很广、发展很快。单片机具有体积小、重量轻、抗干扰能力强、环境要求 不高、价格低廉、可靠性高、灵活性好、开发较为容易4。目前单片机渗透到我们生活 的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各 种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处 理,广泛使用的各种智能 IC 卡,录像机、摄像机,以及程控玩具、电子宠物等等,这 些都离不开单片机。 数字钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比, 它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。钟表的数 字化给人们生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定 时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开 关烘箱等,所有这些,都是数字钟数字化为基础的5。随着人们生活环境的不断改善和 严雅雯:基于单片机的数字钟设计 - 2 - 美化,在许多场合可以看到数字电子钟。但目前市场上各式各样的数字电子钟大多数 用全硬件电路实现,电路结构复杂,功率损耗大等缺点。因此有必要对数字电子钟进 行改进。 1.3 发展趋势发展趋势 随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系 统设计中的应用,单片机从 4 位、8 位、16 位到 32 位,其发展历程一直受到广大电子 爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式 系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系 统的开发行列中,推动着单片机技术的创新进步7。 多功能数字钟的用途十分广泛,只要有计时的存在,便要用到数字钟的原理及结 构;在同类计时产品中,它以其小巧,价格低廉,走时精度高,使用方便,功能多, 便于集成化而受广大消费者的喜爱。随着人类科技文明的发展,人们对于时钟的要求 在不断提高 。时钟已不仅仅被看出一种用来显示时间的工具,在很多实际应用中它还 需要能够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展 的趋势。在这种趋势下,时钟的数字化、多功能化已经成为现在时钟生产研究的主导 设计方向。 数字钟的未来呈现出个性化、专业化的趋势,而且每个网站在资源方面总是有限 的,客户的需求又是全方位的,所以不同类型的网站以战略联盟的形式进行相互协作 也是必然趋势,数字钟的实现,更体现了这一点。在不久的将来,数字钟肯定会逐渐 被人们接受,很快会走进千家万户,给人们带来方便。 随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。在城市 的主要营业场所,公共场所使用 LCD 数字钟已成为一种时尚。但目前市场上各式各样的 LCD 数字钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点。因此有必 要对数字钟进行改进。钟表的数字化给人们生产生活带来了极大的方便,而且大大地 扩展了钟表原先的报时功能,与机械钟相比具有更高的准确性和直观性,具有更长的 使用寿命。数字钟是一种以数字电路为基础,综合了模拟电路和电路基础知识设计出 的一种时间数字显示装置8。它具有结构简单、设计方便、稳定性强等优点,已广泛应 用于各种公共场所,成为人们日常生活的必需品,给人们的生活、学习、工作带来很 大的方便。 随着科学技术及人们生活观念的改变,数字钟的设计显示出新的发展趋势:体积 更加小巧;功能更加强大,如增加了定时控制,闹铃,仿广播电台等功能;设计的外 表更加的时尚、美观,适合人们的审美观点的改变。数字钟也随着单片机的发展而日 趋完善,目前,数字钟在走时准确,调时方便,功耗等方面都比机械时钟有较大的进 步9。因此,更为先进的电子钟的研究有着良好的发展前景和市场潜力,在不久的将来, 数字钟会有更进一步的发展。 第第 2 章章 硬件设计硬件设计 借助 51 单片机来实现基本的时分秒的电子钟。将由两大模块组成:8051 单片机 控制模块和 LED 显示模块。通过对电子钟系统原理图的分析,及每个模块功能的实现, 对每个模块的电路进行具体的搭建。 2.1 单片机模块单片机模块 2.1.1 单片机的结构单片机的结构 安徽工程大学机电学院毕业设计(论文) - -3 MCS-51 单片机是美国 INTE 公司于 1980 年推出的产品,与 MCS-48 单片机相比, 它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达 111 条,MCS-51 单片机可以算是相当成功的产品,一直到现在,MCS-51 系列或其兼 容的单片机仍是应用的主流产品,MCS-51 系列单片机主要包括 8031、8051 和 8751 等 通用产品。 (1)MCS-51 的引脚说明 MCS-51 单片机结构框架 MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,图 2-1 是它们的引脚配置,40 个引脚中,正电源和地 线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线 复用。现 在我们对这些引脚的功能加以说明: 图 2-1 引脚图 1.电源: VCC - 芯片电源,接+5V VSS - 接地端 2.时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 3. 控制线:控制线共有 4 根 ALE/PROG:地址锁存允许/片内 EPROM 编程脉冲 ALE 功能:用来锁存 P0 口送出的低 8 位地址 PROG 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,此引脚输入编程 脉冲。 PSEN:外 ROM 读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD 功能:在 Vcc 掉电情况下,接备用电源。 严雅雯:基于单片机的数字钟设计 - 4 - EA/Vpp:内外 ROM 选择/片内 EPROM 编程电源。 EA 功能:内外 ROM 选择端。 Vpp 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,施加编程电源 Vpp。 4. I/O 线 8051 共有 4 个 8 位并行 I/O 端口:P0、P1、P2、P3 口,共 32 个引脚。P3 口还 具有第二功能,用于特殊信号输入输出和控制信号(属控制总线) (2)复位方式 Pin9:RESET/Vpd 复位信号复用脚,当 8051 通电,时钟电路开始工作,在 RESET 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈指针写入 07H,其它专用寄存器被 清“0” 。RESET 由高电平下降为低电平后,系统即从 0000H 地址开始执行程序。然而, 初始复位不改变 RAM(包括工作寄存器 R0-R7)的状态,8051 的初始态。 8051 的复位方式可以是自动复位,也可以是手动复位,见下图 2-2。此外, RESET/PDF 还是一复用脚,Vcc 掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据不丢失。 图 2-2 51 单片机复位方式 2.1.2 单片机的存储器单片机的存储器 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛 (Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为 一的结构,即普林斯顿(Princeton)结构。INTEL 的 MCS-51 系列单片机采用的是哈佛结 构的形式。 程序存储空间可以被映射为内部程序存储器或者外部程序存储器。AT89C51 单片 机内部具有的 4KB 程序存储器被映射到程序存储空间的 0000H0FFFH 区间。这部分 安徽工程大学机电学院毕业设计(论文) - -5 程序存储空间也可以被映射为外部程序存储器,它具体被映射为哪一种程序存储器取 决于引脚 (引脚 31)所接的电平。当引脚为高电平,内部程序存储器被映射到这部分 程序存储空间;当引脚为低电平,外部程序存储器被映射到这部分程序存储空间。高 于 0FFFH 的程序存储空间只能被映射为外部程序存储器。 AT89C51 的内部数据存储器有 256 字节,它们被分为两部分:高 128 字节和低 128 字节。低 128 字节的内部数据存储器是真正的 RAM 区,可以被用来写入或读出数 据。这一部分存储容量不是很大,但有很大的作用。它可以进一步被分为 3 部分,如 图 2-3 所示。 07H 00H 0FH 08H 17H 10H 7FH 30H 1FH 18H 2FH 20H 通用数据存储器 位寻址空间 4组工作寄存器 11 10 01 00 图 2-3 内部数据存储器低 128 字节 在内部数据存储器低 128 字节中,地址从 00H1FH 的最低 32 个字节组成 4 组工 作寄存器,每组有 8 个工作寄存器。每组中的 8 个工作寄存器都被命名为从 R0 到 R7。在一个具体时刻,CPU 只能使用其中的一组工作寄存器。当前正在使用的工作寄 存器组由位于高 128 字节的程序状态字寄存器(PSW)中第 3 位(RS0)和第 4 位 (RS1)的数据决定。程序状态字寄存器中的数据可以通过编程来改变,这种功能为保 护工作寄存器的内容提供了很大的方便。如果用户程序中不需要全部使用 4 组工作寄 存器,那么剩下的工作寄存器所对应的内部数据存储器也可以作为通用数据存 储器使 用。工作寄存器在内部数据存储器中的地址映射如表 2-1 所示。 表 2-1 工作寄存器地址映射表 严雅雯:基于单片机的数字钟设计 - 6 - 在工作寄存器区上面,内部数据存储器的地址从 20H2FH 的 16 个字节范围内, 既可以通过字节寻址的方式进入,也可以通过位寻址的方式进入,位地址范围从 00H 到 7FH5。字节地址与位地址的对应关系。 内部数据存储器地址从 30H7FH 部分仅可以用作通用数据存储器。内部数据存 储器的高 128 字节被称为特殊功能寄存器(SFR)区。特殊功能寄存器被用作 CPU 和 在片外围器件之间的接口,它们之间的联系方框图如图 2-4 所示。 程序存储器 MCS51核特殊功能存储器 并行和串行接口 定时/计数器 中断处理 监视定时器等 其他外围器件 图 2-4 殊功能寄存器(SFR)工作框图 CPU 通过向相应的特殊功能存储器写入数据实现控制对应的在片外围器件的工作, 从相应的特殊功能存储器读出数据实现读取对应的在片外围器件的工作结果。 在 AT89C51 单片机中,包括前面提到的程序状态字寄存器(PSW)的特殊功能存 储器共有 26 个,它们离散地分布在 80HFFH 的内部数据存储器地址空间范围内 7 ,对于没有定义的存储单元用户不能使用。如果向这些存储单元写入数据将产生不确 定的效果,从它们读取数据将得到一个随机数。 0 组 (RS1=0,RS0=0) 1 组 (RS1=0,RS0=1) 2 组 (RS1=1,RS0=0) 3 组 (RS1=1,RS0=1) 地址寄存器地址寄存器地址寄存器地址寄存器 00HR008HR010HR018HR0 01HR109HR111HR119HR1 02HR20AHR212HR21AHR2 03HR30BHR313HR31BHR3 04HR40CHR414HR41CHR4 05HR50DHR515HR51DHR5 06HR60EHR616HR61EHR6 07HR70FHR717HR71FHR7 安徽工程大学机电学院毕业设计(论文) - -7 对于字节地址低位为 8H 或者 FH 的特殊功能存储器,既可以进行字节操作,也可 以进行位操作。例如前面提到的用来确定当前工作寄存器组的程序状态字寄存器 (PSW) ,它的地址为 00H,因此对它可以进行字节操作,也可以进行位操作。采用位 操作可以直接控制程序状态字寄存器中的第 3 位(RS0)或第 4 位(RS1)数据而不影 响其他位的数据。低位地址不为 8H 或 FH 的特殊功能存储器只可以进行字节操作,当 需要修改这些特殊功能存储器中的某些位时,对其他的位应注意保护 。 片外数据存储空间可以被映射为数据存储器、扩展的输入/输出接口、模拟/ 数字 转换器和数字/模拟转换器等。这些外围器件统一编址,所有外围器件的地址都占用数 据存储空间的地址资源,因此 CPU 与片外外围器件进行数据交换时可以使用与访问外 部数据存储器相同的指令。CPU 通过向相应的外部数据存储器地址单元写入数据实现 控制对应的片外外围器件的工作,从相应的外部数据存储器地址单元读出数据实现读 取对应的片外外围器件的工作结果。 2.2 LED 显示模块显示模块 2.1.1 LED 数码管的原理数码管的原理 在某些半导体材料的 PN 结构中,注入的少数载流子与多数载流子复合时,会把多 余的能量以光的形式释放出来,从而把电能直接转换为光能。PN 结加反向电压,少数 载流子难以注入,故不发光。这种利用注入式电导致发光的原理制作的二极管叫做发 光二极管,通常为 LED,全称为 Light Emitting Diodo。. LED 数码管实际上是由七个发光管组成 8 字形构成的,加上小数点就是 8 个,如 图 2-5 所示,这些段分别由字母 a,b,c,d,e,f,g,dp 来表示,DP 表示小数点。当数码管特定 的段加上电压后,这些特定的段就会发亮,这样就可以看到不同的字样。发光二极管 的阴极连接到一起连接到低电平的称为共阴极数码管,如图 2-6 所示,发光二极管的 阳极连接到一起连接到电源正极的称为共阳极数码管,如图 2-7 所示。数码管按段数 分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多 一个小数点显示) ;按能显示多少个“8”可分为 1 位、2 位、4 位等等数码管;按发光 二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发 光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时应将 公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。 当某一字段的阴极为高电平时,相应字段就不亮。 。共阴极数码管是指将所有发光二极 管的阴极接到一起形成公共阴极(COM)的数码管。共阴极数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。 当某一字段的阳极为低电平时,相应字段就不亮。 a b c d e f g dp 高电平驱动 f a b c d e g dp 低电平驱动 +5V 图 2-5 数码管 图 2-6 共阴极数码管 图 2-7 共阳极数码管 严雅雯:基于单片机的数字钟设计 - 8 - 各段码位的对应关系,如表 2-2 所示: 表 2-2 码位对应关系 段码位 D7D6D5D4D3D2D1D0 显示段 Dpgfedcba LED 显示断码如表 2-3 所示: 表 2.-3LED 显示段码 字型共阳极段码共阴极段码字型共阳极断码共阴极段码 0C0 H3F H990 H6F H 1F9 H06 HA88 H77 H 2A4 H5B HB83 H7C H 3B0 H4F HCC6 H39 H 499 H66 HDA1 H5E H 592H6D HE86 H79 H 682 H7D HF84 H71 H 7F8 H07 H空白FF H00 H 880 H7F HP8C H73 H 根据我们所采用的 8051 单片机的特点,我们选用共阴极数码管。将 8051 的 P0.0P0.7 通过 74LS245 芯片与共阴极数码管的 ap 相连,高电平的位对应的 LED 数 码管的段亮,低电平的位对应的 LED 数码管的段暗,这样,当 P0 口输出不同的段码, 就可以控制数码管显示不同的字符。 2.1.22.1.2 数码管驱动方式的分类数码管驱动方式的分类 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们 要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动9。 1.静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或 安徽工程大学机电学院毕业设计(论文) - -9 者使用如 BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示 亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 5840 根 I/O 端口来驱动,一个 89S51 单片机可用的 I/O 端口为 32 个,实际应用时必须增加译码驱 动器进行驱动,增加了硬件电路的复杂性。 2.动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是 将所有数码管的 8 个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的 公共极 COM 增加位选通控制电各自独立的 I/O 线控制,当单片机输 出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形, 取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通 控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个 数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程 中,每位数码管的点亮时间为 12ms,由于人的视觉暂留现象及发光二极管的余辉效 应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就 是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够 节省大量的 I/O 端口,而且功耗更低。 2.32.3 数字钟原理框图数字钟原理框图 电子钟的实现原理框图如图 2-8 所示,它由单片机 8051、电源、时分显示部分组 成。对于电源部分,一部分是 220V 的电压通过变压整流稳压来得到数字系统所需要的 +5V 电压,以维持系统的正常工作,实际设计操作中,我们采用现成的控制平台。对 于时分显示部分,我们采用动态扫描,以降低对单片机端口数的要求,同时也可降低 系统的功耗。时分秒显示模块以及显示驱动都将通过 8051 单片机的 I/O 口控制。 8051 显示驱动 时间显示(时,分) 电源 图 2-8 电子钟系统原理框图 严雅雯:基于单片机的数字钟设计 - 10 - 2.42.4 硬件电路硬件电路 2.4.12.4.1 复位电路复位电路 51 单片机的复位是由外部的复位电路来实现的。复位引脚 RST 通过一个斯密特触 发器与复位电路相连,斯密特触发器用来抑制噪声。 上电复位:上电复位电路是种简单的复位电路,只要在 RST 复位引脚接一个电 容到 VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过 电容加到 RST 复位引脚一个短暂的高电平信号,这个复位信号随着 VCC 对电容的充 电过程而回落,所以 RST 引脚复位的高电平维持时间取决于电容的充电时间。为了保 证系统安全可靠的复位,RST 引脚的高电平信号必须维持足够长的时间。 电路图如下: 图 3.1 复位电路 上电自动复位是通 RST C1 10u R1 10K 过外部复位电路的电容充电来实现的。只要 Vcc 的上升时间不超过 1ms,就可以实现 自动上电复位。 2.4.22.4.2 按键电路按键电路 按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的 I/O 端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过 程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开 关的机械特性有关,一般在 5-10ms 之间。为了避免 CPU 多次处理按键的一次闭合, 应采用措施消除抖动。本文采用的是独立式按键,直接用 I/O 口线构成单个按键电路, 每个按键占用一条 I/O 口线,每个按键的工作状态不会产生互相影响。电路图如图 2.9 所示: 安徽工程大学机电学院毕业设计(论文) - -11 8051 开关 开关 开关 图 2-9 按键电路 P1.0 低电平,则表示有健按下,则进行调秒 ;当变为高电平时,则停止调节 P1.1 低电平,则表示有健按下,则进行调分;当变为高电平时,则停止调节 P1.2 低电平,则表示有健按下,则进行调时;当变为高电平时,则停止调节 2.4.3 时钟电路时钟电路 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不 紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直 接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另 一种为外部时钟方式。本文用的是内部时钟方式。电路图如图 2-10 所示: 22p 22p X1 crystal R1 10K 图 2-10 时钟电路 51 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器 的输入端为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡 器和微调电容,就构成一个稳定的自激振荡器。 2.4.4 显示控制电路显示控制电路 由于我们采用 LED 共阴极显示屏,故当我们给相应的数码管高电平时,相应的数 码管就会亮起来。通过总线接到数码管的数字输入端,通过单片机进行数位控制,通 过循环扫描控制,利用人眼的视觉暂留功能,达到数位数码管同时显示的效果。其原 理示意图如图 3.4 所示: 严雅雯:基于单片机的数字钟设计 - 12 - R1 R2 图 3.4 显示控制电路 2.4.52.4.5 数码管显示电路数码管显示电路 数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛 应用。 1.数码管的工作原理 数码管是由八个发光二极管构成的显示器件。在数码管中,若将二极管的阳极连 在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。本文 用到的八个数码管均是共阴极的。当发光二极管导通时,它就会发光。每个二极管就 是一个笔划,若干个二极管发光时,就构成了一个显示字符。将单片机的 I/O 口控制 相应的芯片与数码管的 a-g 相连,高电平的位对应的发光二极管亮,这样,由 I/O 口输 出不同的代码,就可以控制数码管显示不同的字符。本文的八个数码管均采用动态显 示方式,显示当前的时间。 电源电路设计电源电路设计 电源电路包括变压器、桥式整流器、电容和稳压器。通过变压器变压,使得 220V 电压变为 5 V,在通过桥式整流,电容的滤波作用,稳压器的稳压作用,可输出 5V 的 稳定电压。在本文的实践过程中,我们直接采用实验室提供的数字工作箱进行电子设 计。 时钟芯片模块时钟芯片模块 为了使电子钟信号达到精确,这里选用 DS12887 时钟芯片,产生时钟信号,单片 机通过并联总线与时钟芯片通信,将时间显示出来。 综合电路的实现综合电路的实现 基于上述各个模块电路的分析与设计,结合我们要完成的电子钟实现功能有基 本的时分秒的 24 小时制的时间显示,以及基本的调时调分调秒功能的实现。我们设计 出如下的综合电路,如图 3.5 所示: 安徽工程大学机电学院毕业设计(论文) - -13 第第 3 章章 软件设计软件设计 在基于单片机 8051 的控制下,实现时、分、秒的基本功能,本系统主要分为主程 序和中断程序两大模块。我们通过 8051 单片机的基本的 C 语言进行其逻辑编程,使其 实现上述功能。 调时功能调时功能 给三个按键,当 8051 单片机的 P1.0 端口的键按下,即 P1.0 端口检测到低电平 时,则进入调秒状态,当 P1.1 端口的键按下,则进入调分的状态;当 P1.2 端口的键按 下,则进入调时的状态。当 P1.0P1.2 所对应的键抬起,即对应的端口检测到高电平, 则退出调时状态,进行正常的时钟显示。由于按键的过程中,存在按键的抖动,从而 有时会使得误判断,而进入调时功能状态,对此,我们加入了去抖,其流程图如图 4.1 所示: 严雅雯:基于单片机的数字钟设计 - 14 - 有按键信号? 延时等待 仍有按键信号? 按键处理 N N Y Y 图 4.1 按键去抖程序图 显示功能显示功能 由于我们需要显示的数字不是很多,故本系统采用数码管进行显示。系统的时 分秒显示部件由两只三位七段共阳极的 LED 数码管构成,为了保护各段 LED 不被损 坏,我们加入了限流电阻。前两位用于时的显示,第三和第四位用于分钟的显示,第 五和第六位用于秒的显示。 程序设计程序设计 本章主要对实现时分秒功能具体程序的设计,保证得到准确的时分秒显示,及 调时功能。 /* * Desc:DS12C887 6 位数码管显示 * */ #include #define SEG_DAT P0 #define SEG_BIT P2 #define DS_DAT P0 #define DS_SEC 0 x00 #define DS_MIN 0 x02 #define DS_HOR 0 x04 #define DS_WEK 0 x06 安徽工程大学机电学院毕业设计(论文) - -15 #define DS_DAY 0 x07 #define DS_MON 0 x08 #define DS_YER 0 x09 #define DS_R_A 0 x0A #define DS_R_B 0 x0B #define DS_R_C 0 x0C #define DS_R_D 0 x0D #define DS_Y_S 0 x0E /年千百位 #define CNT_M 30 /控制闪烁速度,为偶数 #define BCD_DEC(X) (X sbit DS_RW = P31; sbit DS_AS = P32; sbit DS_CS = P33; sbit KEY1 = P10; sbit KEY2 = P11; sbit KEY3 = P12; sbit KEY4 = P13; unsigned char dispMode = 0; /显示模式 unsigned char modify = 0; /修改模式 unsigned char count = 0; /修改模式下闪烁计数 unsigned char DIS6; unsigned char code C_DAT= 0 xC0,/*0*/ 0 xF9,/*1*/ 0 xA4,/*2*/ 0 xB0,/*3*/ 0 x99,/*4*/ 0 x92,/*5*/ 0 x82,/*6*/ 0 xF8,/*7*/ 0 x80,/*8*/ 0 x90,/*9*/ 0 xBF,/*-*/ ; unsigned char code C_BIT=0 xDF,0 xEF,0 xF7,0 xFB,0 xFD,0 xFE; 严雅雯:基于单片机的数字钟设计 - 16 - void Delay(unsigned int t) unsigned int a,b; for (a=0; a 4; DIS1 = C_DATi i = DS12887_Read(DS_MIN); DIS2 = C_DATi 4; DIS3 = C_DATi i = DS12887_Read(DS_SEC); DIS4 = C_DATi 4; DIS5 = C_DATi if (modify != 0 DIS2 * (modify - 1) + 1 = 0 xFF; else if (dispMode = 1) /显示模式 1,年 DIS0 = 0 xFF; i = DS12887_Read(DS_Y_S); /年高两位,在 RAM 里 0 x0E DIS1 = C_DATi 4; DIS2 = C_DATi i = DS12887_Read(DS_YER); /年低两位 DIS3 = C_DATi 4; DIS4 = C_DATi DIS5 = 0 xFF; if (modify != 0 DIS2 * (modify - 4) + 2 = 0 xFF; 严雅雯:基于单片机的数字钟设计 - 18 - else if (dispMode = 2) /显示模式 2,月日 星期 i = DS12887_Read(DS_MON); /月 if (i 4; DIS1 = C_DATi /显示小数点 i = DS12887_Read(DS_DAY); /日 DIS2 = C_DATi 4; DIS3 = C_DATi i = DS12887_Re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论