秒表倒计时定时器的设计.doc_第1页
秒表倒计时定时器的设计.doc_第2页
秒表倒计时定时器的设计.doc_第3页
秒表倒计时定时器的设计.doc_第4页
秒表倒计时定时器的设计.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

秒表倒计时定时器的设计摘 要本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S52芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能等特点。该电子钟可以做到的功能:上电或按键复位后能自动显示系统提示符“P.”进入时钟准备状态2.第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态。再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。通过设置的A、B、C、D四个键来调整运行,并且利用了8位LED显示时分秒。 数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,这就要求人们不断设计出新型时钟。关键字:单片机;子时钟;键盘控制。目录前言4第一章 概述5第二章 任务分析与元器件52.1 设计任务52.1.1 功能要求52.1.2 设计思路52.2 单片机的特点62.3 89C51单片机介绍6第三章 秒表/倒计时定时器系统设计103.1 总体框图设计103.2 单片机选型103.3 独立式按键控制电路103.4. 键盘电路设计113.4.1 AT89C51的特点123.4.2 单片机附属电路143.5 独立式按键控制电路163.5.1秒表/倒计时定时器系统的按键接口及功能工作原理173.5.2 按键开关的去除抖动功能183.6 LED动态显示电路183.6.1 数码管简介183.6.2 显示的种类193.7 时钟芯片DS1302123.7.1 DS1302芯片具有以下特点123.7.2 它的引脚图和引脚功能123.7.3 DS1302的工作原理133.8 电路原理26第四章 秒表/定时器的原理与结构284.1 设计思路284.2 秒表的原理294.3 秒表的总体结构294.3.1秒表的计数显示电路294.3.2秒表的复位电路294.3.3秒表的控制电路294.4 显示程序模块304.5 DS1302的写时钟程序模块324.6 按键程序模块324.7 定时器程序模块33第五章 硬件、软件的系统调试355.1整个电路原理图125.2调试的基本步骤125.2结果分析12附录 39参考文献46致 谢47前言随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS-51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。本设计采用的是ATMEL公司的AT89C51芯片,此芯片根据了充分的静止CMOS 控制器与三级节目记忆锁,共有:32 条I/O 线, 2 定时计数器, 6 个中断来源,4 K 闪存, 128 个字节在芯片RAM。由于本设计所做的是一个秒表/倒计时定时器的设计,所以要用到单片机的最小应用系统模块,还需要用独立式键盘和动态显示模块。而我的硬件设计详见第二章,主要介绍了需要哪几部分硬件电路和硬件系统的概叙。在2.1节介绍了主要的硬件框架;2.2节简单的介绍了单片机最小应用系统的性能和附属电路;2.3节详细介绍了键盘控制电路;2.4节介绍了动态显示电路。2.5介绍了DS1302芯片。在第三章中我们详细的解说了软件系统的设计。3.1节介绍了我们做这个设计的程序设计思路;3.2节介绍了主程序模块及其框图;3.3节介绍了显示程序模块及其框图。第四章是我对此设计的调试过程和结果显示。第五章就是我对此设计的总体概括,体会和心得。我所设计的这个秒表/倒计时定时器系统,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。第一章 概 述1.1概述电子秒表的主电路主要采用基本RS触发器、时钟发生器、复位电路、计数、译码显示电路和共阴极数码管等构成。本设计大多数采用数字电路,其原因是数字电路具有抗干扰性强、精度高、保密性好、容易处理信息、互换性好、实现计数功能和成本低(重点)等特点。在其中555电路是本次设计的重点,根据设计要求,最小单位为0.1秒,为减小计时误差,依次脉冲源产生100Hz信号。此信号用555计时器构成的多谐振荡器产生。根据公式周期 设置合适的阻容参数,使脉冲源产生100Hz的脉冲信号。通过对数字电子秒表的设计、制造和调试,学会综合应用所学的电子技术知识进行电子产品的设计,并在设计、制造和调试过程中初步掌握电子产品的生产工艺流程和相关技能。对所学知识有更近一步的理解,更培养动手的能力,使得知识与实践相结合。通过555集成定时器来产生频率为100Hz的脉冲信号使得计数器进行计数,将计数器所输出的数据传送给译码器,使译码器来驱动七段数码管显示结果。通过对脉冲信号的控制,以此来控制计数器计数,终实现秒表的启动与停止功能。对计数器进行清零来完成秒表的复位功能。第二章 单片机识的相关知识2.1设计任务要求利用所学的数字电路知识,设计一个计时时间在10 分钟内的电子秒表。 电子秒表电路是一块独立构成的记时集成电路芯片。它集成了计数器、振荡器、译码器和驱动等电路,能够对秒以下时间单位进行精确记时,具有清零、启动计时、暂停计时及继续计时等控制功能。2.1.1功能要求1 )准确计时,要求计时精确到0.1 秒,并以数字的形式显示。2 )其中,0.1 秒的计时要求是10 进制。秒的计时是60 进制。而依据设计要求分的计时在10 分钟内,所以可简化设计1 分的计数是10 进制。3 )具有秒表的启动、停止、复位基本功能。2.1.2设计思路1 ) 根据设计要求计时精确到0.1 秒,即对周期为0.1 秒的矩形波进行计数。所以要求振荡电路产生一个周期为0.1 秒的矩形波。可利用所学的555 多谐振荡器电路产生所需的矩形波。为了减小振荡产生脉冲的误差,所以要求振荡器产生一个周期为0.01秒的矩形波,为满足秒表所需要的0.1秒矩形波,要对周期为0.01秒的脉冲进行10次分频,从而得到0.1的矩形波。2 ) 将计数时间以数字的形式显示出来,则需设计计数显示电路将0.1 秒、1 秒、1 分(60 秒)的计数脉冲输入对应的0.1 秒、1 秒、1 分计数器,再将计数的结果经相应的七段译码器译码,送到数码显示管显示。其中,0.1 秒、秒的个位、1 分的计数器要求是十进制:秒的十位计数器可用反馈归零法设计成六进制计数器。3 )设计一个控制电路,控制秒表的复位、启动和停止。利用启动开关和停止开关控制触发器产生启动/ 停止信号,以此信号控制0.1 秒计数器的输入端有无计数脉冲输入。当复位后,按下启动按钮,则开始计时;当按下停止按钮时,0 . 1 秒计数器的输入端无计数脉冲输入。按下复位开关,将所有的计数器都复位。4 ) 设计一个5V 的电源电路。 由于是通过555 多谐振荡器新生计数脉冲,电源的稳定性影响着振荡器的输出频率的精确性。所以电源电路要保证输出电压稳定在5V 。2.2 单片机的特点 1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。 4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。2.3 89C51单片机介绍 VCC:电源。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 图2.1 89C51单片机 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。49第三章 硬件系统设计3.1 总体框图设计我所设计的是一个秒表/倒计时定时器,秒表/倒计时定时器的设计用到的单片机芯片是AT89C51芯片,除此之外还包括:晶振电路和复位电路构成单片机最小应用系统;还有独立式按键电路;动态显示电路等等;总体设计框图如图3.1所示。AT89C51LED动态显示蜂鸣器按键电路路晶振电路DS1302芯片电路复位电路 图3.1总体设计框图3.2 单片机型号的选择 通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。3.3 数码管显示工作原理数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。 图3.2 数码管显示图3.4 键盘电路设计 该设计只用了一个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键盘可以实现小时和分钟的调节以及控制是否进入省电模式。当按键按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。达到时间调节的目的。 图3.3 多功能控制键3.4.1 AT89C51的特点AT89C51是一种带4K字节闪烁可编程可擦除只读储(FPEROMFalshProgrammable and Erasable Read Only Memory)的低电压,高性能、CMOS、8位单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。AT89C51的管脚图如图3.5所示。图3.5 AT89C51管脚图主要特性:1、与MCS-51 兼容 2、4K字节可编程闪烁存储器3、寿命:1000写/擦循环4、数据保留时间:10年5、全静态工作:0Hz-24Hz6、三级程序存储器锁定7、128*8位内部RAM8、32可编程I/O线9、两个16位定时器/计数器10、5个中断源11、可编程串行通道12、低功耗的闲置和掉电模式13、片内振荡器和时钟电路3.4.2 单片机附属电路单片机附属电路主要有晶体振荡电路和复位电路。一、晶体振荡电路1晶体振荡器的作用 石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。 2本设计所用的晶体振荡电路如图3.6所示: 图3.6 晶体振荡电路此晶振电路所选用的石英晶振频率为12MHZ。时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为0.25us。由于时钟脉冲是单片机的基本工作脉冲,它控制着单片机的工作节奏(使单片机的每一步都统一到它的步调上来)。显然,对同一种机型的单片机,时钟频率越高,单片机的工作速度就越快。但是,由于不同的单片机的硬件电路和器件不完全相同,所以其需要的时钟频率范围也不相同。我们学习的51系列单片机的时钟范围是1.2MHz-12MHz。二、复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。单片机复位的条件是:必须使RST/Vpd或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位单片机常用复位电路如图 3.7(a)和图 3.7(b)所示:图3.7(a) 复位电路 图3.7(b) 与单片机相连的复位电路图3.7(a) 复位电路,其电阻阻值的选择和电容容量的选择都是经过计算的,而最后计算的结果时间常数可以满足我们的需求。其计算过程如下:=0.7RC=0.710001010-6=0.7ms此值远远大于2us,所以此复位电路可用。图3.7(b)是我设计中用到的复位单路,为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生复位高电平。 3.5 独立式按键控制电路独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。如图2.5所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。故只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。独立式按键具体在秒表/倒计时定时器的设计应用,在3.5.1中有详细介绍。图3.8 独立式键盘电路3.5.1秒表/倒计时定时器系统的按键接口及功能工作原理在秒表/倒计时定时器系统中采用4个独立的键盘,其中一个为功能键;一个为数字调整键;一个为取消设置键,用来设定时间;一个为ALM键,用来设定定时时间。按键的接口由P1.7、P1.6、P1.5、P1.5、P1.4来完成。1时间调整:按下功能键,系统停止计时显示,进入时间设定状态,系统只显示小时的内容,其余4位LED处于全暗状态,等待按键设置。此时按动数字调整键后小时将会加1,按动取消键后又重新回到原来的时间显示状态;若再按动功能键则用来调整分钟,此时小时和秒的4位LED指示全暗,按数字调整键后可以对分钟增1调整,按动取消键后又重新回到原来的时间显示状态;再按动功能键则用来调整秒,此时小时和分钟的4位LED指示全暗,秒显示当前的秒数,暗数字调整键可以对秒进行增1调整,按动取消键后又重新回到原来的时间显示状态,按动功能键后系统将自动由设定后的时间开始计时显示。2闹钟设置/启闹:按下ALM键,系统继续计时,但显示为00:00:00,此时再按动功能键后进入闹钟设置状态,设置过程和时间调整相同,但是最后按功能键确定后显示定时时间30S后自动启动定时闹钟功能,并恢复时间显示。定时时间到,蜂鸣器鸣叫1min后自动停闹,每次设置时只能定一次,下次需重新设置。3.5.2 按键开关的去除抖动功能目前,MCS51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.8所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为510ms。由于抖动,会造成被查询的开关状态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。所以我在软件设计中作了相应设计。 图3.8 按键过程3.6 LED动态显示电路3.6.1 数码管简介1 数码管结构数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 9、字符A F及小数点“”。数码管的外形结构如图3.9(a)所示。数码管又分为共阴极和共阳极两种结构,分别如图3.9(b)和图3.9(c)所示。(a) 外型结构; (b) 共阴极; (c)共阳极图3. 9 数码管结构图2 数码管工作原理由于我们采用的是共阴极数码管,所以介绍共阴极数码管的工作原理如下:共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阳极数码管的工作原理与共阴极的正好相反。3 数码管字形编码 要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。LED显示字型码表1见如下:表1 LED显示字型码表显示字符共阴极共阳极显示字符共阴极共阳极03FHC0H96FH90H106HF9HA77H88H25BHA4HB7CH83H34FHB0HC39HC6H466H99HD5EHA1H56DH92HE79H86H67DH82HF71H8EH707HF8H87FH80H3.6.2 显示的种类1 静态显示概念静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码。采用静态显示方式的优点:较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的接口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。2 动态显示概念 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。我们这个设计所使用的显示属于动态显示,其显示电路图形如图4.0所示:.图4.0 动态显示电路显示器由6个共阴极数码管组成。同时采用动态扫描方式依次循环点亮数码管,即构成多位动态显示电路。图8路反相三态缓冲器74LS240作LED动态扫描中,6位数码管均采用共阴极LED,P0接口外接的段码控制驱动信号,用P1接口的P1.0-P1.3外接一片集电极开路反相门电路74LS07做为8位LED的位选信号驱动口, LED共阴极端与74LS06的输出端相连。74LS240的功能74LS240是原码三态输出的8缓冲数码驱动器,其管脚分布图如图2.9所示,G为控制端,又称为使能端其工作原理如下: 当G=0时,A输入为低电平时,Y输出也为低电平。当G=0时,A输入为高电平时, Y输出为高电平。当G=1时,A不论输入高电平还是低电平Y为高阻状态。图4.1 74LS240管脚图74LS06的功能:74LS06是六缓冲的数码驱动器,它是有6个集电极开路的非门所组成,当使能端为低电平时,输入为高电平时输出也为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:Y=A 。3.7 时钟芯片DS1302控制 石英晶体振荡器是利用石英晶体的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片,在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。HMOS型MCS-51外部时钟源的接发:在XTLA1和XTLA2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自激振荡器。其发出的时钟脉冲直接送入片内定时控制部件,其中C电容对频率有微调作用。时钟电路蜂鸣器蜂鸣器原理图蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的。因此需要一定的电流才能驱动它,单片机IO口输出的电流较小,其TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。程序中通过改变单片机对应IO口输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变其占空比,也可以控制蜂鸣器的声音大小。可以有两种驱动方式,即用PNP或NPN三极管电流放大电路驱动。本电路通过一个PNP三极管9012来放大驱动蜂鸣器,当输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;当输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制IO口输出的电平来使蜂鸣器发出声音和关闭,从而实现各种可能音响的产生。启动报警子程序如下: 停止报警子程序如下:START: SETB P1.0 STOP: CLR P1.0RET RET3.7.1 DS1302芯片具有以下特点1、实时时钟/日历:实时时钟/日历提供秒、分、时日星期月和年等信息,每月天数以及闰年能自动调整,时钟可以才用24h或AM/PM的12h格式。2、31字节的静态RAM:用于存储数据。3、带慢速充电控制备份电源的充电特性。4、简单的三线串行接口:该芯片使用同步串行通信。与时钟/RAM通信供需3根线:复位、数据线、串行时钟。数据可以以每次1个字节的形式传送到时钟/RAM或从其读出。3.7.2 它的引脚图和引脚功能DS1302的引脚结构见图4.2引脚功能见下表2。 表2 DS1302的引脚功能引脚号引脚名称功能1Vcc2主电源2、3X1、X232.768KHZ晶振接口4GND地5RST复位兼片选端6I/O串行数据输入/输出7SCLK串行时钟输入端8Vcc1后备电源表2 DS1302的引脚功能3.7.3 DS1302的工作原理1DS1302组成:串行时钟芯片主要由移位寄存器、控制逻辑、振荡器、实时时钟、RAM、电源组成,如图4.3所示。图4.3DS1302内部结构组成2复位时钟:为了初始化任何的数据传送,通过把RST输入驱至高电平来启动所有的数据传送。RST有两种功能,首先,RST接通控制逻辑,允许地址/命令序列送次,RST提供了单字节或多字节数据传送的手段。时钟SCLK是上升沿后继以下降沿的序列。数据输入时,在时钟的上升沿前必须有效,而数据位在时钟的下降沿之后输出。如果RST输入为低电平,则I/O引脚变为高阻状态,终止数据传输。通电时,VCC2.5V,RST由0至1状态时,SCKL必须为逻辑0。3操作方式:芯片的操作受地址/命令字节控制,每一组数据的传送由命令字节初始化。地址/命令字节格式如图4.4所示。位7必须为逻辑1,如果它是0,禁止写DS1302;位6逻辑0,指定为时钟/日历数据,为逻辑1,指定为RAM数据;位15指定输入或输出的寄存器单元地址;位0指定输入/输出数据。命令字节总是从最低有效位开始输入。4、数据输入:当命令字节为写命令时,最低位为0,在下8个SCLK周期的上升沿输入字节,数据从最低位开始输入;数据输出:当命令字节为读命令时,最低位为1,在下8个SCLK周期的下降沿输出数据字节。这时被传送的第一数据为发生在命令字节的最后一位之后的第一个下降沿,所以,在非多字节方式,每次读或写的脉冲个数为16个,前8个为命令脉冲,后8个为读或写的脉冲。这样在单字节传送数据时,每次命令为16个脉冲即可完成,多余的脉冲将忽略不计。通过对地址31寻址,可以把时钟/日历或RAM寄存器规定为多字节读写方式,读或写仍从地址0单元的最低位开始。当以多字节方式写时钟寄存器时,必须按数据的次序写最先的8个寄存器。这样8个时钟字节的读或写共需72个脉冲时钟,31个RAM的读或写共需256脉冲时钟。其时序如图4.5所示:图4.5 DS1302的时序3.8 电路原理电路的核心是89C51单片机,其内部带有4KB的FlashROM,无须扩展程序存储器;电脑没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM。系统配备6位LED显示和4个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS240作LED动态扫描的段码控制驱动信号,用P2接口的P2.0-P2.5外接一片集电极开路反相门电路74LS06做为6位LED的位选信号驱动口, 6个数码管的8根段选线分别与74LS06的输出端相连;LED共阴极端与7406的输出端相连;按键接口由P1.7、P1.6、P1.5、P1.4来完成。DS1302实时时钟芯片接口由P1.0、P1.1、P1.2来控制,P3口接闹钟小喇叭。第四章 数字秒表的原理与结构4.1 设计思路因为我做的是秒表/倒计时定时器的设计,它需要具有校时,调时,定时,闹钟,等功能,而且用到了DS1302芯片,此芯片具有自动记时功能所以编写程序简单。所以我们考虑到用单片机语言来做我们的设计。对于程序我们的设计思路是:1在此设计中用定时器来完成动态扫描显示。用定时器T0定2ms的时间间隔,每次定时时间到时就输出一个LED信号,即显示一位。定时器每中断6次后循环到第一位LED显示。这样动态显示占用CPU的时间只有输出段码和输出位码的有限时间,提高了CPU的工作效率。2. 要有主程序程序。3本设计使用按键来对DS1302写入时间校时,对时,设定时间的,所以要有DS1302的写时钟程序。4系统资源分配:1)定时器:定时器T0用做显示定时,按方式1工作,每隔2ms溢出中断一次。2)片内RAM及标志位的分配:a)显示缓冲区:使用(30H35H)6个RAM作LED的显示缓冲区,每一个缓冲区对应一个LED,在定时时间到时就把6个缓冲区中的数送给相应的LED显示。b)时间缓冲区:使用(36H3BH)6个RAM来保存当前从DS1302中读出来的时间,在主程序运行时大约每一秒钟把其中的数据更新到显示缓冲区用以显示。c)定时缓冲区:使用(40H45H)6个RAM保存设定的定时时间,并在时间缓冲区的内容更新的同时进行比较,若相同则表明定时时间到了,开始调用报时子程序。4.2秒表的原理根据秒表设计的方框图可以得知,贯穿整个秒表最主要的是脉冲。在控制脉冲的启动与停止,就可以控制秒表计时的启动与停止。脉冲通过555集成定时器外接电路来产生。在秒表中,输入脉冲后,脉冲进入计数器,使计数器计数。而计数器计数结果输入译码器中,由译码器译码显示驱动数码管显示。因脉冲有一定的周期,而计数器在脉冲的上升沿或下降沿到来时计一次数,所以脉冲的周期就影响计数器计数时间。当脉冲周期为1Hz时,计数器计一次数的时间就为1秒。对于计时的复位,对计数器直接进行复位就可以清零计数时间,使结果为零。4.3秒表的总体结构秒表的总体结构可分为三部分,由计数显示电路、复位电路、控制电路与电源电路组成。复位电路主要对计数显示电路进行复位清零,控制电路主要对计数器进行启动与停止的控制。而电源电路主要是由外部接入电源,使电子秒表计数,外部电源是由家用220V交流电转变为5V的直流电,以供秒表使用。4.3.1秒表的计数显示电路计数显示电路是构成秒表电路不可缺少的部分之一。计数显示电路包括三部分:计数电路、译码电路和显示电路。(1)计数电路由计数器组成。所设计的秒表计时时间在10分钟内,且精确到0.1秒,所以需要的计数器有四个,这四个计数器根据个位、十位的排列不同,而相接的方法也不同。(2)译码电路译码电路主要是将计数电路所输出的结果进行译码成七位能驱动数码管显示的数字。(3)显示电路显示译码电路所输入的内容。由数码管组成。4.3.2 秒表的复位电路复位电路是为清零计数器计数结果,将计数器复位至最初为“0000”的状态。它包括电源清零电路和反馈清零电路。(1) 电源清零电路这种清零电路对于每一个计数器都需要。在所设计的秒表中,所采用的计数器属于高电平清零。当给予一个高电平的清零信号,就使计数器清零。所以将计数器的清零端与电源相连,并在之间串联一个开关。当需要清零时,闭合开关即可;而不需要清零时,则断开清零端与电源的连接,即断开开关。(2) 反馈清零电路秒表计时,在秒的单位下,个位计时为十进制,当个位计时为9时,当下一脉冲到来时,则个位变为0,而十位则加1。因为秒的十位为六进制,所以计到5时,当下一脉冲到来时,就向分钟的单位的个位进1。因74LS90是异步计数器,所以在秒的单位的十位下将其采用六进制的连接方法。所以需要一个反馈清零电路来完成。因为在实际电路中,此计数器的电源清零信号与反馈清零信号会相冲突,违背规则,所以在电源清零电路与反馈清零电路之间用一或门来相连,以协调两信号的清零作用。4.3.3秒表的控制电路控制电路就是对秒表的控制,也就是对秒表所需要的脉冲的控制,因控制了脉冲就相当于控制了秒表。控制脉冲主要是控制脉冲的启动与停止。电路包括脉冲产生电路、防抖动电路和脉冲分频电路。(1)脉冲产生电路脉冲的产生电路由集成定时器555和外部电路构成。外部电路中包括电阻、电容及电位器。因为所设计的秒表的脉冲精确到0.01s,所以电阻、电容及电位器的值如图中所示。根据T=0.7(R1+2R2)C,可知式中的R2为图中的R2+R3,而C为C1。所以当R1=100K,R2=3K,调节电位器R3=17K时,而C1为0.1uF,就可以得到所需的0.01s的脉冲。RS触发器的功能如下:表4 RS触发器真值表R SQn+11 11 01 10 0Qn10不定(2)脉冲分频电路所设计的秒表计时间时精确到了0.1秒,而由脉冲产生电路产生的脉冲的周期是0.01秒,是为了减小误差,提高准确性。但是,为了满足秒表的需要,所以必须将0.01秒的脉冲变为0.1秒的脉冲,这就采用分频电路。所谓分频电路,其实与计数相差无异。当脉冲输入计数器时,计数器采用二进制计数,这就相当于把所输入的脉冲进行了二分频,也就是由计数器输出的连续数据组成的脉冲的频率是输入的脉冲的一半。若计数器采用十进制计数,而输出的结果的频率则是原来的十分之一,也就是十分频。所以当周期为0.01秒的脉冲输入到以十进制计数的计数器中,其输出的脉冲的周期为0.1秒。这就满足了秒表的需要。分频电路,原脉冲由CKA输入,而新的脉冲则由QD输出。按这样的接法就可达到想要的结果。 因 在分频器上 的 R0(1) 和 R0(2)端上与电源相连并串上一个开关,这样可以对分频器进行清零处理。4.4显示程序模块显示程序采用动态显示,由位码控制那一个数码管显示,由段码控制数码管显示什么数值,根据中断程序显示时间来查表显示数值,从第一位到第六位逐个点亮,同时每显示一位判断一次六位显示完了吗?没有显示完进行显示下一位,显示完了从头开始再循环。显示子程序的流程图如图4.6所示: 图4.6 显示子程序流程图ESPLAY:MOV R2 ,#01H ;将位码送R2MOV R0,#30 ;将段码送R0NEXT3:MOV A,R0 MOV DPTR,#TAB2MOVC A,A+DPTRMOV P0,A ;将段码送R0MOV P1,R2 ;将位码送R2LCALL DELAY1 ;调用延时程序MOV A,R2JB ACC.3,U2 ;显示完转U2RL A ;未显示完,将未码左移MOV R2,A ;将位码重送、R2中INC R0 ;指向31HLJMP NEXT3 U2:RET ;显示返回4.5 DS1302的写时钟程序模块DS1302的写时程序:WRITE-CLOCK: NOP ;DS1302的写时钟程序,入口:ADDR-1302作地址 :DATA-1302作数据;功能:在ADDR地址单元中写入DATA数据CLR CLKCLK RST; NOPSETB RSTMOV R3,ADDR-1302 LCALL CLOCK-OUTMOV R3,DATA-1302LCALL CLOCK-OUTCLR RSTSETB CLKRST4.6按键程序模块进入按键程序,判断有键按下吗?没有,则调用延时重新判断,如果到了,调用延时去抖程序,再次判断有键按下否,没有则返回延时程序,如果有按键,则判断键

温馨提示

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

评论

0/150

提交评论