当前位置:文档之家› 高精度单片机频率计的设计

高精度单片机频率计的设计

高精度单片机频率计的设计
高精度单片机频率计的设计

《综合课程设计》

一.数字频率计的设计

姓名:万咬春学号2005142135

一、课程设计的目的

通过本课程设计使学生进一步巩固光纤通信、单片机原理与技术的基本概念、基本理论、分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效地将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。

二、课程设计的内容和要求

1.课程设计内容

(硬件类)频率测量仪的设计

2.课程设计要求

频率测量仪的设计

要求学生能够熟练地用单片机中定时/计数、中断等技术,针对周期性信号的特点,采用不同的算法,编程实现对信号频率的测量,将测量的结果显示在LCD 1602

上,并运用Proteus软件绘制电路原理图,进行仿真验证。

三.实验原理

可用两种方法测待测信号的频率

方法一:(定时1s测信号脉冲次数)

用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启T0和T1这样即可进入下一轮测量。

原理示意图如下:

实验原理分析:

1.根据该实验原理待测信号的频率不应该大于计数器的最大值65535,也就是说待测信号应小于65535Hz。

2.实验的误差应当是均与的与待测信号的频率无关。

方法二(测信号正半周期)

对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx (外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/fsoc) cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。

原理示意图如下:

实验原理分析:

1.根据该实验原理该方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号

2.由于有执行f=1/(2*cnt/(12/fsoc))的浮点运算,而数据类型转换时未用LCD 浮点显示,故测得的频率将会被取整,如1234.893Hz理论显示为1234Hz,测

得结果会有一定程度的偏小。也就是说测量结果与信号频率的奇偶有一定关

系。

3.由于计数器的寄存器取值在1~65535之间,用该原理时,待测信号的频率小于单片机周期的1/12时,单片机方可较标准的测得待测信号的正半周期。故用

该原理测得信号的最高频率理论应为fsoc/12 如12MHZ的单片机为1MHz。

而最小频率为f=1/(2*65535/(12/fsoc))如12MHZ的单片机为8Hz。

四.实验内容及步骤

1. 仿真模型的构建

数字方波频率计的设计总体可分为两个模块。一是信号频率测量,二是将测得的频率数据显示在1602液晶显示模块上。因此可搭建单片机最小系统构建构建频率计的仿真模型。原理图,仿真模型的总原理图如下:

2. 液晶显示部分功能与原理分析

由于此部分并非课程的主要部分,故仅作简要原理分析

A.1602硬件接口及功能接口

//硬件接口部分********************************************************** sbit LcdRs = P2^0;

sbit LcdRw = P2^1;

sbit LcdEn = P2^2;

sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口

//向LCD写入命令或数据

************************************************************

#define LCD_COMMAND 0 // Command

#define LCD_DATA 1 // Data

#define LCD_CLEAR_SCREEN 0x01 // 清屏

#define LCD_HOMING 0x02 // 光标返回原点

//设置显示模式************************************************************ #define LCD_SHOW 0x04 //显示开

#define LCD_HIDE 0x00 //显示关

#define LCD_CURSOR 0x02 //显示光标

#define LCD_NO_CURSOR 0x00 //无光标

#define LCD_FLASH 0x01 //光标闪动

#define LCD_NO_FLASH 0x00 //光标不闪动

//设置输入模式************************************************************ #define LCD_AC_UP 0x02 //将光标返回0x00

#define LCD_AC_DOWN 0x00 // default

#define LCD_MOVE 0x01 // 画面可平移

#define LCD_NO_MOVE 0x00 //default

B .1602初始化流程和原理框图

void LCD_Initial() { LcdEn=0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC 递增, 画面不动 }

C . 写DDRAM 地址(原理框图如上) void GotoXY(unsigned char x, bit y) { if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40)); }

D .写字符串(原理框图如上)

void Print(unsigned char *str) { while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; }

初始化流程

写DDRAM 地址,DDRAM 地

址与屏幕相对应

str

写字符串

3.程序机原理框图(关于显示函数部分不列出,只分析算法函数)

方法一:

用定时计数器T0做脉冲计数器(下跳沿有效),开始与暂停由T1控制定时计数器T1做定时中断,定时1s,定时开启置T0开始计数,定时完毕,置T0为暂停,关闭T1,读取计数数据并清空计数器,将计数数据装换为有效规范的字符串显示后再开启T0和T1,进入下一轮测量。

以下是程序的核心部分:(定时1s,取计数数,并将其转换显示出来)原理框图如下

void timer1() interrupt 3 //定时50ms

{ TH1=THCLK;

TL1=TLCLK;

if(--Cnt==0) //Cnt初值为20

{

TR0=0; TR1=0;

Cnt=CntNum;

tmp=TH0*256+TL0;

TH0=TL0=0;

Dynamic_LCD_Print();

TR0=1;

TR1=1;

}

}

方法二:

用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx(外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/fsoc) cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。

以下是程序的核心部分:(原理框图如下)

void chkfreq() //

{ while(FreqIN==0);

while(FreqIN==1);

TR0=1;

while(FreqIN==0);

while(FreqIN==1);

TR0=0;

cnttime=500000/(TH0*256+TL0);

TH0=TL0=0;

tmp=(int)cnttime;

Dynamic_LCD_Print();

}

4.原理框图如下

五.课程设计结果及结论

1.通过程序调试,用Protues 用两种方法均可测得小于6Mhz 的频率,以

下是用方法一测量1000Hz 频率的仿真图:

方法一流程图 方法二流程图

2.实验结果及误差分析

对于用原理一

A.待测信号的频率小于65535Hz。

B.实验的误差2000Hz时为0.05%;10000Hz时为0.07% ;50000~60000Hz 时为0.073%。

对于用原理二

C.在频率8-10000Hz时测得的值相当精确,频率为奇数时有1-2的误差。

D.超过频率8-10000Hz测得值完全错误

由此可见实验结果符合之前的原理分析,验证成功。

3。实验优化及改进建议

a)方法一可将计数器0更改为中断扩展数据位数并延长定时时间,数据处理

后和测量大于65535Hz的频率,但由T0中断不确定性,加大了测量范围

会加大测量误差

b)方法二可将硬件待测信号取反接入剩余的外部中断接口,用于测量待测信

号的负半周期,将正半周期和负半周期数相加即为待测信号的周期。这样

即可测量非均衡占空比的方波信号。

c)方法二还可计多次正半周期取平均值,可大大提高精度,但这样会提高实

验的最低量程

4.两算法的对比

a)方法一误差均衡,切易于扩大量程,且可测量任意占空比的方波信号,但

由于单片机的限制频率越高误差将表现更明显。

b)方法二在量程内误差比方法一稍小,占用CPU资源较小,但量程比方法

一小,切不能测量非均衡占空比的频率信号,超过量程测量结果完全错误。

c)由此可见方法一较方法二有明显的优势

六.课程设计的心得体会

通过这次综合实验,不仅加深了我对单片接的认识而却还学会了设计,开发以及实际测试,锻炼了我们的实际动手能力。

在课程设计中通过两种原理与算法是我更清晰的认识了单片机对数据的处理,

进行程序调试。在此期间我们遇到很多麻烦,但通过仔细分析,我一次又一次品尝到了解决问题的喜悦,最终完成了实验,在测试中我们发现了自己知识的不足,通过几天的奋斗,我们学到了很多东西,最重要的是我们学会了一种精神————永不放弃。在以后的时间里面我们会用这种精神去学习,更上一层楼。

七、课程设计参考资料

教材:1)张毅刚编.《单片机原理及应用》[M].北京:高等教育出版社,2003.

参考书:1)Optisystem 实验指导书(自编讲义)。

2)周景润编著.基于Proteus的单片机设计与仿真[M].北京:北京

航空航天出版社,2007.

附录(完整的源程序)

一.1602_Drive.h完整的库函数

/**************************************************************************

THE 1602 CHAR LCD LIB

COPYRIGHT (c) 2008 BY wanxun

File Name: 1602_Drive.h

Author: wanxun

Created: 2008/12/1

***************************************************************************/

#ifndef LCD_CHAR_1602

#define LCD_CHAR_1602

#include

//硬件接口部分**********************************************************

sbit LcdRs = P2^0;

sbit LcdRw = P2^1;

sbit LcdEn = P2^2;

sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口

//内部等待函数**********************************************************

unsigned char LCD_Wait(void)

{

LcdRs=0;

LcdRw=1; _nop_();

LcdEn=1; _nop_();

//while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,

//可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80

//实际硬件时打开此语句

LcdEn=0;

return DBPort;

}

//向LCD写入命令或数据

************************************************************

#define LCD_COMMAND 0 // Command

#define LCD_DATA 1 // Data

#define LCD_CLEAR_SCREEN 0x01 // 清屏

#define LCD_HOMING 0x02 // 光标返回原点

void LCD_Write(bit style, unsigned char input)

{

LcdEn=0;

LcdRs=style;

LcdRw=0; _nop_();

DBPort=input; _nop_();//注意顺序

LcdEn=1; _nop_();//注意顺序

LcdEn=0; _nop_();

LCD_Wait();

}

//设置显示模式************************************************************

#define LCD_SHOW 0x04 //显示开

#define LCD_HIDE 0x00 //显示关

#define LCD_CURSOR 0x02 //显示光标

#define LCD_NO_CURSOR 0x00 //无光标

#define LCD_FLASH 0x01 //光标闪动

#define LCD_NO_FLASH 0x00 //光标不闪动

void LCD_SetDisplay(unsigned char DisplayMode)

{

LCD_Write(LCD_COMMAND, 0x08|DisplayMode);

}

//设置输入模式************************************************************ #define LCD_AC_UP 0x02

#define LCD_AC_DOWN 0x00 // default

#define LCD_MOVE 0x01 // 画面可平移

#define LCD_NO_MOVE 0x00 //default

void LCD_SetInput(unsigned char InputMode)

{

LCD_Write(LCD_COMMAND, 0x04|InputMode);

}

//移动光标或屏幕************************************************************ /*

#define LCD_CURSOR 0x02

#define LCD_SCREEN 0x08

#define LCD_LEFT 0x00

#define LCD_RIGHT 0x04

void LCD_Move(unsigned char object, unsigned char direction)

{

if(object==LCD_CURSOR)

LCD_Write(LCD_COMMAND,0x10|direction);

if(object==LCD_SCREEN)

LCD_Write(LCD_COMMAND,0x18|direction);

}

*/

//初始化LCD************************************************************

void LCD_Initial()

{

LcdEn=0;

LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标

LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动

}

//************************************************************************ void GotoXY(unsigned char x, bit y)

{

if(y==0)

LCD_Write(LCD_COMMAND,0x80|x);

if(y==1)

LCD_Write(LCD_COMMAND,0x80|(x-0x40));

}

void Print(unsigned char *str)

{

while(*str!='\0')

{

LCD_Write(LCD_DATA,*str);

str++;

}

}

/*

void LCD_LoadChar(unsigned char user[8], unsigned char place)

{

unsigned char i;

LCD_Write(LCD_COMMAND,0x40|(place*8));

for(i=0; i<8; i++)

LCD_Write(LCD_DATA,user[i]);

}

*/

//************************************************************************

#endif

二.方法一的源程序

#include

#include <1602_Drive.h>

/******************************************************************

* 定义接口: * * 液晶显示器的接口“1602_Drive.h”库函数中已经定义 *

* 定义待测方波频率的接口: *

* P3^5(T0口)做时钟输入接口; *

******************************************************************/

//==================================================================

//用测量脉冲次数的方法时定义的定时1s的参数

#define THCLK 0x3c

#define TLCLK 0xb0

#define CntNum 20

//==================================================================

//定义中间变量

unsigned int Cnt;

unsigned int tmp;

unsigned char outcnt[8];

//==================================================================

//将测量的整数装换为标准有效的字符串

void NumToChar(void)

{ unsigned char i;

outcnt[0]=tmp/10000+48;tmp%=10000;

outcnt[1]=tmp/1000+48;tmp%=1000;

outcnt[2]=tmp/100+48;tmp%=100;

outcnt[3]=tmp/10+48;tmp%=10;

outcnt[4]=tmp+48;

outcnt[5]='H';

outcnt[6]='z';

outcnt[7]='\0';

for(i=0;i<4;i++) //将字符中数字的最高有效位之前的'0'清空为‘’。

{ if(outcnt[i]=='0')outcnt[i]=' ';

else break;

}

}

//==================================================================

//静态显示文本

void Static_LCD_Print()

{ GotoXY(0,0);

Print("Freq is:");

GotoXY(1,1);

Print("Made by wanxun");

}

//==================================================================

//动态显示数据

void Dynamic_LCD_Print()

{ NumToChar();

GotoXY(9,0);

Print(outcnt);

}

//==================================================================

/******************************************************************

*用定时计数器T0做脉冲计数器(下跳沿有效),开始与暂停由T1控制 *

*定时计数器T1做定时中断,定时1s,定时开启置T0开始计数,定时完毕置 *

*T0为暂停,关闭T1,读取计数数据并清空计数器,将计数数据装换为有效 *

*规范的字符串显示后再开启T0和T1,进入下一轮测量 *

******************************************************************/

void Initial_C51()

{ TH0=TL0=0;

TH1=THCLK;

TL1=TLCLK;

TR0=0;

TMOD=0x15;

IE=0x88;

TR1=0;

Cnt=CntNum;

}

void timer1() interrupt 3 //定时50ms

{

TH1=THCLK;

TL1=TLCLK;

if(--Cnt==0)

{

TR0=0;

TR1=0;

Cnt=CntNum;

tmp=TH0*256+TL0;

TH0=TL0=0;

Dynamic_LCD_Print();

TR0=1;

TR1=1;

}

}

void main(void)

{

Initial_C51();

LCD_Initial();

Static_LCD_Print();

TR0=1;

TR1=1;

do{ //空循环用于执行其他任务

}while(1);

}

三.方法二源程序

#include

#include <1602_Drive.h>

/******************************************************************

* 定义接口: *

* 液晶显示器的接口“1602_Drive.h”库函数中已经定义 *

* 定义待测方波频率的接口: *

* *

******************************************************************/

sbit FreqIN=P3^2;

//==================================================================

//定义中间变量

unsigned int tmp;

float cnttime;

unsigned char outcnt[8];

//==================================================================

//将测量的整数装换为标准有效的字符串

void NumToChar(void)

{ unsigned char i;

outcnt[0]=tmp/10000+48;tmp%=10000;

outcnt[1]=tmp/1000+48;tmp%=1000;

outcnt[2]=tmp/100+48;tmp%=100;

outcnt[3]=tmp/10+48;tmp%=10;

outcnt[4]=tmp+48;

outcnt[5]='H';

outcnt[6]='z';

outcnt[7]='\0';

for(i=0;i<4;i++) //将字符中数字的最高有效位之前的'0'清空为‘’。

{ if(outcnt[i]=='0')outcnt[i]=' ';

else break;

}

}

//==================================================================

//静态显示文本

void Static_LCD_Print()

{ GotoXY(0,0);

Print("Loading....");

GotoXY(1,1);

Print("Made by wanxun");

}

//==================================================================

//动态显示数据

void Dynamic_LCD_Print()

{ NumToChar();

GotoXY(0,0);

Print("Freq is: ");

Print(outcnt);

}

/****************************************************************** *以下为用测量脉冲周期来测量频率的方法 * ******************************************************************/ void Initial_C51()

{ TH0=TL0=0;

TR0=0;

TMOD=0x09;

}

void chkfreq() //

{ while(FreqIN==0);

while(FreqIN==1);

TR0=1;

while(FreqIN==0);

while(FreqIN==1);

TR0=0;

cnttime=500000/(TH0*256+TL0);

TH0=TL0=0;

tmp=(int)cnttime;

Dynamic_LCD_Print();

}

void main(void)

{

Initial_C51();

LCD_Initial();

Static_LCD_Print();

chkfreq();

while(1);

}

单片机简易频率计课程设计

前言 (3) 一、总体设计 (4) 二、硬件设计 (6) AT89C51单片机及其引脚说明: (6) 显示原理 (8) 技术参数 (10) 电参数表 (10) 时序特性表 (11) 模块引脚功能表 (12) 三、软件设计 (12) 四、调试说明 (15) 五、使用说明 (17) 结论 (17) 参考文献 (18)

附录 (19) Ⅰ、系统电路图 (19) Ⅱ、程序清单 (20)

前言 单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用在生活中至关重要。 随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行缓慢,而且测量频率的范围比较小.考虑到上述问题,本论文设计一个基于单片机技术的数字频率计。首先,我们把待测信号经过放大整形;然后把信号送入单片机的定时计数器里进行计数,获得频率值;最后把测得的频率数值送入显示电路里进行显示。本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统得各种电路元器件,并对硬件电路进行了仿真。

一、总体设计 用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量. 所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率f x。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s.闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。 本系统采用测量频率法,可将频率脉冲直接连接到AT89C51的T0端,将T/C1用做定时器。T/C0用做计数器。在T/C1定时的时间里,对频率脉冲进行计数。在1S定时内所计脉冲数即是该脉冲的频率。见图1: 图1测量时序图 由于T0并不与T1同步,并且有可能造成脉冲丢失,所以对计数器T0做一定的延时,以矫正误差。具体延时时间根据具体实验确定。 根据频率的定义,频率是单位时间内信号波的个数,因此采用上述各种方案

2位十进制高精度数字频率计设计

广州大学学生实验报告 实验室:电子信息楼 317EDA 2017 年 10 月 2 日 学院机电学院年级、专 业、班 电信 151 姓名苏伟强学号1507400051 实验课 程名称 可编程逻辑器件及硬件描述语言实验成绩 实验项 目名称 实验4 2位十进制高精度数字频率计设计指导老师 秦剑 一实验目的 1 熟悉原理图输入法中74系列等宏功能元件的使用方法,掌握更复杂的原理图层次化设计技术和数字系统设计方法。 2 完成2位十进制频率计的设计,学会利用实验系统上的FPGA/CPLD验证较复杂设计项目的方法。 二实验原理 1 若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。 三实验设备 1 FPGA 实验箱,quarteus软件 四实验内容和结果 1 2位十进制计数器设计 1.1 设计原理图:新建quarteus工程,新建block diagram/schematic File文件,绘制原理图,命名为conter8,如图1,保存,编译,注意:ql[3..0]输出的低4位(十进制的个位), qh[3..0]输出的高4位(十进制的十位) 图片11.2 系统仿真:如图2建立波形图进行波形仿真,如图可以看到完全符合设计要求,当clk输入时钟信号时,clr有清零功能,当enb高电平时允许计数,低电平禁止计数,当低4位计数到9时向高4位进1 图2 1.3 生成元件符号:File->create/updata->create symbol file for current file,保存,命名为conter8,如图3为元件符号(block symbol file 文件): 图3 2 频率计主结构电路设计 2.1 绘制原理图:关闭原理的工程,新建工程,命名为ft_top,新建原理图文件,在project navigator的file 选项卡,右键file->add file to the project->libraries->project library name添加之前conters8工程的目录在该目录下,这样做的目的是因为我们会用到里面的conters8进行原理图绘制,绘制原理图,如图4,为了显示更多的过程信息,我们将74374的输出也作为output,重新绘制了原理图,图5 图4

等精度频率计设计C程序

1 #include 2 #include 3 #include 4 #include 5 #include 6 #define uchar unsigned char 7 #define uint unsigned int 8 #define ulong unsigned long 9 10 code uchar m[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0x00}; 11 // 0 1 2 3 4 5 6 7 8 9 灭 12 data uchar NS[]={0x0,0x0,0x0,0x0};//标准频率计数 13 data uchar NX[]={0x0,0x0,0x0,0x0};//待测频率计数 14 data ulong NSS,NXX,MM,F; 15 data ulong temp1,temp2; 16 data uchar shuju[]={0,0,0,0,0,0,0,0};//数码管数据 17 sbit CLR = P2^3; 18 sbit SEL2 = P2^2; 19 sbit SEL1 = P2^1; 20 sbit SEL0 = P2^0; 21 sbit CL = P2^4; 22 sbit START = P2^7; 23 //int i,j,k,l; 24 char *pNS; //清零 25 char *pNSS; 26 char *pNX; 27 char *pNXX; 28 29 void delay(uint x); 30 void display(); 31 void operation(); 32 void outdata(); 33 34 long powcyc(long c1,long c2) 35 { 36 long c3=1; 37 uchar ii; 38 for(ii=0;ii

单片机课程设计报告——智能数字频率计汇总

单片机原理课程设计报告题目:智能数字频率计设计 专业:信息工程 班级:信息111 学号:*** 姓名:*** 指导教师:*** 北京工商大学计算机与信息工程学院

1、设计目的 (1)了解和掌握一个完整的电子线路设计方法和概念; (2)通过电子线路设计、仿真、安装和调试,了解和掌握电子系统研发产品的一个基本流程。 (3)了解和掌握一些常见的单元电路设计方法和在电子系统中的应用: 包括放大器、滤波器、比较器、计数和显示电路等。 (4)通过编写设计文档与报告,进一步提高学生撰写科技文档的能力。 2、设计要求 (1)基本要求 设计指标: 1.频率测量:0~250KHz; 2.周期测量:4mS~10S; 3.闸门时间:0.1S,1S; 4.测量分辨率:5位/0.1S,6位/1S; 5.用图形液晶显示状态、单位等。 充分利用单片机软、硬件资源,在其控制和管理下,完成数据的采集、处理和显示等工作,实现频率、周期的等精度测量方案。在方案设计中,要充分估计各种误差的影响,以获得较高的测量精度。 (2)扩展要求 用语音装置来实现频率、周期报数。 (3)误差测试 调试无误后,可用数字示波器与其进行比对,记录测量结果,进行误差分析。 (4)实际完成的要求及效果 1.测量范围:0.1Hz~4MHz,周期、频率测量可调; 2.闸门时间:0.05s~10s可调; 3.测量分辨率:5位/0.01S,6位/0.1S; 4.用图形液晶显示状态、单位(Hz/KHz/MHz)等。 3、硬件电路设计 (1)总体设计思路

本次设计的智能数字频率计可测量矩形波、锯齿波、三角波、方波等信号的频率。系统共设计包括五大模块: 主芯片控制模块、整形模块、分频模块、档位选择模块、和显示模块。设计的总的思想是以AT89S52单片机为核心,将被测信号送到以LM324N为核心的过零比较器,被测信号转化为方波信号,然后方波经过由74LS161构成的分频模块进行分频,再由74LS153构成的四选一选择电路控制档位,各部分的控制信号以及频率的测量主要由单片机计数及控制,最终将测得的信号频率经LCD1602显示。 各模块作用如下: 1.主芯片控制模块: 单片机AT89S52 内部具有2个16位定时/计数器T0、T1,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。利用单片机的计数器和定时器的功能对被测信号进行计数。以AT89S52 单片机为控制核心,来完成对各种被测信号的精确计数、显示以及对分频比的控制。利用其内部的定时/计数器完成待测信号周期/频率的测量。 2.整形模块:整形电路是将一些不是方波的待测信号转化成方波信号,便于测量。本设计使用运放器LM324连接成过零比较器作为整形电路。 3.分频模块: 考虑单片机利用晶振计数,使用11.0592MHz 时钟时,最大计数速率将近500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。本设计使用的分频芯片是74LS161实现4分频及16分频。 4.档位选择模块:控制74LS161不分频、4分频或者 16分频,控制芯片是74LS153。 5.显示模块:编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示,本设计选用LCD1602。 (2)测频基本设计原理 所谓“频率”,就是周期性信号在单位时间(1s)内变化 的次数。若在一定时间间隔T内测得这个周期性信号的重复变 化次数N,则其频率可表示为f=N/T(右图3-1所示)。其中脉 冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等 。利用单片机的定时/计数T0、T1的定时、计数 于被测频率f x 功能产生周期为1s的时间脉冲信号,则门控电路的输出信号持图3-1

高精度单片机频率计的设计

《综合课程设计》 一.数字频率计的设计 姓名:万咬春学号2005142135 一、课程设计的目的 通过本课程设计使学生进一步巩固光纤通信、单片机原理与技术的基本概念、基本理论、分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效地将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。 二、课程设计的内容和要求 1.课程设计内容 (硬件类)频率测量仪的设计 2.课程设计要求 频率测量仪的设计 要求学生能够熟练地用单片机中定时/计数、中断等技术,针对周期性信号的特点,采用不同的算法,编程实现对信号频率的测量,将测量的结果显示在LCD 1602 上,并运用Proteus软件绘制电路原理图,进行仿真验证。 三.实验原理 可用两种方法测待测信号的频率 方法一:(定时1s测信号脉冲次数) 用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启T0和T1这样即可进入下一轮测量。 原理示意图如下:

实验原理分析: 1.根据该实验原理待测信号的频率不应该大于计数器的最大值65535,也就是说待测信号应小于65535Hz。 2.实验的误差应当是均与的与待测信号的频率无关。 方法二(测信号正半周期) 对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx (外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/fsoc) cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。 原理示意图如下: 实验原理分析: 1.根据该实验原理该方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号 2.由于有执行f=1/(2*cnt/(12/fsoc))的浮点运算,而数据类型转换时未用LCD 浮点显示,故测得的频率将会被取整,如1234.893Hz理论显示为1234Hz,测 得结果会有一定程度的偏小。也就是说测量结果与信号频率的奇偶有一定关 系。 3.由于计数器的寄存器取值在1~65535之间,用该原理时,待测信号的频率小于单片机周期的1/12时,单片机方可较标准的测得待测信号的正半周期。故用 该原理测得信号的最高频率理论应为fsoc/12 如12MHZ的单片机为1MHz。 而最小频率为f=1/(2*65535/(12/fsoc))如12MHZ的单片机为8Hz。 四.实验内容及步骤 1. 仿真模型的构建 数字方波频率计的设计总体可分为两个模块。一是信号频率测量,二是将测得的频率数据显示在1602液晶显示模块上。因此可搭建单片机最小系统构建构建频率计的仿真模型。原理图,仿真模型的总原理图如下:

基于单片机的数字频率计设计

江阴职业技术学院 毕业论文 课题:基于单片机的数字频率计的设计 专业电子信息工程 学生姓名冯海洋 班级08电子信息工程(1)班 学号20080305107 指导教师张文洁 完成日期

目录 摘要?错误!未定义书签。 前言................................................................................................... 错误!未定义书签。第一章绪论............................................................................................... 错误!未定义书签。 1.1课题背景?错误!未定义书签。 1.2 课题研究的目的和意义 ................................................................. 错误!未定义书签。 1.4数字频率计设计的任务与要求?错误!未定义书签。 第二章数字频率计总体方案设计............................................................... 错误!未定义书签。 1.1方案比较 .......................................................................................... 错误!未定义书签。 1.2方案论证......................................................................................... 错误!未定义书签。 1.3方案选择......................................................................................... 错误!未定义书签。 第三章数字频率计的硬件系统设计........................................................... 错误!未定义书签。 3.1数字频率计的硬件系统框架...................................................... 错误!未定义书签。 3.2 数字频率计的主机电路设计?错误!未定义书签。 3.3数字频率计的信号输入电路设计................................................... 错误!未定义书签。 3.4数字频率计显示电路的设计 ........................................................... 错误!未定义书签。 3.5数字频率计的计数电路的设计?错误!未定义书签。 3.6数字频率计电源模块的设计?错误!未定义书签。 第四章数字频率计软件系统设计?错误!未定义书签。 4.1 软件设计规划................................................................................. 错误!未定义书签。 4.1.1信号处理............................................................................ 错误!未定义书签。 4.1.2中断控制................................................................................. 错误!未定义书签。 4.2.1定时器/计数器?错误!未定义书签。 4.2.2定时工作方式0..................................................................... 错误!未定义书签。 4.3程序流程图设计................................................................................ 错误!未定义书签。

单片机数字频率计设计

目录 第一章摘要 (2) 第二章系统总体方案设计 (2) 2.1 总体思路设计 (2) 2.2 测频原理 (3) 第三章系统硬件设计 (4) 3.1 AT89S51单片机引脚的介绍 (4) 3.2 锁存器74HC573引脚的介绍 (6) 3.3 译码器74HC138引脚介绍 (7) 3.4 放大整形模块 (7) 3.5 显示模块设计 (8) 3.6 键盘电路设计 (9) 3.7 复位电路和时钟产生电路设计 (10) 3.8 +5V电源设计 (11) 3.9 系统整体原理图 (13) 第四章系统软件设计 (13) 4.1 主程序流程图 (13) 4.2子程序流程图 (14) 4.2.1中断服务子程序 (14) 4.2.2 显示子程序设计 (15) 4.2.3量程转换程序 (16) 第五章设计总结与心得体会 (17) 参考文献 (19) 附录 (20) 1、源程序 (20) 2、硬件电器总原理图 (25)

第一章摘要 在单片机技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率计的测量就显得更为重要,测量频率的方法有多种,其中基于单片机的数字频率计时器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。本次课程设计以AT89S51单片机为控制核心,应用AT89S51单片机、单片机的I/O端口外扩驱动器74HC573和74HC138、LED动态显示等实现对外部信号频率进行准确计数的设计。电路图设计使用protel绘图软件完成,软件设计方面使用单片机汇编或C语言对各个模块进行编程,最后通过综合测试,实现满足要求的设计方案。频率测量有两种方法:一是直接测频法,即在一定时间内测量被测信号的个数;而是测周法。直接测频法适用于高频信号的频率测量,测周法适用于低频信号的频率测量。 关键词:单片机;频率计;测量 第二章系统总体方案设计 设计要求: 使用单片机的定时器/计数器功能,设计频率测量装置。 (1)直接采用AT89S51单片机的I/O端口外扩驱动器,实现LED动态扫描驱动。(2)采用6位数码管显示输入单片机的外部脉冲频率。 (3)当被测频率fx<100Hz时,采用测周法,显示频率XXX.XXX;当被测频率fx>100Hz 时,采用测频法,显示频率XXXXXX。 (4)利用键盘分段测量和自动分段测量。 (5)完成单脉冲测量,输入脉冲宽度范围是100μs-0.1s,低四位显示脉冲宽度,单位为μs。 2.1 总体思路设计 以单片机AT89S51为核心,利用单片机AT89S51的计数/定时器(T1和T0)的功能来实现频率的计数,并且利用单片机的动态扫描把测出的数据送到数字显示电路显示。利用74HC573驱动数码管,显示电路共由六位LED数码管组成,总体原理框图如图2.1所示。

单片机频率计课程设计

贵州大学课程设计 任务要求 运用所学单片机原理、、模拟和数字电路等方面的知识,设计出一个数字频率计。数字频率计要求如下: 1)能对0~50kHz的信号频率进行计数; 2)频率测量结果通过4位数码管显示(十进制)。 二、课程设计应完成的工作 1)硬件部分包括微处理器(MCU)最小系统(供电、晶振、复位)、频率测量和数码管显示部分; 2)软件部分包括初始化、频率计算、显示等; 3)用PROTEUS软件仿真实现; 4)画出系统的硬件电路结构图和软件程序框图; 内容摘要 1.数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。 2.采用12 MHz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的方法实现。选用定时/计数器TO作定时器,工作于方式1产生50 ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时。

贵州大学课程设计 第1节引言 本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1.1数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 1.2任务分析与设计思路 频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。在本次设计使用的AT89C51单片机,本身自带有定时器和计数器,单片机的T0、T1两个定时/计数器,一个用来定时,另一个用来计数,定时/计数器的工作由相应的运行控制位 TR 控制 ,当 TR 置 1 ,定时/ 计数器开始计数 ;当 TR 清 0 ,停止计数。在定时1s里,计数器计的脉冲数就是频率数,但是由于1s超过了A T89C51的最大定时,因此我们采用50ms定时,在50ms 内的脉冲数在乘以14就得到了频率数,在转换为十进制输出就可。

基于5单片机的数字频率计设计

基于5单片机的数字频率计设计

毕业论文基于51单片机的数字频率计 基于51单片机的数字频率计 目录 第1节引言 (2) 1.1数字频率计概 述…………………………………………… (2) 1.2频率测量仪的设计思路与频率的计 算…………………………………………… (2) 1.3基本设计原 理…………………………………………… (3) 第2节数字频率计(低频)的硬件结构设计 (4) 2.1系统硬件的构成 (4) 2.2系统工作原理图 (4) 2.3AT89C51单片机及其引脚说明…………………………………………………

(5) 2.4信号调理及放大整形模块 (7) 2.5时基信号产生电路 (7) 2.6显示模块 (8) 第3节软件设计 (12) 3.1 定时计数 (12) 3.2 量程转换 (12) 3.3 BCD转换 (12) 3.4 LCD显示…………………………………………………

(12) 第4节结束语 (13) 参考文献 (14) 附录汇编源程序代码 (15) 基于51单片机的数字频率计 第1节引言 本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1.1数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz—10kHz的正弦波、方波、三角波,时基

等精度频率计的实验报告

数字频率计 摘要 以FPGA(EP2C8Q208C8N)为控制核心设计数字频率计,设计采用硬件描述语言Verilog 该作品主要包括FPGA控制、数码管模块、信号发生器、直流电源模块、独立按键、指示灯模块。主要由直流电源供电、数字信号发生器输出信号,FPGA 控制信号的采集、处理、输出,数码管显示数据,按键切换档位,指示灯显示档位。作品实现了测频、测周、测占空比,能准确的测量频率在10Hz 到100kHz之间的信号。 关键字: 频率计等精度 FPGA (EP2C8Q208C8N)信号发生器Verilog语言

一、系统方案论证与比较 根据题目要求,系统分为以下几个模块,各模块的实现方案比较选择与确定如下: 1.主控器件比较与选择 方案一:采用FPGA(EP2C8Q208C8N)作为核心控制,FPGA具有丰富的I/O 口、内部逻辑和连线资源,采集信号速度快,运行速度快,能够显示大量的信息,分频方便。 方案二:采用SST89C51作为主控器件,虽然该款单片机较便宜,但运行速度较慢,不适合对速度有太大要求的场合,并且不带AD,增加了外围电路。 综上所述,主控器件我选择方案一。 2.测量方法的比较与选择 方案一:采用测频法测量。在闸门时间内对时钟信号和被测信号同时计数,由于在闸门闭合的时候闸门时间不能是被测信号的整数倍,导致计数相差为一个被测信号时间,所以测频法只适合频率较高的测量。 方案二:采用测周法测量。用被测信号做闸门,在闸门信号内对时钟信号计数,由于在闸门闭合的时候闸门时间不能是时钟信号的整数倍,导致计数相差为一个时钟信号时间,所以测周法只适合较低频率的测量。 方案三:采用等精度法和测周法结合的方法。用等精度发测量1KHZ以上的频率,测周法测量1KHZ一下的频率。这种方法取长补短,既能准确的测高频又能测低频。 综上所述,测量方法我选用方案三。 3. 界面显示方案的选择 方案一:采用数码管显示,控制程序简单,价格便宜,显示直观。 方案二:液晶5110,虽然体积小,可以显示各种文字,字符和图案。 考虑到数码管完全可以满足数据显示要求,所以显示部分我选用方案一。 二、理论分析与计算 1、键盘设计 系统中我们采用独立键盘,用2个I/O控制2个键。原理是将2个I/O口直接接键盘的2个引脚,低电平有效,这种键盘的优点反应的速率快。 2、计算公式 (1)测频: 1khz以上:被测频率=时钟频率*(被测频率计数/时钟频率计数) 1khz以下:被测频率=时钟频率/(时钟频率在被测信号高电平计数+时钟频率在被测信号低电平计数)

基于51单片机的数字频率计_毕业设计

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。 学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据 库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期:

基于AT89C52单片机的简易频率计设计说明书

单片机系统开发与应用工程实习报告 选题名称:基于AT89C52单片机的简易频率计设计 系(院): 专业:计) 班级: 姓名:学号: 指导教师: 学年学期: 2009 ~ 2010 学年第 2 学期 2010 年 5 月 30 日

摘要: 在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了以AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。本项目利用单片机的内部定时器溢出产生中断来实现定时,把单片机内部的定时/计数器0作为定时器,实现2.5ms定时。外部待测脉冲从单片机的TI(第15引脚)输入,以定时/计数器1作为计数器,利用中断方式来达到间接测量的目的。最后采用四位数码管显示。本设计采用C语言进行软件编程,用keil软件进行调试。最后把调试成功后的程序固化到AT89C52单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。 关键词:单片机;频率计;AT89C52

目录 1 项目综述 (1) 1.1 设计要求 (1) 1.2 系统设计 (1) 2硬件设计 (2) 2.1 电路原理图 (2) 2.2 元件清单 (2) 2.3 主要芯片引脚说明 (3) 3 软件设计 (4) 3.1 程序流程图 (4) 3.2 软件设计简述 (5) 3.3 程序清单 (6) 4 系统仿真及调试 (10) 4.1 硬件调试 (10) 4.2 软件调试 (10) 5 结果分析 (10) 总结 (11) 参考文献 (12)

等精度数字频率计的设计

等精度数字频率计的设计 李艳秋 摘要 基于传统测频原理的频率计的测量精度将随着被测信号频率的下降而降低,在实用中有很大的局限性,而等精度频率计不但有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。运用等精度测量原理,结合单片机技术设计了一种数字频率计,由于采用了屏蔽驱动电路及数字均值滤波等技术措施,因而能在较宽定的频率范围和幅度范围内对频率,周期,脉宽,占空比等参数进行测量,并可通过调整闸门时间预置测量精度。选取的这种综合测量法作为数字频率计的测量算法,提出了基于FPGA 的数字频率计的设计方案。给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。 关键词等精度测量,单片机,频率计,闸门时间,FPGA Ⅱ

ABSTRACT Along with is measured based on the traditional frequency measurement principle frequency meter measuring accuracy the signalling frequency the drop but to reduce, in is practical has the very big limitation, but and so on the precision frequency meter not only has teaches the high measuring accuracy, moreover maintains the constant test precision in the entire frequency measurement region. Using and so on the precision survey principle, unified the monolithic integrated circuit technical design one kind of numeral frequency meter, because has used the shield actuation electric circuit and technical measure and so on digital average value filter, thus could in compared in the frequency range and the scope scope which the width decided to the frequency, the cycle, the pulse width, occupied parameter and so on spatial ratio carries on the survey, and might through the adjustment strobe time initialization measuring accuracy. Selection this kind of synthesis measured the mensuration took the digital frequency meter the survey algorithm, proposed based on the FPGA digital frequency meter design proposal. Has produced this design proposal actual survey effect, proved this design proposal is practical and feasible, can achieve the high frequency measurement precision Keywords Precision survey, microcontroller, frequency meter, strobe time,field programmable gate array Ⅱ

基于单片机的频率计的设计

摘要 本方案主要以单片机为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分,设计以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。 本设计以89C51单片机为核心,应用单片机的算术运算和控制功能并采用LED数码显示管将所测频率显示出来。系统简单可靠、操作简易,能基本满足一般情况下的需要。既保证了系统的测频精度,又使系统具有较好的实时性。本频率计设计简洁,便于携带,扩展能力强,适用范围广。 关键词:单片机,运算,频率计,LED数码管

Abstract The 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 the 89C51 microcontroller 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单片机的简易频率计设计lsy

毕业设计 题目:基于51单片机的简易频率计设计专业: 班级: 姓名:学号: 指导老师:

目录 第1节引言 (2) 1.1频率计概述 (2) 1.2频率度量仪的设计思路与频率的计算 (2) 1.3基本设计原理 (3) 第2节频率计(低频)的硬件结构设计 (4) 2.1系统硬件的构成 (4) 2.2系统工作原理图 (4) 2.3AT89C51单片机及其引脚说明 (5) 2.4信号调理及放大整形模块 (7) 2.5时基信号产生电路 (7) 2.6显示模块 (8) 第3节软件设计 (12) 3.1 定时计数 (12) 3.2 量程转换 (12) 3.3 BCD转换 (12) 3.4 LCD显示 (12) 第4节结束语 (13) 参考文献 (14)

摘要 我的这个毕业作品简易频率计开发目的是要把上课中学到的专业知识与一些实践,提高我自己的能力水平。用这些方法让我自己有更好的思维逻辑,可以做出更好的设计,活学活用把知识变成现实。在我的毕业设计中通过自己的发觉、老师的帮助、同学之间的讨论,最后要通过科学的方法来排除设计过程中的坎坷,提高自己能够快速判断问题故障、排除问题、修复问题,积累各方面的开发设计系统的经验,充分发挥出教学与实践的结合。全面提高自身对系统开发的综合能力,开拓设计思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 关键字:单片机、开发、开拓思维 Abstract My graduate work that the aim is to develop secondary school knowledge, as well as read the relevant literature to strengthen the capacity of my own self. I have a guide through the efforts of innovative thinking ideas, the classroom teacher to impart knowledge to our daily lives. Design aspects of my work, the continuous learning, thinking and interactive discussion between the students learn from each other, analyze problems using scientific methods to solve the difficulties encountered, master SCM system design and development related to the production process, allow yourself to understand that for treatment of common problems, the accumulation of experience in all aspects of the development and design of the system, give full play to the combination of teaching and practice. Comprehensively improve their overall capacity of the system development, development of design thinking for the future work on the corresponding work has laid a solid foundation. Keywords: SCM, development, pioneering thinking

相关主题
文本预览
相关文档 最新文档