基于单片机的等精度频率计的设计
基于单片机IP核的等精度频率计设计讲解
基于单片机IP核的等精度频率计设计摘要FPGA就是目前最受欢迎的可编程逻辑器件之一。
IP核是将一些在数字电路中常用但比较复杂的功能模块,设计成可修改参数的模块,让用户可以直接调用这些模块。
随着FPGA的规模越来越大,使用IP核是一个发展趋势。
传统测频原理的频率计的测量精度将随被测信号频率的下降而下降,在使用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且整个频率区域能保持恒定的测试精度。
本文结合FPGA与8051单片机的优点实现了基于FPGA的8051 IP核应用,设计一个等精度频率计。
关键词:FPGA,8051IP核,等精度频率计设计AbstractField Programmable Gate Array(FPGA)is one of the most welcomed programmable logic devices.IP core is a module which has changeable parameters.With the IP core we can implement some complex functional module in digital circuits.With the increasing scale in the FPGA,Using IP core is becoming more and more popular.Traditional frequency measurement principle of the frequency accuracy will decline with the decline of the signal frequency.It Has a greater limitations in use. Equal precision frequency meter not only has high measurement accuracy, and the whole frequency region can maintain a constant test accuracyCombining the advantages of FPGA and 805 l MCU,the paper mainly realize the application of 8051 IP core based on FPGA that design a same accuracy frequency.Key words: FPGA,8051 IP core,same accuracy frequency目录第一章绪论 (3)1.1 课题研究背景及意义 (3)1.2 主要任务 (3)第二章杭州康芯公司KX2C5F+开发板介绍 (5)2.1 KX2C5F+系统简介 (5)2.2 主要应用 (5)第三章系统设计 (7)3.1 8051单片机介绍 (7)3.2 8051单片机IP软核介绍 (7)3.3 8051单片机IP软核实用系统构建 (9)3.4 等精度频率计设计 (10)3.4.1等精度测频原理 (10)3.4.2等精度测频实现 (11)3.4.3测量占空比的原理 (13)3.4.4测量占空比的实现 (13)3.5单片机的功能 (14)3.5.1数据传输 (14)3.5.2 液晶显示 (15)3.6单片机与FPGA的组合应用 (16)第四章程序调试 (17)4.1 等精度频率计程序 (17)4.2 单片机程序和VHDL程序编译在一起下载到FPGA中 (17)第五章结果讨论 (19)总结 (20)致谢 (21)参考文献 (22)附录 (23)附录1:等精度频率计相关程序 (23)附录2 单片机相关程序 (25)第一章绪论1.1 课题研究背景及意义随着可编程逻辑设计技术的发展,每个逻辑器件中门电路的数量越来越多,一个逻辑器件就可以完成本来由很多分立逻辑器件和存储芯片完成的功能。
基于51单片机的频率计设计报告
基于51单片机的频率计设计报告
在该设计报告中,我将介绍基于51单片机的频率计的设计原理、硬件设计和软件设计。
设计原理:
频率计是一种用于测量信号频率的仪器。
基于51单片机的频率计的设计原理是利用单片机的定时计数器来测量输入信号的脉冲个数,然后将脉冲个数转换为频率。
硬件设计:
硬件设计主要包括输入信号的采集电路、计数电路和显示电路。
输入信号的采集电路使用一个比较简单的电路,包括一个电阻和一个电容,用于将输入信号转换为脉冲信号。
计数电路使用单片机的定时计数器来进行计数。
在这个设计中,我们使用TIMER0和TIMER1作为计数器,分别用于测量输入信号的高电平时间和低电平时间,然后将两个时间相加得到一个完整的周期,再根据周期反推频率。
显示电路使用一个LCD模块来显示测量得到的频率。
在这个设计中,我们使用IO口将计算得到的频率发送给LCD模块,通过LCD模块来显示频率。
软件设计:
软件设计主要包括信号采集、脉冲计数和频率计算。
信号采集主要通过定时器的中断来进行。
在采集到一个脉冲之后,中
断程序会使计数器加1
脉冲计数是通过对输入信号高电平时间和低电平时间计数来完成的。
在脉冲计数的过程中,我们需要启动TIMER0和TIMER1,并设置正确的工
作模式和计数值。
频率计算是通过将高电平时间和低电平时间相加得到一个完整的周期,然后再根据周期反推频率来完成的。
最后,将计算得到的频率发送给LCD
模块进行显示。
总结:。
基于单片机的频率计的设计与制作
器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组
不会有闪烁感。
系统硬件设计
Q4 PN P
Q3 PN P
Q2 PN P
R1 R2 R3 R4 vcc
R 13 10 K
Q1 PN P
S1 SW -P B
1K
1K
1
1K
2
3
1K
4
5
6
7
8
13 12
数字电平信号
15
14
C1
30 pf
31
C2 30 pf
系统软件设计
4.2软件流程图
开始
声明变量与函数
读
SB2=0?
设置 启动
显示函数
状态标志=0 测量函数
no
yes
状态标志=0?
主程序
系统软件设计
显示函数
扫描信号初始化
输出显示信号 输出扫描信号下一个扫
描信号延时4ms
四位数? 返回
yes
系统软件设计
T-1s
重设定时值
no 20次?
yes
基于单片机的频率计设计
基于单片机的频率计设计1. 1 系统组成频率计由单片机89C51 、信号予处理电路、串行通信电路、测量数据显示电路和系统软件所组成,其中信号予处理电路包含待测信号放大、波形变换、波形整形和分频电路。
系统软件包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算术运算模块、浮点数到BCD 码转换模块。
1. 2 处理方法本频率计的设计以AT89C51 单片机为核心,利用它内部的定时/ 计数器完成待测信号周期/ 频率的测量。
单片机AT89C51 内部具有2 个16 位定时/ 计数器,定时/ 计数器的工作可以由编程来实现定时、计数和产生计数溢出中断要求的功能。
设计综合考虑了频率测量精度和测量反应时间的要求。
例如当要求频率测量结果为3 位有效数字,这时如果待测信号的频率为1Hz ,则计数闸门宽度必须大于1000s。
为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法。
当待测信号的频率大于100Hz 时,定时/ 计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,这时要满足频率测量结果为3 位有效数字,则计数闸门宽度大于1s 即可。
2. 1 信号予处理电路频率计信号予处理电路如图3 所示,它由四级电路构成。
第一级为零偏置放大器,当输入信号为零或者为负电压时,三极管截止,输出高电平;当输入信号为正电压时,三极管导通,输出电压随着输入电压的上升而下降。
零偏置放大器把如正弦波样的正负交替波形变换成单向脉冲,这使得频率计既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。
3. 1 数据处理过程在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。
测量初始化模块设置堆栈指针(SP) 、工作寄存器、中断控制和定时/ 计数器的工作方式。
定时/ 计数器的工作首先被设置为计数器方式, 即用来测量信号频率。
在对定时/ 计数器的计数寄存器清0 后,置运行控制位TR 为1 ,启动对待测信号的计数。
基于单片机的数字频率计的设计(毕业设计)
1.2 设计思路
测频的原理归结成一句话,就是“在单位时间内对被测信号进行
计数”。常用的频率测量方法主要有两种:直接测频法和间接测频法 (即测周期法)。直接测频法在低频段的相对测量误差较大,故常用 于测量高频信号;测周期法在高频段的相对测量误差较大,更适合于 测量低频信号由于本次设计的实际测量范围为1Hz~200KHz左右,主 要是针对在低频段的测量,且由于单片机具有程序运算功能,频率为 周期的倒数,这样使得频率测量与周期测量可以互通,故此次设计采 用间接测量法(测周期法)。其原理图如下所示:
使用液晶显示器(LCD)进行数据显示
采用LED显示管只能显示0~9和一些简单的英文字母,这使得频率计的功能 受到极大的限制,而LCD显示管能够解决LED的不足,增强显示功能。LCD具有体 积小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,因 此广泛应用于各种仪表设备中去。LCD液晶显示器主要有字符型和点阵型两种。 字符型LCD能显示特定的字符,应用在特定的场合,可以代替常用的LED显示器 显示和进行其他特殊字符的显示;点阵型LCD则可以以点阵的形式显示字符、图 形和汉字,满足各种需要。
被测闸门信号
未知
高频基准信号
实际检出已知信号
1.3 电路设计
数字频率计系统设计共包括四大模块:单片机控制模块、电源模
块、放大整形模块及LED显示模块。 数字频率计设计总框图如下:
被测信 号
放大整形电 路
单片机
LED 显 示
电源电 路
最新【毕业设计】基于51单片机和CPLD的等精度频率计
基于51单片机和CPLD的等精度频率计目录摘要 (1)1前言 (2)2 等精度频率测量原理分析 (3)2.1 等精度频率测量原理 (3)2.2 等精度频率测量的误差分析 (4)3 系统方案 (5)3.1 方案提出及比较 (5)3.2系统整体方案 (6)3.3单片机与CPLD连接方案 (7)3.4 单片机定时及数据处理方案 (8)3.5 CPLD计数方案 ...................................................... 错误!未定义书签。
4 方案实现........................................................................... 错误!未定义书签。
4.1 CPLD设计 .............................................................. 错误!未定义书签。
4.2单片机设计.............................................................. 错误!未定义书签。
4.3关键源代码分析...................................................... 错误!未定义书签。
5 仿真及测试....................................................................... 错误!未定义书签。
5.1仿真分析.................................................................. 错误!未定义书签。
5.2 测试结果与分析..................................................... 错误!未定义书签。
基于51单片机的频率计的设计
基于51单片机的频率计的设计频率计是一种测量信号频率的仪器或装置,其原理是通过对信号进行计数和定时来测量信号的周期,并进而计算出信号的频率。
在本篇文章中,我们将设计一个基于51单片机的频率计。
设计方案:1.硬件设计:(1)时钟电路:使用11.0592MHz晶振为主频时钟源。
(2)信号输入:选择一个IO口作为信号输入口,通过外部电平转换电路将信号转换为51单片机能够处理的电平。
(3)显示装置:使用一个数码管或液晶显示屏来输出测量结果。
2.软件设计:(1)初始化:设置51单片机的工作模式、引脚功能、定时器等。
初始化时,将IO口配置为输入模式,用于接收外部信号。
(2)定时器设置:利用定时器来进行时间的测量,可以选择适当的定时器和计数器来实现定时功能。
(3)外部中断设置:使用外部中断来触发定时器,当外部信号边沿发生变化时,触发定时器的启动或停止。
(4)中断处理:通过中断处理程序来对定时器进行启动、停止和计数等操作。
(5)频率计算:将计数结果经过一定的处理和运算,计算出信号的频率。
(6)结果显示:将计算得到的频率结果通过数码管或液晶显示屏输出。
3.工作流程:(1)初始化设置:对51单片机进行初始化设置,包括端口、定时器、中断等的配置。
(2)外部信号输入:通过外部电平转换电路将要测量的信号输入至51单片机的IO口。
(3)定时测量:当外部信号发生边沿变化时,触发外部中断,启动定时器进行定时测量。
(4)停止计时:当下一个信号边沿出现时,中断处理程序停止定时器,并将计数结果保存。
(5)频率计算:根据定时器的设置和计数结果,计算出信号的周期和频率。
(6)结果显示:将计算得到的频率结果通过数码管或液晶显示屏进行显示。
4.注意事项:(1)确保信号输入的稳定性:外部信号输入前需要经过滤波处理,保证稳定且无杂波的输入信号。
(2)测量精度的提高:如有必要,可以通过增加定时器的位数或扩大计数范围来提高测量精度。
(3)显示结果的优化:可以根据需要,通过增加缓冲区、优化数码管显示等方式来改善结果的可读性。
基于单片机的频率计的设计
基于单片机的频率计的设计一、频率计的基本原理频率是指单位时间内信号周期性变化的次数。
频率计的基本原理就是在一定的时间间隔内对输入信号的脉冲个数进行计数,从而得到信号的频率。
常用的测量方法有直接测频法和间接测频法。
直接测频法是在给定的闸门时间内测量输入信号的脉冲个数,计算公式为:频率=脉冲个数/闸门时间。
这种方法适用于测量高频信号,但测量精度会受到闸门时间和计数误差的影响。
间接测频法是先测量信号的周期,然后通过倒数计算出频率。
其适用于测量低频信号,但测量速度较慢。
在实际设计中,通常会根据测量信号的频率范围选择合适的测量方法,或者结合两种方法来提高测量精度和范围。
二、系统硬件设计1、单片机选型在基于单片机的频率计设计中,单片机是核心控制部件。
常用的单片机有 51 系列、STM32 系列等。
选择单片机时需要考虑其性能、资源、价格等因素。
例如,对于测量精度和速度要求不高的应用,可以选择51 单片机;而对于复杂的系统,可能需要选择性能更强的 STM32 单片机。
2、信号输入电路为了将输入信号接入单片机,需要设计合适的信号输入电路。
一般需要对输入信号进行放大、整形等处理,使其成为标准的脉冲信号。
常见的整形电路可以使用施密特触发器来实现。
3、显示电路频率计的测量结果需要通过显示电路进行显示。
常用的显示器件有液晶显示屏(LCD)和数码管。
LCD 显示效果好,但驱动较为复杂;数码管显示简单直观,驱动相对容易。
4、时钟电路单片机需要一个稳定的时钟信号来保证其正常工作。
时钟电路可以采用外部晶振或内部振荡器,根据系统的精度和稳定性要求进行选择。
5、复位电路为了确保单片机在系统启动时能够正常初始化,需要设计复位电路。
复位电路可以采用上电复位和手动复位两种方式。
三、系统软件设计1、主程序流程系统启动后,首先进行初始化操作,包括设置单片机的工作模式、初始化显示、设置定时器等。
然后进入测量循环,等待输入信号,在给定的闸门时间内进行计数,并计算频率,最后将结果显示出来。
基于单片机的频率计的设计与制作
基于单片机的频率计的设计与制作一、设计背景与意义频率是指在单位时间内信号的周期次数或波形的周期数,是电子通信、自动化控制、测量仪器等领域中常用的参数之一、频率计是一种用来测量信号频率的仪器,广泛应用于各个领域。
本文将设计一种基于单片机的频率计,具有结构简单、精度高、易于实现批量生产等特点。
二、设计原理与电路结构本频率计的设计原理基于定时器的计数功能。
具体电路结构如下:1.接收电路:接收被测信号,并经过滤波电路对信号进行滤波处理。
2.方波信号发生电路:采用集成电路产生频率为1MHz的方波信号。
3.单片机控制电路:使用单片机控制定时器1进行计数,并通过串口与PC机进行通信。
三、程序设计与实现1.初始化设置:设置单片机的工作模式和波特率,以及定时器的计数参数。
2.接收输入信号:从信号输入引脚读取信号,并通过滤波电路进行滤波处理。
3.方波信号计数:使用定时器对方波信号进行计数,并保存计数值。
4.系统中断处理:当定时器溢出时,触发中断函数对计数值进行处理。
5.输出结果:将计数值发送到PC机上,通过串口进行通信。
四、制作过程与方法1.电路制作:根据上述电路结构图,选择合适的元器件进行电路制作,焊接完整电路板。
2.程序编写:使用C语言或汇编语言编写单片机的程序,实现频率计的功能。
3.调试测试:将电路板接入供电并连接到PC机上,通过串口与PC机进行通信,测试频率计的测量精度和稳定性。
4.性能优化:对频率计的测量精度和稳定性进行优化,例如增加滤波电路、调整定时器参数等。
五、结论与展望本文设计与制作了一种基于单片机的频率计,实现了对输入信号频率的测量。
经过实际测试,频率计具有测量精度高、稳定性好等优点,能够满足实际应用的需求。
在今后的研究中,可以进一步优化频率计的设计,提高测量精度和稳定性,并拓展其在更多领域的应用。
基于单片机的频率计设计-毕业设计
基于单片机的频率计设计前言频率计数器是测量信号频率的装置,也可以用来测量方波脉冲的脉宽。
通常频率以数字形式直接显示出来,简便易读。
即所谓的数字频率计频率测量对生产过程监控有很重要的作用,可以发现系统运行中的异常情况,以便迅速作出处理。
传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接采用基于单片机技术。
而数字式频率计数器具有操作简单方便、响应速度快、体积小等一系列优点,可以及时准确地测量低频信号的频率。
频率计最基本的工作原理为:当被测信号在特定时间段T 内的周期个数为N时,则被测信号的频率f=N/T。
在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。
主门的另外一个输入端为基电路产生的闸门脉冲。
在闸门脉冲开启主门的期间,特定周期的窄脉冲才能通过主门,从而进入计数器进行计数,计数器的显示电路则用来显示被测信号的频率值,内部控制电路则用来完成各种测量功能之间的切换并实现测量设置。
频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。
闸门时间也可以大于或小于1秒。
闸门时间越长,得到的频率值就越准确。
数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着复杂可编程逻辑器件(CPLD)和功能越来越强大的单片机的广泛应用。
数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号、方波信号、尖脉冲信号及其他各种单位时间内变化的物理量。
在AT89C51单片机上实现的频率计,整个系统非常精简,而且具有灵活的现场可更改性。
在不更改硬件电路的基础上,对系统进行各种改进,还可以进一步提高系统的性能。
基于单片机的频率计设计的参考文献
文章标题:基于单片机的频率计设计与实现一、概述在现代电子领域中,频率计是一种常见的电子测量仪器,用于测量信号的频率。
基于单片机的频率计设计在实际应用中得到了广泛的应用。
本文将深入探讨基于单片机的频率计设计与实现,包括其原理、设计过程、实现步骤等内容,以便读者能够全面了解这一领域。
二、频率计原理及设计过程1. 频率计原理概述频率计是用于测量信号频率的仪器,其原理主要基于信号周期的测量。
在基于单片机的频率计设计中,一般通过计算脉冲信号的周期或脉冲数量来实现频率测量,然后利用单片机进行数据处理和显示。
2. 频率计设计过程基于单片机的频率计设计的关键步骤包括信号采集、信号处理、数据显示等。
首先需要设计信号采集电路,将待测频率信号转换为单片机可接受的电压信号;然后进行信号处理,包括周期测量、频率计算等;最后通过数码显示、液晶显示等方式将测量结果进行显示。
三、基于单片机的频率计实现步骤1. 信号采集电路设计在基于单片机的频率计设计中,信号采集电路的设计是至关重要的一步。
一般可以采用信号调理电路、滤波电路等手段,将待测频率信号进行合理的处理,以适应单片机的输入要求。
2. 单片机程序设计单片机程序设计是基于单片机的频率计设计中的核心环节。
通过合理的程序设计,可以实现脉冲信号的计数、周期测量、频率计算等功能,从而得到准确的频率测量结果。
3. 数据显示方式选择在频率计的实现中,数据显示方式的选择也是需要考虑的重要因素。
常见的数据显示方式包括LED数码管显示、液晶显示、数码管显示等,可以根据实际需求进行选择。
四、频率计设计的应用价值基于单片机的频率计设计具有广泛的应用价值。
在电子测量领域中,频率计可用于对各种信号频率进行准确测量;在电子教学和科研中,基于单片机的频率计设计也可以作为一个实验评台,帮助学生和研究人员深入了解频率计的原理和实现。
五、个人观点和总结基于单片机的频率计设计是一项充满挑战和机遇的工作。
通过深入研究和实践,可以更好地掌握电子测量技术和单片机应用技术。
基于单片机的频率计设计
基于单片机的频率计设计频率计是一种常用仪器,用于测量信号的频率。
本文将介绍一种基于单片机的频率计的设计。
设计思路:1. 选择合适的单片机:由于频率计需要精确测量信号的周期,所以选择一个具有高精度和稳定性的单片机至关重要。
常用的单片机有AT89S51、ATmega328等。
2.连接外部时钟源:为了提高计时的精度,可以选择连接一个外部时钟源,如晶振。
将晶振连接到单片机的计时器输入引脚,通过计时器来计算脉冲信号的周期。
3.配置计时器模式:根据信号的特性,选择合适的计时器模式。
常用的模式有边沿计数模式和脉冲计数模式。
边沿计数模式适用于非连续的信号,脉冲计数模式适用于连续的信号。
4.初始化计时器:在程序中对计时器进行初始化,设置计时器的工作模式、计数范围等参数。
还需设置中断使能和相应的中断处理函数。
5.开始计时:当信号输入到单片机的计时器引脚时,通过中断处理函数开始计时,记录起始时间。
6.结束计时:当信号的周期结束时,再次触发中断,记录结束时间。
7.计算频率:根据起始时间和结束时间,计算出信号的周期,再通过周期计算出频率。
可以选择在显示器上显示频率或者通过串口通信输出。
8.重复计算:根据需要,可以选择连续计算多个信号的频率,以增加测量的准确性。
这个设计是一个基本的频率计,可以测量连续或间断的信号频率。
根据实际需求,还可以进行一些改进和扩展,例如可以加入滤波电路来提高信号的稳定性和抗干扰能力,还可以增加输入和输出接口,方便与其他仪器和设备进行连接和通信。
总结:基于单片机的频率计是一种常见的测量仪器,通过利用计时器来测量信号的周期,从而计算出信号的频率。
这种设计简单易行,稳定性好,可以满足大多数频率测量的需求。
在实际应用中,可以根据具体要求进行相应的改进和扩展。
基于AT89C51单片机的频率计设计
基于AT89C51单片机的频率计设计频率计是一种测量信号频率的仪器。
在工业自动化、仪器仪表和电子实验等领域广泛应用。
本文将基于AT89C51单片机设计一个简单的频率计。
一、设计原理频率计的工作原理是通过计数单位时间内输入信号的脉冲数量,并将其转化为频率进行显示。
本设计使用AT89C51单片机作为控制核心,采用外部中断引脚INT0作为计数脉冲输入口,通过对计数器的计数值进行处理,最终转化为频率并在LCD1602液晶屏上进行显示。
二、硬件设计硬件电路主要包括AT89C51单片机、LC1602液晶显示屏、脉冲输入引脚INT0,以及供电电路等。
其中,AT89C51单片机的P0口用于与LC1602液晶屏的数据口连接,P2口用于与液晶屏的控制口连接。
脉冲输入引脚INT0连接到外部信号源,通过中断请求实现计数器的计数功能。
液晶显示屏的VDD和VDDA引脚接5V电源,VSS和VSSA引脚接地,RW引脚接地,RS引脚接P2.0,E引脚接P2.1,D0-D7引脚接P0口。
三、软件设计软件设计主要包括初始化设置、中断服务程序、计数器计数和频率转换、液晶屏显示等模块。
1.初始化设置:首先设置P0和P2为输出端口,中断引脚INT0为外部触发下降沿触发中断,计数器为初始值0。
2.中断服务程序:中断服务程序负责处理外部脉冲输入引脚INT0的中断请求。
每当INT0引脚检测到下降沿时,计数器加13.计数和频率转换:在主函数中,通过读取计数器的值并根据单位时间计算频率。
通过AT89C51单片机的定时器模块,我们可以设置一个单位时间进行计数。
在单位时间结束后,将计数器的值除以单位时间得到频率。
4.液晶屏显示:通过P0口向液晶屏的数据口发送频率值,并通过P2口向液晶屏的控制口发送控制信号,完成频率的显示。
四、测试结果将生成的二进制固件烧录到AT89C51单片机中,将脉冲信号输入到INT0引脚,即可在LCD1602液晶显示屏上看到实时的频率值。
基于单片机的等精度数字测频 - 电路设计-天天单片机
基于单片机的等精度数字测频- 电路设计-天天单片机基于单片机的等精度数字测频收录时间:2010-07-09 12:22:36 来源: 作者: 【大中小】点击:8 在电子技术领域内,频率是一个最基本的参数,频率与其它许多电参量的测量方案,都有十分密切的关系。
因此,频率的测量就显得更为重要,而且,目前在电子测量中,频率的测量精确度最高。
1. 电子计数测频原理框图首先,被测信号通过放大整形,形成幅度一致,形状一致是计数脉冲。
然后,N将它加到闸门的一个输入端,闸门由门控信号来控制其关闭时间。
计得的脉冲送至译码,再送显示器显示出来。
而由晶振产生的1MHz的振荡信号经放大整形,形成方波,经多个10分频10s,1s,0.1s,0.01s,1ms,那么有fx=N/T符合测频定义。
根据f=N/T。
不难看出,采用计数器测频的测量误差,一方面决定于闸门时间T准不准确,即由晶振提供的标准频率的准确度△T/T=-(△fo/fo);另一方面决定于计数器计得的数准不准,即"±1误差",△N/N=±1/N=±(1/○XTfx)。
所以,计数器直接测频的误差主要有两项,即±1误差和标准频率误差。
测低频时,由于±1误差产生的测频误差大得惊人,所以不宜采用直接测频方法。
由于fX较低时,利用计数器直接测频,由±1误差所引起的测频误差将会大到不可允许的程度。
所以,为了提高测量低频时的准确度,即减少±1误差的影响,可改成先测周期Tx,然后计算fx=1/Tx。
2. 电子计数器测周期原理Tx经放大整形控制双稳态触发器形成门控信号,控制闸门的开闭;然后晶搌产生的1MHz的振荡信号,经放大整形形成方波,产生幅度一致,形状一致是计数脉冲。
当闸门打开时,对计数脉冲进行计数;闸门关闭时,停止计数。
基于单片机的等精度频率计设计
摘要本文主要论述了利用FPGA(Field Programmable Gate Array,现场可编程门阵列)进行测频计数,单片机实施控制实现频率计的设计过程。
该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。
等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。
设计中用一块FPGA芯片(型号为Cyclon eⅡ的EP2C5T144C8N)完成各种时序逻辑控制、计数功能。
在QuartusⅡ平台上,用VHDL语言编程完成了FPGA的软件设计、编译、调试、仿真和下载。
用STC89C52RC单片机作为系统的主控部件,实现整个电路的测试信号控制,数据运算处理和控制数码管的显示输出。
系统将单片机的控制灵活性及FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。
文章详细论述了系统自上而下的设计方法及各部分硬件电路组成及单片机、FPGA的软件编程设计。
使用杭州康芯KX-7C5T型EDA实验开发与电子设计学习板为主的实验环境下,配合单片机最小系统对软硬件进行仿真和验证,达到了较高的测量精度和测量速度。
关键词:FPGA,VHDL,频率计,单片机,STC89C52RC目录摘要 (I)第一章概论 (1)1.1课题研究的目的和意义 (1)1.2测量原理 (1)1.3系统设计指标 (3)第二章硬件电路设计 (5)2.1系统顶层电路设计 (5)2.2FPGA测频模块逻辑设计 (5)2.3单片机主控模块 (6)2.4外围电路设计 (8)第三章软件设计 (11)3.1Q UARTUS II概述 (11)3.2VHDL语言简介 (12)3.3频率计FPGA模块的顶层设计 (12)3.4频率计FPGA模块的仿真 (14)3.5单片机的C语言编程 (15)第四章系统测试 (17)4.1测频精度分析 (17)4.2实验测试数据 (18)第五章总结 (19)致谢 (21)参考文献 (23)第一章 概 论1.1课题研究的目的和意义测频一直以来都是电子和通讯系统工作的重要手段之一。
基于51单片机的频率计的设计讲解
基于51单片机的频率计的设计讲解频率计是一种测量信号频率的仪器。
基于51单片机的频率计设计能够实现对不同频率信号的测量,具有简单、可靠、价格低廉的优势。
本文将详细介绍基于51单片机的频率计的设计原理、电路设计和程序设计。
设计原理:基于51单片机的频率计的设计原理主要包括输入信号的检测和计数、计数值显示和频率计算。
当外部信号输入到单片机的输入引脚时,单片机通过计数器对输入信号的波形进行计数,计数值与输入信号的频率成正比。
通过将计数值转换为频率值,并在显示屏上显示,即可实现对输入信号频率的测量。
电路设计:输入电路:输入电路主要负责将外部信号通过耦合电容和电阻接入单片机的输入引脚。
在输入电路中,耦合电容的作用是将交流信号的AC分量通过,阻隔直流信号的DC分量。
电阻的作用是限制输入信号的幅值,防止单片机输入引脚的过大电流。
计数电路:计数电路是基于51单片机的频率计的核心部分,主要由计数器和时钟发生器组成。
计数器负责对输入信号的波形进行计数,时钟发生器负责提供计数脉冲。
计数器的选择应根据所需测量范围来确定,通常使用定时器/计数器来实现。
显示电路:显示电路主要由数码管和驱动电路组成。
通过将计数值转换为对应的数字,并将数字数据发送给数码管进行显示。
驱动电路负责控制数码管的亮度和显示方式。
程序设计:输入信号的采样:在程序中,通过定时器/计数器对输入信号进行采样,采样时间根据信号频率来确定。
采样得到的数据存储在特定的寄存器中,以供后续的计数和计算。
计数器的计数:通过对输入信号进行计数,得到计数值。
计数值的大小与输入信号的周期成反比,与输入信号频率成正比。
计数器的计数方式可以是边沿计数或脉冲计数,根据实际需求选择。
频率计算和显示:通过将计数值转换为频率值,并将频率值显示在数码管上。
频率计算可以采用简单的比例关系,如频率=计数值/计数时间。
将频率值转换为对应的数字,并通过驱动电路控制数码管的显示。
总结:基于51单片机的频率计通过对输入信号进行采样、计数、计算和显示,能够实现对不同频率信号的测量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 1 频率计时序图
同步门时间T = N x ⋅ Tx = N 0 ⋅ T0
fx =
1 Nx = f0 Tx N 0
2、等精度频率计流程图
Page 1 of 6
等精度频率计设计
图 2 T0、T1 中断流程图图 3 主函数流程图Page 2 of 6
等精度频率计设计
图 4 电路简图
四.实验结果:
五.程序清单: #include <reg52.h> #include <stdio.h> #include <string.h>
Page 3 of 6
等精度频率计设计
//*****变量定义******// unsigned int st_count,signal_count; //st_count 为时标软件计数器, signal_count 为被测信号计 数器 float gate_count,gate_time; bit gate_flag; //闸门时间标志位 //*****定时器初始化******// void ini_T0T1() { TMOD=0x62; //计数器 1,方式 2,自动重装方式;定时器 0,方式 2,自动重装 方式 //最大定时时间 T_max=(2^8)*12/晶振值(22118400),此例中若定 时 1s 需要进中断 7200 次 TH1=0;TL1=0; //计数器 1 设置初值为 0 TH0=0;TL0=0; // 定 时 器 0 设 置 初 值 为 0, 定 时 时 间 最 长 T_max=256*12/(22118400),单位 s } //*****定时器 0 中断*****// void timer0() interrupt 1 { st_count++; //时标软件计数器加 1 if(st_count>gate_count) //判断闸门时间到否,到则闸门时间标志置 1 gate_flag=1; //标志位置 1,表示闸门时间到 } //*****计数器 1 中断*****// void timer1() interrupt 3 { signal_count++; //被测信号计数器加 1,计数信号来自外部引脚,负跳变 } //*****串口初始化*****// void ini_com(void) //T2 定时器产生波特率为 115200 { //SM0=0;SM1=1; //串行口工作方式 1 //REN=1; //允许接收 SCON=0x50; //T2CON=0x34; //T2 定时器作为波特率发生器 RCLK=1;TCLK=1; TR2=1; //定时器 2 开始 RCAP2H=0xff; RCAP2L=0xfa; // 波 特 率 =22118400/32 × [65536-(RCAP2H,RCAP2L)], 其 中
Page 4 of 6
等精度频率计设计
RCAP2H,RCAP2L 为自动重装值,(RCAP2H,RCAP2L)=65536-22118400/(32×波特率) TH2=0xff; TL2=0xfa; //波特率:115200 晶振=22.1184MHz } //*****串口数据传送*****// void transmit_byte(unsigned char send_byte) { SBUF=send_byte; while(TI==0); //当数据没传完时,TI=0,等待. TI=0; //TI=0,软件清零 } void main () { float N_x,N_0,fx; unsigned char freq[10],i,j; unsigned char Hz[3]={'H','z',' '}; st_count=0; signal_count=0; TH1=0;TL1=0; TH0=0;TL0=0; gate_flag=0; ini_T0T1(); ini_com(); EA=1;ET0=1;ET1=1;
等精度频率计设计
等精度频率计设计报告
一.实验目的: 1. 熟悉 C 语言在 51 系列单片机系统开发中的应用。 2. 熟练掌握 Keil 的使用方法,能够实现利用 Keil 进行程序设计。 3. 掌握串口初始化以及串口数据发送的程序设计。 4. 掌握等精度频率计的设计思想以及方法。 二.实验要求: 要求:设计一个等精度频率计,要求能够准确、实时测量输入 T12 测频点(详见原理 图)的信号频率。 三.实验原理: 1、 将需累加计数的信号 (频率测量时为被测信号, 时间测量时为时标信号) , 由一个“闸 门”(主门)控制,并由一个“ 门控”信号控制闸门的开启(计数允许)与关闭(计数停 止) 。
Page 5 of 6
等精度频率计设计
//***闸门设定时间到,fx 信号上升沿到,关闭闸门***// while(gate_flag==0); //闸门设定时间到 while(T1==1); while(T1==0); //fx 信号上升沿到,信号来自外部引脚 TR1=0;TR0=0; //关闭闸门 关闭计时器 1 和定时器 0 //***计算频率***// N_0=(float)st_count*256+TL0; N_x=(float)signal_count*256+TL1; fx=(N_x/N_0)*22118400/12; //*****数据输出到串口*****// sprintf(freq,"%.3f",fx); for (i=0;i<strlen(freq);i++) transmit_byte(freq[i]); for(j=0;j<3;j++) transmit_byte(Hz[j]); } }
Page 6 of 6
//计数器 1 清 0 //定时器 0 清 0
//T0,T1 初始化 //串口初始化 //中断允许
gate_time=1; //设置闸门时间 gate_time 为 1s gate_count=gate_time*22118400/(256*12); //进入中断 0 的次数 gate_count,即定时时长. while(1) { //***T0,T1 清零,软件计数器清零***// TH1=0;TL1=0; //计数器 1 清 0 TH0=0;TL0=0; //定时器 0 清 0 st_count=0; signal_count=0; gate_flag=0; //标志位 //***fx 信号上升沿到,打开闸门***// while(T1==1); while(T1==0); //fx 信号上升沿到,信号来自外部引脚 TR1=1;TR0=1; //打开闸门 打开计时器 1 和定时器 0