简易数字频率计的设计与制作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

简易数字频率计的设计与制作作者:赵玉龙【摘要】:本设计是基于单片机内部的两个定时器/计数器与外围硬件相结合,并通过一定的软件控制达到测量频率的目的的简易数字频率计,可以直接精确测量1KHZ到65.535KHZ的频率范围。本设计的优点在于直接利用单片机进行频率的测量,更加的方便,实用。【关键词】:单片机频率测量前言单片机即单片微控制器单元,由微处理器,存储器,I/O接口,定时器/计数器等电路集成在一块芯片上构成,现在应用于工业控制,家用民用电器以及智能化仪器仪表,计算机网络,外设,通信技术中,具有体积小、重量轻、性价比高、功耗低等特点,同时具有较高的抗干扰性与可靠性可供设计开发人员灵活的运用各种逻辑操作,实现实时控制和进行必要的运算.目前单片机更朝着大容量、高性能与小容量、低廉化、外围电路内装化以及I/O接口的增强和能耗降低等方向发展.本设计的意义在于如何利用较少的硬件达到直接测量较高精度频率的目的,更加的方便,快捷,相对于传统的数字频率计实用性更高。第一章系统硬件电路的设计1.1方案的选择:方案一.采用组合电路和时序电路等大量的硬件电路来构成,利用555多谐振荡产生闸门时间,两个D触发器来进行门控信号的选择,数码管,以及其他硬件电路组成。方案二.利用一块AT89C51单片机芯片直接来驱动数码管。比较方案一与方案二在实现功能一样的情况下,我们可以发现纯粹利用硬件电路来实现不仅产品体积较大,运行速度慢,而且增加了许多的硬件成本,而利用单片机体积小、功能强、性能价格比较高等特点,在实际使用时节约了很多的硬件成本,符合设计的要求,故而本设计选择方案二来实现频率的测量.1.2系统功能分析本系统是基于单片机的简易数字频率计,在硬件的基础上通过软件的控制达到频率测量的目的,整个系统工作由软件程序控制运行。整个系统主要可以分为两个部分,频率测量单元和频率显示单元。频率测量单元主要完成对被测信号的测量,而显示单元主要完成用数码形式将测量结果显示出来。1.3.系统的方框图:被测信号通过单片机的内部处理,完成对被测信号的测量,经过转换以数字形式显示出来。图一系统方框图具体情况如下:将单片机定时/计数器0设置成定时器方式,由它对单片机机器周期信号计数定时,形成时间间隔T,去控制单片机定时/计数器1的启动和停止,单片机定时计数器1设置成计数器方式,由它对被测信号计数.这里需要说明能够的是单片机内的两个定时/计数器在同一时刻不能既作为计数器使用又作为定时器使用,如设置成定时器模式就不能作为计数器使用;如设置成计数器模式就不能作为定时器使用.1.4.各功能部件单元电路设计被测信号频率测量单元数字显示单元1.4.1单片机的选择由于51系列的单片机的功能已经完全符合本设计的要求,考虑到性价比,本设计选择AT89C51作为电路的单片机,完成各项功能。图二AT89C511.4.2单片机基本外围电路设计1.振荡电路:Mcs-51单片机的18、19脚为其内部反相放大器的两个引脚,这两个引脚外接一个石英晶振及电容构成自激振荡器,石英晶振可以在1.2-12MHZ之间选择,电容的大小通常为30pf左右,过大或过小都会影响振荡器的起振速度以及稳定性。MCS-51单片机每个机器周期包含六个状态周期,一个周期包含两个振荡周期,因此一个机器周期可以产生12个机器周期,采用12MHZ的晶体振荡器每个机器周期恰好为1us.图三振荡电路2.复位电路:RST是单片机复位引脚的输入端,在振荡器运行的情况下,要实现复位操作RST脚要至少保持有两个机器周期的时间,即2us的时间,但为了保险起见一般要保持10ms以上的高电平,如果采用的C为10uf,R采用8.2K,时间常数为10×10×8.2×10=82ms,这个时间完全符合要求。图四复位电路1.4.351系列的两个定时/计数器1.结构MCS-51单片机的51系列有两个定时/计数器,分别记为Timer0和Timer1.,每个定时/计数器有两个外部输入端(T0,INTO和T1,INT1),两个八位的二进制加法计数器(TH0,TL1和TH0,TH1).由两个内部特殊功能寄存器(TMOD,TCON)控制定时/计数器的工作,其中TMOD是定时/计数器模式控制寄存器,其格式如下表一用于定时/计数器1用于定时/计数器0TMOD被分成两部分,每部分四位,分别用于定数/计数器0和定时/计数器1,其中GATE和C/用于控制信号的输入,M1,M0分别用于定义定数计数器的工作方式.寄存器名:TMOD位名称地址:89H位地址GATE-------C/---M1-----M0-----GATEC/M1M0--------------------寄存器名:TCON位名称地址:88H位地址TF18FHTR18EHTF08DHTR08CH表二用于定时/计数器TCON也被分成两部分,高四位用于定时/计数器.其中TR1,TR0用于控制计数信号的输入,TF1,TF0为计数器的溢出位.2.原理计数信号的选择和控制通过TMOD中的GATE,C/和TCON中的TR0这三个控制位来实现.TMOD中的C/用于选择技术信号的来源:C/=0时,计数信号取自于内部,其计数频率为晶振的1/12,此时工作于定时器模式;C/=1是,计数信号来自于外部T0(P3.4),此时工作于计数器模式.TMOD中的GATE和TCON中的TR0用于控制计数脉冲的接通,通常有两种使用方法:*GATE=0时,仅仅由程序设置TR0=1来接通计数脉冲,由程序设置TR0=0来停止计数.此时与外部INTO无关.*GATE=1时,先由程序设置TR0=1,然后由外部INT0=1来控制接通计数脉冲,INT0=0时则停止计数.如TR0=0,则禁止INT0来控制接通计数脉冲.所以,GATE是专门用来选择计数器启动方式的控制位,GATE=0时可由程序来启动计数器,GATE=1时可有外部硬件通过INTO端来启动计数.定时/计数器的工作方式(M0,M1可设置四种内部计数的工作方式):表三计数器的工作方式工作方式0主要为兼容早期的MCS-48单片机所保留,一般可用工作方式1来替代.工作方式1的特点是:计数范围宽,但每次的初值都要由程序来设置.工作方式2的特点是:初值只需设置一次,每次溢出后,初值自动会从TH0加工作方式M1M0功能01230111010113位二进制加法计数器16位二进制加法计数器可重置初值的8位二进制加法计数器2个独立的8位二进制加法计数器(T0)计数范围-初值=8192-初值-初值=65536-初值-初值=65536-初值-初值=256-初值--初值=256-初值载到TL0或从TH1加载到TL1,但计数范围较工作方式1小.工作方式3的特点是:增加了一个独立的计数器,但只能适用于定时/计数器0,而且占用了定时/计数器1的TR1和TF1,所以此时的定时/计数器1只能用于不需要中断的应用.四种工作方式对溢出的处理方式均相同,加法计数器超出范围后,溢出信号将使TCON中的TF0或TF1置位,计数器回到0或初值,重新开始计数.TF0或TF1置位后,可向CPU提出中断请求,TF0和TF1在CPU响应中断后会自动复位,而在禁止中断响应时,也可由软件来复位.本设计的工作方式将在软件设计中体现.3.定时和计数范围的计算由于本设计定时器到工作方式2所以我们只详细介绍工作方式2的定时和计数范围的计算方法.工作方式2的计数范围为计数范围为-初值=100-初值=256-初值,初值的取值范围为00H-0FFH,即0-255,当初值为0时,可得最大计数值N=255;而初值为0FFH=255时,可的最小计数值N=1.定时时间T为计数范围乘上计数周期,即T=(-初值)×计数周期=(-初值)×1/fosc×12=12(256-初值)/fosc根据定时时间T可计算出应设置的初值为:初值=256-T/计数周期=256-T×fosc/12当晶振频率fosc=12MHZ时,计数周期为1us,当初值为0时,可得最大定时时间为T为256us,即0.256ms.如果设定时间为T=0.1ms=100us初值=256-100us×1/fosc*12=256-100us*12MHZ/12=9CH,即TH0,TL0或TH1,TL1的初值可设为9CH.本设计的具体参数值在后文的软件设计中具体介绍.4.定时/计数器中断定时/计数器的中断源是由其溢出位引入的.当定时/计数器到达设定的时间或检测到设定的计数脉冲后,其溢出位置位.TF0和TF1分别为定时/计数器0和定时/计数器1的溢出位,当定时/计数器溢出时,相应的TF1和TM0就会置”1”,由此向CPU提出中断请求.CPU响应中断后,会自动清除这些中断请求标志位,定时/计数器的计数脉冲由外部引脚T0和T1引入时,定时/计数器就变为计数器.当计数脉冲使得定时器计数溢出时,相应的TF0和或TF1就会置”1”,由此向CPU提出计数器的中断请求.当发生中断请求后,CPU会通过各中断源的屏蔽情况来决定是否响应中断请求,ET1和ET0分别为定时/计数器0,1的中断允许位,当允许为”0”,表示屏蔽相应的中断,即禁止CPU响应来自来自相应中断源提出的中断请求.允许位为”1”,表示允许CPU响应来自相应中断源提出的中断请求.1.4.4显示单元图五显示单元数码管1.工作原理数码管使用时通过解码电路得到的数码接通相应的发光二极而形成相应的字。2.分类数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种.共阳数码管是指将所有发光二极管的阳接到一起形成公共阳极(COM)的数码管.共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮.当某一字段的阴极为高电平时,相应字段就不亮.共阳数码管内部连接如下图所示.图六数码管共阴数码管是指将所有发光二极管的阴接到一起形成公共阴极(COM)的数码管.共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮.当某一字段的阳极为低电平时,相应字段就不亮.本设计采用的是共阳的数码管。3.数码管的驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示我们要的数字,因此数码管的驱动方式方式不同,可以分为静态显示和动态显示两类.1.静态显示驱动:静态驱动是指每个数码管的每一个段码都是由单片机的I/O口进行驱动,或者使用如BCD码二-十进制译码器进行驱动.静态驱动的优点是编程简单,较小的电流即可获得较高的亮度,占用CPU时间少,便于检测和控制,但占用I/O端口多,只适合显示位数少的场合,本设计中用到了5个数码管需要5*8=40根I/O端口来驱动,而一快8051单片机可用的I/O口才32个,实际使用时必须增加译码器进行驱动,电路复杂.且增加了硬件成本.2.动态驱动:所谓动态显示就是将数码管的8显示笔a,b,c,d,e,f,g,h的同名端连在一起,另外为每个数码管的公共极COM端增加位选通控制电路,位选通由各自独立的I/O线控制,单单片机输出字型码时,所有数码管都接受相同的字型码,但究竟是哪个数码管会显示字型,取决于单片机对位选通COM端电路的控制,只要我们将所需要显示的数码管的位选通打开,该数码管就显示出自字型,没有选通的数码管就不会亮,通过分时轮流控制各个数码管的COM端,就会使各个数码管轮流受控显示,这就是动态驱动.在轮流显示的过程中,每位数码管的点亮时间为都为一定设置时间,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果与静态显示的效果是一样的但能够节省大量放入I/O端口,硬件电路更加简单,成本低也较低.在本设计中考虑到实际使用时要求效果相同但可以节省更多的成本,我们采用了动态显示驱动的方式。从电路图中我们可以看出我们将数码管的段码分别和单片机的P1.0~P1.7相连来控制数码管显示的字型码,数码管的位选通由5个PNP三极管控制,分别接到单片机的P2.0~P2.4端口上,通过程序来控制P2

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功