基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

这篇具有很好参考价值的文章主要介绍了基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

51单片机数字频率计仿真设计

(proteus仿真+程序+原理图+参考报告+器件清单)

仿真图proteus 8.9

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:C0052

主要功能

由51单片机+信号输入+74HC14整形电路+74HC390分频电路+LCD1602显示模块+电源构成。

1、能测出正弦波、三角波或方波等波形的频率;

2、频率的测量范围为1Hz—12MHz,且能检测幅度最小值为1Vpp的信号;

3、通过LCD1602液晶显示屏显示检测到的即时频率数值(最多8位数,单位为Hz)。

全部资料包括程序(注释)、AD原理图、protues仿真、参考论文、讲解、资料使用介绍等。

任务书

数字频率计是一种基本的测量仪器。它被广泛应用于航天、电子、测控等领域,还被应用在计算机及各种数学仪表中。一般采用的是十进制数字,显示被测信号频率。基本功能是测量正弦信号,方波信号以及其他各种单位时间内变坏的物理量。由于其使用十进制数显示,测量迅速精确,显示直观,所以经常被用来使用。

本文主要介绍数字频率计的设计和调试,本作品是基于52单片机作为平台,基本原理是通过52单片机进行频率的采集和分析工作,在通过程序使其显示在LCD1602的液晶显示屏上,通过液晶显示屏,让使用者能够直观的看到当前的输入频率是多少。

由于52单片机能处理的频率信号强度有限,所以这次我们先用74HC390芯片对输入的信号进行了分频,使其降低了100倍,才送去给单片机处理,而且为了使1602液晶显示屏能更好的兼容,在程序上我们做了三次初始化。

实物图

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

仿真图

​ 在电子测量领域中,频率测量的精确度是最高的,可达10至10基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)数量级。因此,在生产过程中许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,以提高精确度。

​ 国际上数字频率计的分类很多。按功能分类,因计数式频率计的测量功能很多,用途很广。所以根据仪器具有的功能,电子计数器有通用和专用之分。一、通用型计数器:通用型计数器是一种具有多种测量功能、多种用途的万能计数器。它可测量频率、周期、多周期平均值、时间间隔、累加计数、计时等;若配上相应插件,就可测相位、电压、电流、功率、电阻等电量;配上适当的传感器,还可进行长度、重量、压力、温度、速度等非电量的测量。二、专用计数器:专用计数器指专门用来测量某种单一功能的计数器。如频率计数器,只能专门用来测量高频和微波频率;时间计数器,是以测量时间为基础的计数器,其测时分辨力和准确度很高,可达ns数量级;特种计数器,它具有特种功能,如可逆计数器、阈值计数器、差值计数器、倒数计数器等,用于工业和自控技术等方面。数字频率计按频段分类:①低速计数器:最高计数频率<10MHz;②中速计数器:最高计数频率10—100MHz;③高速计数器:最高计数频率>100MHz;④微波频率计数器:测频范围1—80GHz或更高。

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

原理图

​ 此次智能电子设计与制作实训本小组的题目为“数字频率计的设计”,在仔细研究了题目要求并通过小组内部积极细致的讨论之后,决定作品采用的功能方案如下:①能测出正弦波、三角波或方波等波形的频率。②频率的测量范围为1Hz—20MHz,且能检测幅度最小值为1Vpp的信号;③通过LCD1602液晶显示屏显示检测到的即时频率数值(最多8位数,单位为Hz)。值得一提的是,当输入频率大于20KHz的信号时,由于采用了100分频采样,显示结果稍有误差,如输入最大测量频率20MHz的信号时,LCD1602液晶显示屏上显示的测量结果为19998900HZ,误差不超过十万分之一,在可接受范围之内。

以下将以待测输入信号走向为顺序介绍电路中各个功能模块。

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

信号采集模块

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

为了有效防止因信号过小而造成的检测障碍,在信号输入处采用了三极管共射放大电路,如图1.1所示。实际工作中,我们必须解决放大电路与信号源及放大电路与负载之间的耦合问题。一方面要求耦合电路能够传输交流的输入和输出信号,传输过程中的信号损耗尽可能小;另一方面又要求信号源,放大电路、负载之间的直流工作状态互补影响,即有“隔直”作用,电路的C1、C7就很好的解决了这个问题即固定偏置共射极放大器。集电极电压通过基极偏置电阻R2使晶体管Je正偏;同时拖过R3使Jc反偏,从而实现信号源放大。

脉冲产生模块

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

​ 脉冲产生模块采用74HC14实现了三次施密特触发并反相,从图1.2可以看出,来自信号采集模块的经过放大的信号从74HC14的1脚进入,经过1A→1Y、2A→2Y和3A→3Y三次施密特触发并反相最终将缓慢变化的输入信号转换成清晰、无抖动的信号从6脚输出。

分频模块

74HC390具有有八个主从触发器和附加门以构成两个独立的4位计数器,其中每个计数器皆包含两个部分:“除2计数部分”和“除5计数部分”,每个计数器又有一个清除输入和一个时钟输入。它可以实现等于2 分频、5 分频乃至100 分频的任何累加倍数的周期长度,且可以连成十进制计数器或二-五进制计数器以分别实现两种进制的数值输出。由于每个计数级都有并行输出,所以系统定时信号可以获得输入计数频率的任何因子。

74HC390具有以下特点:

①A和B触发器都有独立的时钟

②每个计数器都有直接清除

③有效提高系统密度

④缓冲输出减小集电极转换的可能性

程序

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

主要代码

/----------------主函数--------------------
void main()
{ 
	unsigned char i;
	LCD_init();
	timer_init();             //定时/计数器初始化 
	for(i = 0;i<4;i++)
	{
	 	LCD_disp_char(i+0,1,character_1[i]);
	}
	while(1)
	{
		dis_num();         //显示
		delay_1s();
	}
}
//-------------------定时/计数器初始化--------------
void timer_init(void)         //定时/计数器初始化
{ 
	TMOD=0x66;                //计数器0和计数器1工作工作方式2,自动重装初值 
	TH0=0;                    //计数器初值为0
	TL0=0;
	TR0=1;                    //计数器开始计数	    
	ET0=1;                    //打开计数器0中断   
	TH1=0;                    //计数器初值为0
	TL1=0;
	TR1=1;                    //计数器开始计数	    
	ET1=1;                    //打开计数器1中断   
	RCAP2H=(65536-62500)/256; //在程序初始化的时候给RCAP2L和RCAP2H赋值, 
	RCAP2L=(65536-62500)%256; //TH2和TL2将会在中断产生时自动使TH2=RCAP2H,TL2=RCAP2L。 
	TH2=RCAP2H;               //12M晶振下每次中断62.5ms(1s=1000ms=62.5ms×16)
	TL2=RCAP2L;
	ET2=1;                    //打开定时器2中断	 
	TR2=1;                    //定时器2开始计时  
	EA=1;                     //开总中断   
} 
//------------------中断函数----------------------
void timer2(void) interrupt 5 //定时器2中断(62.5ms)
{
	time++;
	TF2=0;                    //定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序中将其清零
	if (time==16)             //定时1s时间到  
	{
	   time=0;                //计时清0
	   EA=0;                  //关中断		 
	   fre=(long)count1*256+TL1;     //count*256强制转换成long型,否则将不产生进位~先判断分频后(计数器1)
	   FLAG = 0; 
	  
	   if(fre<2000)//如果不到200KHz则读取分频前(计数器0)频率(200K÷100=2000)
	   {
	   		fre = (long)count*256+TL0;
			FLAG = 1;          
	   } 
		if(!FLAG)
		{
			fre = fre *100;//100分频
		}
	   TL0=0;                 //清零计数器0计数	    
	   TH0=0;
	   TL1=0;
	   TH1=0; 
	   count=0;               //清零计数器0计数	  
	   count1=0;
	   EA=1;                  //开中断	    
	}
} 
//----------------------------------------------------------------
void timer0(void) interrupt 1 //计数器0中断(100分频前)	 
{
	count++;
}		
//----------------------------------------------------------------
void timer1(void) interrupt 3 //计数器1中断(100分频后) 
{
	count1++;
}

设计报告

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)

全部参考资料

资料下载链接

基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)文章来源地址https://www.toymoban.com/news/detail-494578.html

到了这里,关于基于51单片机数字频率计仿真设计(proteus仿真+程序+原理图+参考报告+器件清单)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机】STM32单片机,定时器的输入捕获,基于捕获的频率计,STM32F103

    下面的定时器都具有输入捕获能力: 查看另一篇文章:https://qq742971636.blog.csdn.net/article/details/131471539 外部计数频率计的缺点:需要两个定时器配合,最高能测量的频率是否有限制我没具体尝试。 基于捕获的频率计的缺点:最高能测量的频率有限制。 TIM3_CH1 PWM PA6 10KHZ。 输入

    2024年02月14日
    浏览(52)
  • 基于FPGA的数字频率计的设计与实现

    基于FPGA的数字频率计的设计与实现 数字频率计是一种重要的电子测试仪器,它可以用来测量信号的频率和周期等参数,被广泛应用于科学研究、工程设计及生产制造等领域。本文将介绍一种基于FPGA的数字频率计的设计与实现方法,并给出相应的源代码。 一、设计原理 数字

    2024年01月23日
    浏览(49)
  • 基于STM32的简易数字频率计仿真设计(仿真+程序+设计报告+讲解)

    基于STM32的简易数字频率计仿真设计(仿真+程序+设计报告+讲解) 仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 设计编号:C0079 基于STM32的简易数字频率计仿真设计(仿真+程序+设计报告+讲解) 结合实际情况,基于STM32F103单片机设计一个数字频率计仿真设计。该设计应满

    2024年02月09日
    浏览(42)
  • 数字频率计

      电子技术应用实习 目录 1  实习目的、内容和要求 1 1.1 实习目的 1 1.2 实习内容 1 1.3 实习要求 1         1.3.1设计要求..................................................................................................................1 1.3.2实习任务要求 2 2  设计原理及软件简介 3 2.1设计原理 3 2.2M

    2023年04月18日
    浏览(37)
  • 【FPGA & Modsim】数字频率计

    module flag(clk,rst_n,cnt); input clk; input rst_n; output [2:0]cnt ; reg[31:0]count ; reg [2:0]cnt; always@(posedge clk or negedge rst_n) begin if(~rst_n)begin count=0 ; cnt=3\\\'d0 ;end else if (count= 32\\\'d24 999) begin cnt=cnt+1\\\'b1 ;count=32\\\'d0 ; end else if (cnt=3\\\'d6) begin cnt=0;end else count=count+1\\\'b1 ; end endmodule \\\'timescale 1 ns/ 1ps / module seg (

    2024年01月16日
    浏览(44)
  • VHDL实现数字频率计的设计

    当设计文件加载到目标器件后,拨动开关的K1,使其置为高电平,从输入输出观测模块的输入端输入一个频率大于1Hz的时钟信号,这时在数码管上显示这个时钟信号的频率值。如果使拨动开关置为低电平,数码管上显示的值为系统上的数字信号源的时钟频率。改变数字信号源

    2024年02月02日
    浏览(60)
  • 基于FPGA的频率计

    好久没更了,百忙之中写一篇so easy的代码——基于FPGA的频率计设计。 废话不多说,下面是百度搜索关于频率计的简洁概念。 数字频率计是一种基本的测量仪器,被广泛应用于航天、电子、测控等领域。基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,

    2024年02月12日
    浏览(44)
  • 数字频率计Verilog代码Quartus DE1-SoC开发板

    名称:数字频率计Verilog代码Quartus  DE1-SoC开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 数字频率计    采用一个标准的基准时钟,在1s里对被测信号的脉冲数进行计数,即为信号频率利用等精度测量法可以测量1hz至99999999Hz信号频率 七段码管显示测量值 本代码已在

    2024年02月03日
    浏览(46)
  • 20、基于51单片机的函数发生器四种波形频率系统设计

    设计了一个基于DAC0832的信号发生器,使之输出不同频率的正弦波、三角波、锯齿波和方波,并通过按键切换不同的波形,也可以改变频率以及频率变化的步进。本方案选择了DAC0832作为核心芯片,并与51单片机结合,设计出一款建议的高精度频率信号发生器,具有体积小功率等

    2024年02月04日
    浏览(52)
  • 基于51单片机的数字时钟设计

    目录 一、总体概述 1、计时控制方案 2、主控制器模块 3、显示电路模块 4、调试按键模块 5、电源模块 6、闹钟声光报警模块 二、系统总体结构 1.电路图 三、系统的硬件设计与实现 1、电源电路 2、显示电路 3、单片机基本电路 4、按键电路 四、功能测试及结果分析 五、程序附

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包