基于单片机的频率计设计

文末下载完整资料

                    引 言
  频率测量方法的优化越来越受到重视. 频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。本文。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器

本设计基本要求是:
  (1)可以选择不同的频率范围.
  (2)测量波形为三角波或矩形波.
   (3)测量波形频率范围为0~100HZ,幅值为TTL电平.
   (4)使用数码管显示出实时频率值.

发挥部分:
  (1)测量范围可扩展到4MHZ,或者更高.
  (2)测量波形可为任意波形.
  (3)测量波形的幅值为1~5V峰峰值.
  (4)自动切换档位.
                  方案设计与论证
  数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件的广泛应用,用C语言编程到ATmega16,将使整个系统大大简化。提高整体的性能和可靠性。ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
1方案设计与初步论证:
  (1)频率测量方法概述
    直读法又称无源网络频率特性测量法;比较法是将被测频率信号与已知频率信号相比较 ,通过观、听比较结果 ,获得被测信号的频率;电容充放电式计数法是利用电子电路控制电容器充放电的次数 ,再用电磁式仪表测量充放电电流的大小 ,从而测出被测信号的频率值;电子计数法是根据频率定义进行测量的一种方法 ,它是用电子计数器显示单位时间内通过被测信号的周期个数来实现频率的测量。
     利用电子计数式测量频率具有精度高、测量范围宽、显示醒目直观、测量迅速 ,以及便于实现测量过程自动化等一系列优点 ,所以下面将重点介绍电子计数式测量频率的几种方法。
    (1) 脉冲数定时测频法(M 法) : 此法是记录在确定时间 Tc内待测信号的脉冲个数 Mx ,则待测频率为 :
                Fx= Mx/ Tc
    显然,时间 Tc 为准确值,测量的精度主要取决于计数 Mx的误差。其特点在于:测量方法简单;测量精度与待测信号频率和门控时间有关 ,当待测信号频率较低时 ,误差较大。
         ⑵脉冲周期测频法(T法) : 此法是在待测信号的一个周期 Tx内,记录标准频率信号变化次数 Mo。这种方 法测出的频率是:
                Fx = Mo/ Tx
    此法的特点是低频检测时精度高 ,但当高频检测时误差较大。
     ⑶脉冲数倍频测频法(AM法) : 此法是为克服 M 法在低频测量时精度不高的缺陷发展起来的。通过 A倍频,把待测信号频率放大 A 倍,以提高测量精度。其待测频率为:
                Fx= Mx/ ATo
    其特点是待测信号脉冲间隔减小 ,间隔误差降低;精度比 M法高A倍 ,但控制电路较复杂。
    ⑷脉冲数分频测频法(AT法) : 此法是为了提高T法高频测量时的精度形成的。由于T法测量时要求待测信号的周期不能太短 ,所以可通过A分频使待测信号的周期扩大A倍,所测频率为:
                Fx = AMo/ Tx
    其特点是高频测量精度比T法高A倍;但控制电路也较复杂。
         ⑸脉冲平均周期测频法(M/ T法) : 此法是在闸门时间 Tc内,同时用两个计数器分别记录待测信号的脉冲数
    Mx 和标准信号的脉冲数Mo 。若标准信号的频率为Fo ,则待测信号频率为 :
                Fx = FoMx/ Mo
    M/ T 法在测高频时精度较高 ;但在测低频时精度较低。
    ⑹多周期同步测频法: 是由闸门时间Tc与同步门控时间Td共同控制计数器计数的一种测量方法,待测信号频率与 M/ T法相同。此法的优点是 ,闸门时间与被测信号同步,消除了对被测信号计数产生的±1个字误差 ,
    测量精度大大提高 ,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。
3 确定实验方案
3.1可用实验方案介绍
3.1.1方案 1
  采用频率计模块(如 ICM7216)构成 。特点是结构简单 ,量程可以自动切换。
   ICM7216内部带有放大整形电路 ,可以直接输入模拟信号。外部振荡部分选用一块高精度晶振体和两个低温系数电容构成10MHz并联振荡电路。用转换开关选择 10ms ,0. 1s ,1s ,10s 四种闸门时间 ,同时量程自动切换。
  缓冲电路是为了让频率计采用记忆方式 ,即计数过程中不显示数据 ,待计数过程结束后 ,显示测频结束 ,并将此显示结果保持到下一次计数结果 ,显示时间不小于1s ,小数点位置随量程自动移动。芯片驱动电路输出 15mA — 35mA 的峰值电流 ,所以在5V电源下可直接点亮 LED。

3.1.2方案 2:
  系统采用可编程逻辑器件(PLD,如ATV 2500)作为信号处理及系统控制核心,完成包括计数、门控、显示等一系列工作。
  该方案利用了PLD的可编程和大规模集成的特点,使电路大为简化,但此题使用PLD则不能充分发挥其特点及优势,并且测量精度不够高,导致系统性能价格比降低、系统功能扩展受到限制。
方案3:
  系统采用ATmega16单片机,门控信号由T0内部的计数定时器产生,单位为1 µs。由于单片机的计数频率上限较低,所以需对高频被测信号进行硬件欲分频处理,最后使整个电路完成运算、控制及显示功能。由于使用了单片机,使整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。

3.2 方案比较及确定
  以上方案均需使用小信号放大、整形通道电路来提高系统的测量精度和灵敏度。
方案比较及选用依据:
  显然方案二要比方案一简洁、新颖,但从系统设计的指标要求上看,要实现频率的测量范围0.1Hz-10MHz。以频率下限0.1Hz 比来说,要达到误差〈0.01%的目的,必须显示5位的有效数字,而使用直接测频的方法,要达到达个测量精度,需要主门连续开启1000S,由此可见,直接测频方法对低频测量是不现实的,而采用带有运算器的单片机则可以很容易地解决这个问题,实现课题要求。也就是采用先测信号的周期,然后再通过单片机求周期的倒数的方法,从而得到我们所需要的低频信号的测量精度。另外由于使用了功能较强的ATmega16芯片,使本系统可以通过对软件改进而扩展功能,提高测量精度。因此我们选择采用方案三作为具体实施的方案
方框图:
在这里插入图片描述
各部分功能说明
  ATmega16是一个基于增强地AVR RISC结构的低功耗8 位CMOS微控制器。由于其具有先进的指令集以及单时钟周期指令执行时间,所以ATmega16 的数据吞吐率高达1 MIPS /MHZ ,从而可以缓减系统在功耗和处理速度之间的矛盾。
   AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。
  ATmega16 有如下特点:16K字节的系统内可编程的Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。
  本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Application Flash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
  ATmega16 具有一整套的编程与系统开发工具,包括:C 语言 编译器、宏汇编、 程序调试。

波形转换电路
  主要用施密特触发器来实现. 施密特触发器在电子电路中常用来完成波形变换,幅度鉴别等工作.它具有的特点是:第一,电路的触发方式是电平触发,对于缓慢变化的信号也适用,当输入电压达到某一定值时,输出电压会发生跳变.第二,在输入信号增加和减少的时候, 施密特触发器有不同的阀值电压, 施密特触发器有同相输出和反相输出两种电路形式.在施密特触发器的输入端加入正弦波,它可以将正弦波转换为同频率的矩形波,改变施密特触发器的VT+和VT-就可以调节V0的脉宽.


全套资料免费下载:
关注v-x-公-众-号:【嵌入式基地
后-台-回-复:【毕业设计】 即可获资料
回复【编程】即可获取
包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料
在这里插入图片描述

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用两种办法,第一种方法是使用单片机自带的计数器对输入脉冲进行计数;第二种方法是单片机外部使用计数器对脉冲信号进行计数,计数值再由单片机读取。第一种方法的好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就可以实现。这种方法的缺陷是受限于单片机计数的晶振频率,输入的时钟频率通常是单片机晶振频率的几分之一甚至是几十分之一,在本次设计使用的98C51单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。第二种方法的好处是输入的时钟信号频率可以不受单片机晶振频率的限制,可以对相对较高频率进行测量,但缺点是成本比第一种方法高,设计出来的系统结构和程序也比较复杂。由于成本有限,本次设计中采用第一种方法,因此输入的时钟信号最高频率不得高于11.0592MHz/24=460.8KHz。对外部脉冲的占空比无特殊要求。 根据频率检测的原理,很容易想到利用51单片机的T0、T1两个定时/计数器,一个用来定时,另一个用来计数,两者均应该工作在中断方式,一个中断用于1s时间的中断处理,一个中断用于对频率脉冲的计数溢出处理,(对另一个计数单元加一),此方法可以弥补计数器最多只能计数65536的不足。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式基地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值