基于51单片机的频率计的设计
基于51单片机的1602液晶频率计设计(Proteus仿真图和程序)
基于51单片机的1602液晶频率计设计一、Proteus仿真图:二、程序代码//最大测量65536Hz的频率计//原理:T0定时1S,T1计数#include <REG51.H>#include<INTRINS.H>#define uchar unsigned char#define uint unsigned intuint count=0;uint nm=0;uchar Fw,Fq,Fb,Fs,Fg;#define DataPort P0sbit LCM_RS=P2^0;sbit LCM_RW=P2^1;sbit LCM_EN=P2^2;uchar code str0[]={"-Test frequency-"};uchar code str1[]={"F=00000Hz "};//uchar code str2[]={" "};/*******************************/void delay(unsigned int k){unsigned int i,j;for(i=0;i<k;i++){for(j=0;j<121;j++){;}}}//=================================================///* 函数名:void WaitForEnable(void)作用:检测忙碌信号*///================================================//void WaitForEnable(void){DataPort=0xff;LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();//while(DataPort&0x80);delay(5);LCM_EN=0;}//==========================================================// /* 函数名:void WriteCommandLCM(uchar CMD,uchar Attribc)作用:写命令到LCM *///==========================================================// void WriteCommandLCM(uchar CMD,uchar Attribc){if(Attribc)WaitForEnable();LCM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;}//=========================================================///* 函数名:void WriteDataLCM(uchar dataW)作用:写数据*///=========================================================// void WriteDataLCM(uchar dataW){WaitForEnable();LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;}//=========================================================///* 函数名:void InitLcd()作用:LCM初始化*///=========================================================// void InitLcd(){WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x01,1);WriteCommandLCM(0x06,1);WriteCommandLCM(0x0c,1);}//=========================================================///*函数名:void DisplayOneChar(uchar X,uchar Y,uchar DData)作用:显示指定坐标的一个字符*///=========================================================// void DisplayOneChar(uchar X,uchar Y,uchar DData){Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;WriteCommandLCM(X,0);WriteDataLCM(DData);}//============================================================// /*函数名:void DisplayListChar(uchar X,uchar Y,uchar code *DData作用:显示指定坐标的一串字符*///============================================================// void DisplayListChar(uchar X,uchar Y,uchar code *DData){uchar ListLength=0;Y&=0x1;X&=0xF;while(X<=15){DisplayOneChar(X,Y,DData[ListLength]);ListLength++;X++;}}//============================================================// /* 函数名:void main(void)作用:主函数*///============================================================////============================================================// /* 函数名:void display()作用:显示函数*///============================================================// void display(){Fw=count/10000+0x30;Fq=count/1000%10+0x30;Fb=count/100%10+0x30;Fs=count/10%10+0x30;Fg=count%10+0x30;DisplayOneChar(2,1,Fw);DisplayOneChar(3,1,Fq);DisplayOneChar(4,1,Fb);DisplayOneChar(5,1,Fs);DisplayOneChar(6,1,Fg);}void InitTime(void){TMOD=0x51;//T0为定时器工作于方式1,T1为计数器工作于方式1TH0=0x4C;//定时器50ms赋高8初值, 12M晶振TL0=0x00;//定时器50ms赋低8初值, 12M晶振TR0=1;//开定时器1TH1=0;//计数器赋高8初值初值TL1=0;//计数器赋低8初值TR1=1;//开计数器0ET0=1;EA=1;}void timeo(void) interrupt 1{TH0=0x4C;//定时器50ms赋高8初值TL0=0x00;//定时器50ms赋低8初值nm=nm+1;if(nm==10){TR1=0; //关闭T1定时器,定时1S完成TR0=0;//关闭T0}}//============================================================// /* 函数名:void main(void)作用:主函数*///============================================================// void main(void){char i;uint temp,temp1;delay(500);InitLcd(); //LCM初始化设置InitTime();for(i=15;i>=0;i--){DisplayListChar(i,0,str0);//显示第一行字符DisplayListChar(i,1,str1);//显示第二行字符delay(100);}while(1){if(nm==10)//定时10*50MS=500ms{temp=TL1;temp1=TH1;count=2*(temp1*256+temp);//定时2乘以500ms=1000ms display();TH1=0;//计数器赋高8初值初值TL1=0;//计数器赋低8初值nm=0;TR1=1;TR0=1;}}}。
基于51单片机的数字频率计设计
基于51单片机的数字频率计一、实验内容1.1数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
本数字频率计将采用定时、计数的方法测量频率,采用四位LED数码管动态显示4位数。
测量范围从1Hz—10kHz的正弦波、方波、三角波。
用单片机实现自动测量功能。
1.2频率测量仪的设计思路与频率的计算频率测量仪的设计思路主要是:设置单片机T1为计数器模式,对输入信号进行计数,T0设置为定时器模式,定时时间为1秒,则计数器所计数值即为被测信号频率。
1.3 基本设计原理基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。
它以在单位时间内对被测信号上升沿计数的方法对正弦波、方波、三角波的频率进行自动的测量。
如果被测信号频率超过量程,则有警报灯闪烁。
所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。
1.4 频率计性能参数设计量程:0-10KHz波形:方波输入信号电压:5V二、数字频率计的硬件结构设计2.1 系统硬件的构成本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有电源电路、复位电路、显示器,报警电路等器件,如下图所示:图一数字频率计功能模块2.2 AT89C51单片机引脚说明在本次设计中,采用89C51作为CPU处理器,充分利用其硬件资源,结合数码管,发光二极管,按键开关构成控制及显示模块。
在试验中选用P1.2,P1.3,P1.4端口分别控制数据和时钟信号的输入实现频率的动态显示。
基于51单片机的数字频率计的设计
1 前言频率测量是电子学测量中最为基本的测量之一。
由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。
随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。
1.1频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。
本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点。
1.2频率计发展与应用在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。
单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。
单片机已成为电子系统的中最普遍的应用。
单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。
其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要。
2 系统总体设计2.1测频的原理测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。
被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端。
由晶体振荡器产生的基频,按十进制分频得出的分频脉冲,经过基选通门去触发主控电路,再通过主控电路以适当的编码逻辑便得到相应的控制指令,用以控制主门电路选通被测信号所产生的矩形波,至十进制计数电路进行直接计数和显示。
基于51单片机的数字频率计设计报告
目录摘要............................................. 错误!未定义书签。
关键词 (3)正文 (4)1 概述 (4)2 总体设计方案 (5)2.1软件 (5)2.2 设计思路 (5)3 系统软件设计 (5)3.1 主板说明 (5)3.2 芯片主要性能............................. 错误!未定义书签。
3.3 功能特性描述 (6)3.4 引脚描述 (6)4 系统软件设计 (9)4.1 初始定义 (9)4.2 子程序设计 (9)4.3 主要源程序 (10)5 系统调试 (13)6 课程设计体会 (15)7 参考文献 (15)附录 (16)数字频率计是现代科研生产中不可或缺的测量仪器,它以十进制数显示被测频率,基本功能是测量正弦信号,方波信号,及其它各种单位时间内变化的物理量。
本系统采用AT89S52单片机智能控制,结合外围电子电路,设计的频率计性能稳定。
在软件设计上采用了单片机的C语言设计,通过单片机内部定时/计数器同时动作,在测量频率时将测频率和测周期相结合,提高了频率计的测量准确性。
测量结果在四位七段式数码管上输出显示,结果精确到整数位。
频率计的软件设计,系统软件设计简单明了,适用于测量频率从1~9999Hz的脉冲信号,超频自动报警,安全可靠。
关键词:数字频率计;AT89S52单片机;信号;AT89S52最小系统板;LG5011BSR1.概述单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在线系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
基于51单片机的频率计设计报告
基于51单片机的频率计设计报告
在该设计报告中,我将介绍基于51单片机的频率计的设计原理、硬件设计和软件设计。
设计原理:
频率计是一种用于测量信号频率的仪器。
基于51单片机的频率计的设计原理是利用单片机的定时计数器来测量输入信号的脉冲个数,然后将脉冲个数转换为频率。
硬件设计:
硬件设计主要包括输入信号的采集电路、计数电路和显示电路。
输入信号的采集电路使用一个比较简单的电路,包括一个电阻和一个电容,用于将输入信号转换为脉冲信号。
计数电路使用单片机的定时计数器来进行计数。
在这个设计中,我们使用TIMER0和TIMER1作为计数器,分别用于测量输入信号的高电平时间和低电平时间,然后将两个时间相加得到一个完整的周期,再根据周期反推频率。
显示电路使用一个LCD模块来显示测量得到的频率。
在这个设计中,我们使用IO口将计算得到的频率发送给LCD模块,通过LCD模块来显示频率。
软件设计:
软件设计主要包括信号采集、脉冲计数和频率计算。
信号采集主要通过定时器的中断来进行。
在采集到一个脉冲之后,中
断程序会使计数器加1
脉冲计数是通过对输入信号高电平时间和低电平时间计数来完成的。
在脉冲计数的过程中,我们需要启动TIMER0和TIMER1,并设置正确的工
作模式和计数值。
频率计算是通过将高电平时间和低电平时间相加得到一个完整的周期,然后再根据周期反推频率来完成的。
最后,将计算得到的频率发送给LCD
模块进行显示。
总结:。
基于51单片机的高频频率计的设计
基于51单片机的高频频率计的设计基于51单片机的高频频率计的设计简介:基于51单片机设计了一款测试范围在1 Hz~10 MHz的频率计。
系统通过峰值有效电路和有效值电路将正弦渡、方波和三角波转化为直流信号送入单片机,通过编写相应的程序计算出其有效值和峰峰值的比,实现自动检测的目的,并由显示电路显示测量结果。
该系统电路简洁、软件编写简单、调试难度低。
摘要基于51单片机设计了一款测试范围在1 Hz~10 MHz的频率计。
系统通过峰值有效电路和有效值电路将正弦渡、方波和三角波转化为直流信号送入单片机,通过编写相应的程序计算出其有效值和峰峰值的比,实现自动检测的目的,并由显示电路显示测量结果。
该系统电路简洁、软件编写简单、调试难度低。
目前在频率测量领域中,对于高频率信号高精度测量大都使用ARM、FPGA等高速处理器加专用计数芯片来完成。
但这种方法程序编写复杂,并且其处理器外围电路复杂,这增加了其调试难度,降低了可操作性。
文中设计的高频信号频率计,除数据处理和显示交由单片机负责外,测频核心电路用经检测的模拟电路完成,该高频频率计电路简洁,软件编写简单,降低了调试难度的同时增强了其操作性。
1 系统总体设计方案系统以STC80C51为核心,设计了一款测试范围在1 Hz~10 MHz的频率计。
该系统主要设计思想是通过峰值有效电路和有效值电路将正弦波、方波、三角波转化为直流信号,送入单片机,通过编写相应的程序计算出其有效值和峰峰值比,实现自动检测的目的,最后通过显示电路显示测量结果。
系统分为:缓冲器、峰值检测电路、有效值检测电路、分频电路、模式转换、最小系统和显示电路。
总体设计方案如图1所示。
基于51单片机的高频频率计的设计输入信号i经过缓冲器处理分为3路输出,依次作为峰值检测电路、有效值检测电路和分频器电路的输入信号。
经峰值检测电路和有效值电路处理后,输出直流信号O1、O2,经分频器分频后输出方波信号O3。
O1和O2经过A/D模数转换后输入单片机,在单片机中进行处理比较峰值和有效值的关系从而达到自动确定信号类型的功能。
基于51单片机的频率计设计报告(免费)
《频率计》实验报告班级:电子094 姓名:刘洋学号:0910910408班级:电子094 姓名:王铁柱学号:0910910414实验日期:2011-11-14至2011-12-14一.设计要求1.1实验目的及原理(1)利用单片机计数器功能实现正弦波频率的检测。
(2),频率计又称为频率计数器是一种专门对被测信号频率进行测量的电子测量仪器。
1.2实验要求(1)输入信号为峰峰值为5V的正弦信号,信号频率为1~60KHz,设计整形电路将正弦信号整形为方波。
(2)利用单片机定时/计数器的计数功能对整形后方波进行计数从而实现频率的测量。
(2)在数码管或LCD实时显示输入信号的频率。
1.3实现部分(1)输入信号峰峰值可在1V~10V范围变化。
(2)实现了方波和正弦波的频率检测,通过按键进行方波或正弦波检测模式的改变,在数码管或LCD进行检测模式的显示。
(3)正弦波测量范围达到1Hz~3.8MHz,正弦波测量范围达到1Hz~4.7MHz,测量精度达到10Hz单位,高于实验要求。
二.总体设计2.1频率计测频原理概论:简而言之就是:“通过测量单位时间内出现的方波个数,进行频率计算”。
将输入的正弦波信号经波形转换模块转换为方波,高频信号再经过分频模块进行分频。
由晶体振荡器产生的基频,按十六进制分频得出的分频脉冲,经过驱动电路增加带载能力。
在时间间隔T内累计周期性的重复变化次数N,则频率的表达式为式:数字频率计的原理框图如下:电路总设计图2.2 系统组成及工作原理数字频率计由以下模块组成:单片机控制模块、驱动模块、施密特电路波形转换模块、按键模块、分频模块和显示模块。
(1)STC89C52单片机简介TN清零信号锁存信号III IIIIV VSTC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
基于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)显示结果的优化:可以根据需要,通过增加缓冲区、优化数码管显示等方式来改善结果的可读性。
基于51单片机数字频率计的设计
基于51单片机数字频率计的设计在电子技术领域中,频率计是一种常见的测试仪器,它可以用来测量信号的频率。
在本文中,我们将通过介绍基于51单片机数字频率计的设计实现来了解它的工作原理和设计流程。
1. 确定设计需求在进行任何项目之前,我们需要明确自己的设计需求。
对于频率计而言,它的主要需求就是准确地测量信号的频率。
因此,我们需要确定我们需要测量的频率范围和精确度。
2. 确定硬件设计在确定了设计需求之后,我们需要确定硬件设计。
对于数字频率计而言,它需要一个计数器来计算信号的脉冲数量。
在本设计中,我们采用74LS90计数器芯片来实现计数功能。
我们还需要一个51单片机来读取计数器的计数值,并将其转换为对应的频率值。
另外,我们还需要硬件板、LCD显示屏、按键等元件来搭建数字频率计的电路结构。
3. 确定软件设计硬件设计完成后,我们需要开发相应的软件来实现我们的需求。
在本设计中,我们使用KEIL C51软件来编写51单片机的程序。
编写软件的主要步骤是读取计数器计数值、计算出对应的频率值、将频率值显示在LCD屏幕上,并实现按键控制。
我们需要将这些步骤按照程序流程依次实现。
4. 进行测试在软件编写完成后,我们需要对数字频率计进行测试,以确保其满足我们的需求。
我们可以使用信号发生器给数字频率计输入不同频率的信号,然后观察LCD屏幕上显示出来的相应频率值是否准确。
如果测试结果不满足我们的需求,则需要对硬件或软件进行优化或调试,直到数字频率计能够正常工作为止。
总之,基于51单片机的数字频率计设计是一个较为简单的电子设计项目。
通过上述步骤的详细介绍,我们了解了数字频率计的设计流程和工作原理,并明确了设计中需要注意的细节和注意事项。
希望能够对大家理解数字频率计的设计过程有所帮助。
基于51单片机的数字频率计设计
基于51单片机的数字频率计一、设计说明1.数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。
测量范围从1Hz—10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。
用单片机实现自动测量功能。
基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。
它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
2.频率测量仪的设计思路与频率的计算频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图所示。
若被测量信号的周期为,分频数m1,分频后信号的周期为T,则:T=m1Tx。
由图可知:T=NTo(注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。
)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。
3.设计原理及系统分析基本设计原理:直接用十进制数字显示被测信号频率的一种测量装置。
它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。
其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。
时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。
基于51单片机的数字频率计设计
毕业论文课题:基于单片机的数字频率计的设计摘要本方案主要以单片机为核心,主要分为时基电路,复位电路,显示电路三大部分,设计以单片机为核心,利用单片机的计数器和定时器的功能对被测信号进行计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
本设计以89C51单片机为核心,应用单片机的算术运算和控制功能并采用LED数码显示管将所测频率显示出来。
系统简单可靠、操作简易,能基本满足一般情况下的需要。
既保证了系统的测频精度,又使系统具有较好的实时性。
本频率计设计简洁,便于携带,扩展能力强,适用范围广。
[关键词]单片机,运算,频率计,LED数码管。
*******************************************************************************************************************************************专抠专欢迎**业抠为您的**代群大加入**做 2 学**毕 4 生**设 6 服** 3 务** 8 解** 2 决** 2 问** 3 题** ***********************************************************************************************************************************************AbstractThe program mainly microcontroller as the core, are divided into time-base circuit, the logic control circuit, amplifier shaping circuit, the gate circuit, the counting circuit, latch circuit, decoding circuit most of the seven shows, design a microcontroller as the core, the measured signal the first amplifier to amplify the incoming signal, and then was sent to the waveform shaping circuit surgery, the measured sine wave or triangle wave shaping as a square wave. Counter and timer microchip features of the signal count. Write the corresponding program can automatically adjust the measurement range of SCM, and the frequency of the measured data to the display circuit displays.The design of the89C51microcontroller core, microcontroller applications and control functions and arithmetic operations with LED digital display tube to the measured frequency is displayed. System is simple, reliable, easy to operate and can basically meet the general needs. Both to ensure the accuracy of the system frequency measurement, but also the system has good real-time. The frequency meter design is simple and easy to carry, expansion capability, wide application.[Key words] microcontroller, operation, frequency meter, LED digital tube。
基于.51单片机的频率计的设计说明书
4.2主程序
• 主程序首先对系统环境初始化,设置分频选通信号P2=0x00,选通 0通道。设置T0工作方式,采用硬件启动方式,GATE=1,当INT0 和TR0同时为1时启动计时,计数方式为方式1(16位),TH0和 TL0都置零。当外部中断INT0=1时等待,当外部中断为0时启动T0 即TR0=1,当INT0一直为0时就等待,一旦INT0=1就启动计数同时 等待,当INT0为0时跳出并关闭T0即TR0=0。这样就计得高电平期 间基准脉冲个数,当脉冲个数小于500时就选择10分频信号,即P2 自加1,同时记录分频一次;如果分频后脉冲个数还小于500则再次 分频,直到计数个数大于500
•
3.2 分频电路:
• 分频电路采用十进制的计数器74HC4017来分频,当被测信号脉冲个 数达到10个时74HC4017产生溢出,C0端输出频率为输入频率的1/10, 达到十分频的作用。如果当频率很高时需要多次分频只需将多片 74HC4017级联就可以了
• 74HC4017时序图如下图所示
系统分频电路如下图所示
• while(p32==1); //执行完这条语句后信号电平状态为低电平
• TR0=1;
//使能TR0;
• while(p32==0); //等待信号高电平到来,如果高电平来了则定时器开始计时,如果没来,则继续循 环等待。
• while(p32==1); //等待信号高电平结束后,如果低电平,则定时器停止计时
• 根据设计要求用单片机的内部定时器0产生基准信号,由INTO输入被测 信号,通过定时方式计算被测信号的高电平持续时间。并通过单片机计 算得出结果,最后由1062液晶显示器显示测量结果。
• 频率计的系统设计框架如下图所示
被测信号
基于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液晶显示屏上看到实时的频率值。
数字频率计(51单片机)
数字频率计(51单片机)数字频率计(51单片机)数字频率计(Digital Frequency Counter)是一种常用的电子测量仪器,可用于测量信号的频率。
在本文中,我们将介绍如何使用51单片机实现一个简单的数字频率计。
一、原理简介数字频率计的基本原理是通过计算信号波形周期内的脉冲数来确定频率。
在实际应用中,我们通常使用51单片机作为微控制器,通过计数器和定时器模块来实现频率计算。
二、硬件设计1.信号输入首先,我们需要将待测信号输入到频率计中。
可以使用一个输入接口电路,将信号连接到51单片机的IO口上。
2.计时模块我们需要使用51单片机的定时器/计数器来进行计时操作。
在这里,我们选择使用定时器0来进行计数,同时可以利用定时器1来进行溢出次数的计数,以扩展计数范围。
3.显示模块为了显示测量结果,我们可以使用数码管、LCD液晶显示屏等显示模块。
通过将结果以可视化的方式呈现,方便用户进行观察和读数。
三、软件设计1.定时器配置首先,我们需要对定时器进行配置,以确定计时器的计数间隔。
通过设置定时器的工作模式、计数范围和时钟频率等参数,可以控制定时器的计数精度和溢出时间。
2.中断服务程序当定时器溢出时,会触发中断,通过编写中断服务程序,实现对计数器的相应操作,例如将计数值累加,记录溢出次数等。
3.数字频率计算根据计数器的值和溢出次数,我们可以计算出信号的频率。
通过简单的公式计算,即可得到测量结果。
四、实验步骤1.搭建硬件电路,将待测信号连接到51单片机的IO口上,并连接显示模块。
2.根据硬件设计要求,配置定时器的工作模式和计数范围。
3.编写中断服务程序,实现对计数器的相应操作。
4.编写主程序,实现数字频率计算和显示。
5.下载程序到51单片机,进行测试。
五、实验结果与分析通过实验,我们可以得到信号的频率测量结果,并将结果以数码管或LCD屏幕的形式进行显示。
通过对比实际频率和测量频率,可以评估数字频率计的准确性和稳定性。
基于51单片机数字频率计的设计与开发
摘要在电子技术中,频率是最大体的参数之一,而且与许多电参量的测量方案、测量结果都有十分紧密的关系,因此频率的测量就显得更为重要。
测量频率的方式有多种,其中电子计数器测量频率具有精度高、利用方便、测量迅速,和便于实现测量进程自动化等优势,是频率测量的重要手腕之一。
电子计数器测频有两种方式:一是直接测频法,即在必然闸门时刻内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。
直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。
本文论述了基于通用集成电路设计了一个简单的数字频率计的进程。
关键词:频率,信号,周期AbstractIn electronic technology,the frequency is the most basic one of the parameters,andwith a number of electrical parameters of the measurement program,measurement more important,There are several ways of mesuring frequency,in which electronic counter the frequency with high precision,easy to use ,quick measurements,and is easy to realize the advatages of automaion of measurement process is an important means of frequency Counter Frequency Measurement There are two ways:First,the directfrequency measurement method,thatis,the gate in a certain period of time measured the number of measured signal pulse;2is indirect frequency measurement method,such as cycle frequency measurement frequency measurement method for high-frequency signals offrequency measurement,indirect frequency measurement method for low-frequency signald of frequency this paper,based on a commom integrated circuit design of a simple digital frequency meter process.Key words:frequency,signal,period目录摘要 (Ⅰ)一、引言(一)数字频率计概述 (1)(二)问题提出 (1)(三)设计思想 (1)二、方案论证与比较(一)方案选择 (2)一、整体方案比较 (2)二、测频方案比较 (2)(二)测频原理 (2)三、数字频率计设计(一)数字频率计原理 (4)一、数字频率计的大体组成 (4)二、数字频率计的要紧技术指标 (5)(二)数字频率计的设计 (5)一、硬件电路设计 (5)二、软件的设计 (7)3、软件仿真 (9)四、大体元器件的论述(一)AT89S52简介 (9)一、要紧功能特性 (10)二、引脚功能 (11)(二)555按时器 (11)一、555按时器及其应用 (11)二、施密特触发器 (12)五、终止语(一)总结 (13)致谢 (14)参考文献 (15)附录 (16)一、引言(一)数字频率计概述数字频率计是运算机,通信设备,音频视频等科研生产领域不可缺少的测量仪器。
基于51单片机的简易频率计设计
基于51单片机的简易频率计设计下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!引言在电子测量领域,频率计是一种常用的仪器,用于测量信号的频率大小。
基于51单片机的频率计的设计讲解
基于51单片机的频率计的设计讲解频率计是一种测量信号频率的仪器。
基于51单片机的频率计设计能够实现对不同频率信号的测量,具有简单、可靠、价格低廉的优势。
本文将详细介绍基于51单片机的频率计的设计原理、电路设计和程序设计。
设计原理:基于51单片机的频率计的设计原理主要包括输入信号的检测和计数、计数值显示和频率计算。
当外部信号输入到单片机的输入引脚时,单片机通过计数器对输入信号的波形进行计数,计数值与输入信号的频率成正比。
通过将计数值转换为频率值,并在显示屏上显示,即可实现对输入信号频率的测量。
电路设计:输入电路:输入电路主要负责将外部信号通过耦合电容和电阻接入单片机的输入引脚。
在输入电路中,耦合电容的作用是将交流信号的AC分量通过,阻隔直流信号的DC分量。
电阻的作用是限制输入信号的幅值,防止单片机输入引脚的过大电流。
计数电路:计数电路是基于51单片机的频率计的核心部分,主要由计数器和时钟发生器组成。
计数器负责对输入信号的波形进行计数,时钟发生器负责提供计数脉冲。
计数器的选择应根据所需测量范围来确定,通常使用定时器/计数器来实现。
显示电路:显示电路主要由数码管和驱动电路组成。
通过将计数值转换为对应的数字,并将数字数据发送给数码管进行显示。
驱动电路负责控制数码管的亮度和显示方式。
程序设计:输入信号的采样:在程序中,通过定时器/计数器对输入信号进行采样,采样时间根据信号频率来确定。
采样得到的数据存储在特定的寄存器中,以供后续的计数和计算。
计数器的计数:通过对输入信号进行计数,得到计数值。
计数值的大小与输入信号的周期成反比,与输入信号频率成正比。
计数器的计数方式可以是边沿计数或脉冲计数,根据实际需求选择。
频率计算和显示:通过将计数值转换为频率值,并将频率值显示在数码管上。
频率计算可以采用简单的比例关系,如频率=计数值/计数时间。
将频率值转换为对应的数字,并通过驱动电路控制数码管的显示。
总结:基于51单片机的频率计通过对输入信号进行采样、计数、计算和显示,能够实现对不同频率信号的测量。
基于51单片机的频率计
1.实验任务利用51单片机的T0、T1的定时计数器,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示。
此设计能够对0-250KHZ的信号频率进行准确计数,计数误差不超过±1HZ。
2.电路原理图图4.31.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0-P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
(2).把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
(3).把“单片机系统”区域中的P3.4(T0)端子用导线连接到“频率产生器”区域中的W A VE 端子上。
4.程序设计内容(1).定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC=12MHz,因此:T0的最大计数频率为250KHz。
对于频率的概念就是在一秒只数脉冲的个数,即为频率值。
所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。
送到数码管显示出来。
(2).T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。
5.C语言源程序#includeunsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};unsigned char temp[8];unsigned char dispcount;unsigned char T0count;unsigned char timecount;bit flag;unsigned long x;void main(void){unsigned char i;TMOD=0x15;TH0=0;TL0=0;TH1=(65536-4000)/256;TL1=(65536-4000)%6;TR1=1;TR0=1;ET0=1;ET1=1;EA=1;while(1){if(flag==1){flag=0;x=T0count*65536+TH0*256+TL0;for(i=0;i<8;i++){temp[i]=0;}i=0;while(x/10){temp[i]=x ;x=x/10;i++;}temp[i]=x;for(i=0;i<6;i++){dispbuf[i]=temp[i];}timecount=0;T0count=0;TH0=0;TL0=0;TR0=1;}}}void t0(void) interrupt 1 using 0 {T0count++;}void t1(void) interrupt 3 using 0 {TL1=(65536-4000)%6;TH1=(65536-4000)/256;timecount++;if(timecount==250){TR0=0;timecount=0;flag=1;}P0=dispcode[dispbuf[dispcount]]; P2=dispbit[dispcount]; dispcount++;if(dispcount==8){dispcount=0;}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5显示电路: 显示电路由1602组成,其电路如下图所示
四. 软件设计:
频率计的软件设计主要由主程序、分频选择程序、液晶显示程序组成。 • 4.1 频率计的算法设计: • 根据设计要求频率范围是10HZ~100MHZ,当频率为10HZ时, T=100000us,高电平为50000us,0.1%的误差为100us,由单片机产生 的基准频率为1MHZ,T0=1us,最大误差为1us,计数个数为50000(方 式1),满足设计要求。当频率增加到1KHZ时,产生的误差刚刚能达到设计 要求,这时计数个数为500。当频率大于1KHZ时(即计数个数小于500) 就需要将被测频率分频后再测量,如当频率为10KHZ时,先计算计得的脉 冲数等于50,小于了500,所以将10KHZ的信号10分频得到1KHZ,这时 就满足要求了。 106 10i 其中n为计得的脉冲个数,i为分频的次数。 • 最后得到的频率 F
2n
4.2主程序
•
主程序首先对系统环境初始化,设置分频选通信号P2=0x00,选通 0通道。设置T0工作方式,采用硬件启动方式,GATE=1,当INT0 和TR0同时为1时启动计时,计数方式为方式1(16位),TH0和 TL0都置零。当外部中断INT0=1时等待,当外部中断为0时启动T0 即TR0=1,当INT0一直为0时就等待,一旦INT0=1就启动计数同时 等待,当INT0为0时跳出并关闭T0即TR0=0。这样就计得高电平期 间基准脉冲个数,当脉冲个数小于500时就选择10分频信号,即P2 自加1,同时记录分频一次;如果分频后脉冲个数还小于500则再次 分频,直到计数个数大于500
基于51单片机的频率计的设计
指导老师:曹新亮 通信12级 王妍静
一.方案的设计与比较
• 1.方案一: • 本设计是基于MCS-51单片机的频率计。被测信号经过信号转换电路从 而将其转换成同频率的方波信号,当频率过大时将进行分频处理,利 用单片机控制数据选择模块进行数据选择,最终将结果显示在1602液 晶显示屏上 • 2.方案二: • 本方案采用单片机程序处理输入信号并且将结果直接送往液晶显示, 为了提高系统的稳定性,输入信号前进行放大整形,在通过A/D转换器 输入单片机系统,采用这种方法可大大提高测试频率的精度和灵活性, 并且能极大的减少外部干扰,采用VDHL编程设计实现的数字频率计, 除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部 在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可 更改性。 • 3.方案三: • 采用频率计专用模块,即大规模集成电路将计数器、锁存器、译码、位 和段驱动,量程及小数点选择等电路集成在一块芯片中,该方案在技 术上是可行的,可以简化电路的设计,当对于设计要求中的某些指标, 采用专用模块来完成比较困难,即扩展极为不便。
• 硬件电路主要分为信号转换电路、分频电路、数据选择电路、单片机 系统和显示电路五部分。其总体电路图如下图所示
•
3.1 电平转换电路:
• 要将正弦信号转换成方波信号可以用过零比较电路实现。正弦信号通 过LM833N与零电平比较,电压大于零的时候输出LM833N的正电源 +5V,电压小于零的时候输出负电源0V。具体电路如下图所示
•
其计数工作示意图如下图所示
被测脉冲
启动计数
停止计数,读出计 数个数
基准脉冲T0
N个脉冲
主程序流程图如下图所示
开始
初始化数据选择 信号
系统初始化
读出计数个数 n 其计数工作 示意图如下图所示
Y n<=500 变换 数 据选 择 通道 ,计 算分频次数i
N 显示结果
• • • • • • • • • • • • • • • • • • • • • • • • •
void init_LCD() //初始化LCD { unsigned char i; WR_COM=0x38; //设置为8位数据总线,16*2,5*7点阵 for(i=0;i<100;i++) delay(); WR_COM=0x01; //清屏幕 for(i=0;i<50;i++) delay(); WR_COM=0x06; //光标移动,显示区不移动,读写操作后AC加1 for(i=0;i<50;i++) delay(); WR_COM=0x0c; for(i=0;i<50;i++) delay(); } /************************************************************************************************** / void init_cgram() { unsigned char i; //;设置自定义字符 WR_COM=0x40; for(i=0;i<24;i++) { WR_DAT=CGRAM_TABLE[i];
3.3数据选择电路:
根据设计要求,要根据计数脉冲个数来选择分频次数,可以用74151 来选择分频次数,74151的选择控制信号由单片机的I/O口来控制。数 据选择电路如下图所示。
3.4单片机系统:
单片机采用AT89C51,采用12MHZ的晶振频率。单片机的P3.2口接被 处理后的被测信号,P0口接液晶显示器的数据输入端,ALE,RD, WR,P0.0,P0.1通过外接控制电路接液晶显示器的控制端。单片机 系统的电路如下图所示。
• 以上三种方案比较:第一种方案具有设计复杂度小、电 路简洁、功能实用且成本低廉等特点,其稳定性较好基 本能满足设计要求。方案二采用单片机处理能较高要求, 但成本提高且设计复杂。方案三采用专用频率计设计模 块固然设计简单且稳定但系统可扩展性能较差。 • 综上所述,本课题采用第一种设计方案。
二.设计原理与总体方案
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
} for(i=0;i<40;i++) delay();
} /************************************************************************************************** / void PutChar(char t) { WR_DAT=t; delay(); delay(); } void clr_lcd() { WR_COM=0x01; delay(); delay(); } void lcdprintf(char x,char y,char *s) { //clr_lcd(); if(y>1)y=1; WR_COM=(y*0x40+x)|0x80; delay(); delay(); while(*s!=0) { WR_DAT=*s; s++; delay(); delay(); } }
• 根据设计要求用单片机的内部定时器0产生基准信号,由INTO输入被测 信号,通过定时方式计算被测信号的高电平持续时间。并通过单片机计 算得出结果,最后由1062液晶显示器显示测量结果。 • 频率计的系统设计框架如下图所示
被测信号
信号转换 (过零比较)
分频处理
AT89C51 液晶显示
数据选择 器
三.硬件设计
•
3.2 分频电路:
• 分频电路采用十进制的计数器74HC4017来分频,当被测信号脉冲个 数达到10个时74HC4017产生溢出,C0端输出频率为输入频率的1/10, 达到十分频的作用。如果当频率很高时需要多次分频只需将多片 74HC4017级联就可以了 • 74HC4017时序图如下图所示
系统分频电路如下图所示
• • • • • • • • • • • • • • • • • • • • • • • • • • •
period=period*10; if(i==6) {P2=0x00; break; } } k=pow(10,i); /* 10的i次方*/ f=(1000000.0/(2*period))*k; if(f<1000) sprintf(buff,"f=%5.2fHZ",f); else {m=f/1000.0; sprintf(buff,"f=%5.2fKHZ",m); } lcdprintf(0,0,buff); } } 显示子程序: #include <lcd.h> char code CGRAM_TABLE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,// ;年 0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00, //;月 0x0F,0x09,0x09,0x0F,0x0,0x09,0x0F,0x00}; // ;日 void delay() //延时子程序 { unsigned char i; for(i=0;i<250;i++); }
• • • • • • • • • • • • • • • • • • • •
• • • • • •
主程序: #include<reg51.h> //头文件 #include<stdio.h> #include<lcd.c> #include<math.h> sbit p32=P3^2; //P3^2作为信号输入端 main() { unsigned int period,k,j,i=0; // period,为定时器计数总值,i是分频次数 float f,m; //浮点变量 char buff[30]; init_LCD(); //初始化LCD P2=0x00; //选通D0路信号 while(1) { TMOD=0X09; //配置定时器0为工作方式1,即16位定时器,并硬件启动 TH0=0; //装定时器初值为0 TL0=0; while(p32==1); //执行完这条语句后信号电平状态为低电平 TR0=1; //使能TR0; while(p32==0); //等待信号高电平到来,如果高电平来了则定时器开始计时,如果没来,则继续循 环等待。 while(p32==1); //等待信号高电平结束后,如果低电平,则定时器停止计时 TR0=0; //关闭定时器 period=TH0*256+TL0; //计算定时器装的总值 while(period<=500) /*判断是否分频及计算分频次数*/ 即频率是否大于1KHZ { P2++; i++;