基于Protues数字频率计的设计与仿真
基于Proteus的测频仪设计与仿真

基于Proteus的测频仪设计与仿真苏神保【摘要】在电子线路测试中,常常会用到万用表、示波器、测频仪等测试工具。
本文根据数字电子技术中的计数译码等原理,引入Proteus仿真软件,探讨基于该软件的简易测频仪的设计,并在仿真环境下对该设计进行验证。
%In the test of electronic circuit, multimeter, oscilloscope and frequency measuring instrument are often used . This paper discussed the design of simple frequency measuring instrument based on the Proteus simulation software according to the principle of counting and decoding from digital electronic technology. And the design is verified in simulation environment.【期刊名称】《仪器仪表用户》【年(卷),期】2016(023)007【总页数】3页(P24-25,61)【关键词】Proteus;NE555;CD40110;测频仪【作者】苏神保【作者单位】湖南商务职业技术学院,长沙 410205【正文语种】中文测频仪是用数字显示被测信号频率的一种基本测量仪器。
被测信号一般有正弦波、方波、三角波等信号;频率指的是单位时间内完成周期性变化的次数,该处的单位时间表示的就是1s,为了测量该参数,有必要引入秒脉冲发生器。
在本设计中,该秒脉冲发生器采用数字电子技术中的由NE555组成的单稳态触发电路,然后将该秒脉冲信号与待测信号在门电路中进行混合并送入计数译码器CD40110中,最后将译码结果显示出来。
具体设计思路如图1所示。
#基于PROTEUS仿真的频率计数器(顾加柱)改

南京大学金陵学院毕业论文(设计)作者: 顾加柱学号:2009020200014系部: 信息工程学院专业: 电子信息科学和技术题目: 基于Proteus仿真的频率计数器指导老师张益男(职称/学位):讲师提交日期摘要传统的频率计数器由组合电路和时序电路等大量的硬件电路组成。
我们知道这种开发费时费力且成本高昂,所以本文以频率计数器为研究对象,利用Proteus强大的微机处理器仿真功能,结合Keil编译器,给出了简易且容易操作的频率计数器的设计方案并完成仿真测试。
本文设计了一种以单片机AT89C51为核心的数字频率计数器,其中硬件部分主要是由整形电路、单片机最小系统和显示单元组成的,软件设计是由一些功能模块来实现的,例如有初始化模块、晶振模块、数据显示模块以及复位模块等等。
这种方法很好地弥补了传统开发模式的各种缺点。
该频率计数器由6位数码管显示器和单片机AT89C51,以及信号时钟发生器等构成,可测量频率范围为1Hz到100KHz之间。
关键词:频率计数器; PROTEUS仿真;单片机; 1~100kHzABSTRACTTraditional frequency counter by combinational circuits and sequential circuits, etc.A lot of hardware circuit. We know that this development laborious and costly, so based on the frequency counter as the research object, the use of Proteus powerful microcomputer processor simulation, combining with Keil compiler, presents a simple and easy to operate the frequency counter design and complete the simulation test. In this paper, we design a microcontroller AT89C51 as the core of the digital frequency counter, the hardware part mainly by shaping circuit, single chip microcomputer minimum system and display units, the software design is composed of some functional modules, such as initialization module, crystal vibration module, data display module as well as the reset module and so on. This method is good enough to make up the flaws of the traditional development mode. The frequency counter by the LCD display and a single chip microcomputer AT89C51, and clock signal generator, the measured frequency range between 1 HZ and 100 KHZ.Key words:Frequency counter;PROTEUS simulation and single-chip microcomputer;1~ 100KHZ目录摘要 (1)ABSTRACT .................................................................................................... 错误!未定义书签。
数字频率计的课设报告以及仿真电路

河北联合大学2011级本科课程设计简易数字频率计的设计姓名: 张如林学号: 201114050113班级: 11电气1班2013年12月18摘要 (1)一,概述 (2)二,方案设计 (2)1.设计题目 (2)2.设计任务和要求 (2)3.程序设计思路 (2)三,单元电路设计与Multisim仿真分析 (3)1.1Hz时基电路 (4)2.六进制计数器门控电路 (4)3.NE555施密特整形电路 (7)4.计数、锁存、驱动、显示电路 (7)5.整体仿真电路 (7)四,总原理图及元器件清单 (8)1.总原理图 (8)2.元器件清单 (9)五.结论 (10)六.心得体会 (10)七.参考文献 (11)八.附录 (12)在数字电路中,数字频率计属于时序电路,它主要由具有记忆功能的触发器构成。
在计算机及各种数字仪表中,都得到了广泛的应用。
在CMOS电路系列产品中,数字频率计是用量最大、品种很多的产品,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,并且与许多电参量的测量方案、测量结果都有十分密切的关系,在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
常用的频率测量方法有测频法、测周法、测周期/频率法、F/V与A/D法。
1一、概述频率是周期信号每秒钟内所含的周期数值。
输入电路:由于输入的信号可以是正弦波,方波。
而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。
在整形之前由于不清楚被测信号的强弱的情况。
所以在通过整形之前通过放大衰减处理。
当输入信号电压幅度较大时,通过输入衰减电路将电压幅度降低。
当输入信号电压幅度较小时,前级输入衰减为零时若不能驱动后面的整形电路,则调节输入放大的增益时,被测信号得以放大。
等精度频率计PROTUSE仿真

等精度频率计一:系统设计要求等精度频率计可以精测量,同时通过4位LED 数码管频率。
最小显示频率率为0.001,测量误差为 0.0002。
二:系统结构框图三:单元硬件设计说明(1)LED 显示电路:LED 显示电路采用7SEG-MPX4-CC 显示模块和八个上拉电阻组成。
单片机 AT89C51LED 显示时钟电路复位电路信号发生器显示数字的数量级(2)时钟电路:时钟电路由一个12M晶振,和两个3pF电容组成,产生12M赫兹的方波脉冲信号做为单片机的内部时钟(3)复位电路(4)信号发生器(5)显示选择器,用来指明当前频率选择的数量级单位。
四:软件设计与说明(包括在Protuse中的电路图)(1)连接完毕的电路图(2)主程序流程路复位电路:复位电路由一个1uF的电容和一个10K的电阻组成是毫秒级子程序(3)运行中的电路5: 程序代码//#include <at89x52.h>#include <reg51.h>#include <stdio.h>#define uint unsigned intsbit p20=P2^0;sbit p21=P2^1;sbit p22=P2^2;sbit p23=P2^3;sbit Q0=P2^4;sbit Q1=P2^5;sbit Q2=P2^6;sbit Q3=P2^7;sbit LED1=P0^1;sbit LED2=P0^2;sbit LED3=P0^3;uint t=0,number=0,count=0,k,a,b,c,d;float f=0.0,h=0.0,m=0.0;char table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};void delay_ms(uint ms) //延时毫秒级子程序{uint i,j;for(i=0;i<ms;i++){ for(j=0;j<125;j++);}}void display0_ms(uint n){if(n==3 || n==2 || n==1 || n==0){number=f/(10^n);if(n==0)P1=table[number] & 0x7f;elseP1=table[number];p20=1;delay_ms(5);p20=0;}if(n==3 || n==2 || n==1){number=(uint)f%(10^n)/(10^(n-1));if(n==1)P1=table[number] & 0x7f;elseP1=table[number];p21=1;delay_ms(5);p21=0;}if(n==3 || n==2){number=(uint)f%(10^(n-1))/(10^(n-2));if(n==2)P1=table[number] & 0x7f;P1=table[number];p22=1;delay_ms(5);p22=0;}if(n==3){number=(uint)f%10;P1=table[number];p23=1;delay_ms(5);p23=0;}}void display1_khz(uint n){if(n==3 || n==2 || n==1 || n==0) {number=h/(10^n);if(n==0)P1=table[number] & 0x7f;elseP1=table[number];p20=1;delay_ms(5);p20=0;}if(n==3 || n==2 || n==1){number=(uint)h%(10^n)/(10^(n-1)); if(n==1)P1=table[number] & 0x7f;elseP1=table[number];p21=1;delay_ms(5);}if(n==3 || n==2){number=(uint)h%(10^(n-1))/(10^(n-2)); if(n==2)P1=table[number] & 0x7f;elseP1=table[number];p22=1;delay_ms(5);p22=0;}if(n==3){number=(uint)f%10;P1=table[number];p23=1;delay_ms(5);p23=0;}}void display2_mhz(uint n){if(n==3 || n==2 || n==1 || n==0){number=m/(10^n);if(n==0)P1=table[number] & 0x7f;elseP1=table[number];p20=1;delay_ms(5);p20=0;}if(n==3 || n==2 || n==1){number=(uint)h%(10^n)/(10^(n-1));if(n==1)P1=table[number] & 0x7f;elseP1=table[number];p21=1;delay_ms(5);p21=0;}if(n==3 || n==2){number=(uint)h%(10^(n-1))/(10^(n-2)); if(n==2)P1=table[number] & 0x7f;elseP1=table[number];p22=1;delay_ms(5);p22=0;}if(n==3){number=(uint)f%10;P1=table[number];p23=1;delay_ms(5);p23=0;}}void display3_ms(){LED1=0;LED2=1;LED3=1;f=(1.0/k)*1000;if(f==1000)display0_ms(3);else if(f>=100 && f<1000 ) {display0_ms(2);P1=table[(uint)(f*10)%10]; p23=1;delay_ms(5);p23=0;}else if(f>=10 && f<100){display0_ms(1);P1=table[(uint)(f*10)%10]; p22=1;delay_ms(5);p22=0;P1=table[(uint)(f*100)%10]; p23=1;delay_ms(5);p23=0;}else if(f>1 && f<10){display0_ms(0);P1=table[(uint)(f*10)%10]; p21=1;delay_ms(5);p21=0;P1=table[(uint)(f*100)%10]; p22=1;delay_ms(5);p22=0;P1=table[(uint)(f*1000)%10]; p23=1;delay_ms(5);p23=0;}}void display4_khz(){LED1=1;LED2=0;LED3=1;h=k/1000.0;if(h==1000)display1_khz(3);else if(h>=100 && h<1000 ) {display1_khz(2);P1=table[(uint)(h*10)%10];p23=1;delay_ms(5);p23=0;}else if(h>=10 && h<100) {display1_khz(1);P1=table[(uint)(h*10)%10];p22=1;delay_ms(5);p22=0;P1=table[(uint)(h*100)%10]; p23=1;delay_ms(5);p23=0;}else if(h>=1 && h<10) {display1_khz(0);P1=table[(uint)(h*10)%10];p21=1;delay_ms(5);p21=0;P1=table[(uint)(h*100)%10];p22=1;delay_ms(5);p22=0;P1=table[(uint)(h*1000)%10];p23=1;delay_ms(5);p23=0;}}void display5_mhz(){LED1=1;LED2=1;LED3=0;m=k/1000000.0;if(m>=1 && m<10){display2_mhz(0);P1=table[(uint)(m*10)%10];p21=1;delay_ms(5);p21=0;P1=table[(uint)(m*100)%10]; p22=1;delay_ms(5);p22=0;P1=table[(uint)(m*1000)%10]; p23=1;delay_ms(5);p23=0;}else if(m==10){display2_mhz(1);P1=table[0];p22=1;delay_ms(5);p22=0;P1=table[0];p23=1;delay_ms(5);p23=0;}}void timer0() interrupt 1 using 0 {TH0=0X3C;TL0=0XBF;if(t==20){t=0;a=Q0;b=Q1;c=Q2;d=Q3;k=count*16+d*8+c*4+b*2+a;EA=0;ET0=0;EA=1;ET0=1;TR0=1;count=0;}t++;}void int1() interrupt 2{count++;}void main(){TMOD=0X21;TH0=0X3C; /* 计数初值写入TH0 */TL0=0XBF; /* 写入计数初值到TL0 */ET0=1; /* 定时器0中断允许*/EA=1; /* 全局中断允许*/TF0=0; /* 定时器0中断标志位清0 */ TR0=1; /* 定时器0准备开始*/EX1=1;IT1=1;while(1){if(k>=1 && k<1000)display3_ms();else if(k>=1000 && k<1000000)display4_khz();else if(k>=1000000 && k<=10000000)display5_mhz();}}。
基于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;}}}。
基于单片机和测频法的频率计设计及proteus仿真

基于单片机和测频法的频率计设计及proteus仿真作者:李建波张永亮潘必超陈榕福来源:《电脑知识与技术》2018年第35期摘要:传感器广泛应用在自动化测量中,该文利用51单片机2个16位定时器和测量频率中的测频法设计了测量方波的频率计,并用LCD1602液晶显示频率、proteus仿真,测试结果表明设计思路正确、误差小。
关键词:单片机;测频法;频率计;proteus中图分类号:TP23;TP212.6 文献标识码:A 文章编号:1009-3044(2018)35-0226-021 概述传感器能感受到被测量信息,在自动化控制技术中,需要用到多种传感器来监视各个参数。
因测量电压、电流、频率等的方法与技术相对成熟、易实现,故而许多传感器把被测量对象转换成电压、电流或频率来进行测量和处理[1]。
广东工业大学鲍芳采用高频段测频法、中频段多周期同步法、低频段测周法设计频率计,测量结果优于普通测量法[2];南昌大学彭岚峰利用单片机产生闸门的时间设计频率计,并利用液晶LCD1602进行显示[3];青海大学任小青介绍了测周期法、外部计数器计数法、内部计数器计数法等频率测试方法并完成以单片机为核心的频率计[4];西安职业技术学院赵银玲设计的频率计,结合了定时器、计数器并用数码管显示,结果显示满足一般领域的测试要求[5];成都理工大学张粮雨设计的频率计可以计算出正弦波的有效值和峰峰值[6];延安大学刘竹琴设计了数字频率计,进行测量,并分析了测量误差的来源,提出了减小误差应采取的措施[7];广州番禺职业技术学院卢飞跃实现多周期同步法测量频率,提高了测量的精度[8]。
单片机16位定时器计数最大值为65536,比较适用测量65KHz以下频率,再大频率则溢出不准、或需要定时器中断来计数。
本人参考前人研究和设计,利用单片机中2个16位定时器设计频率计,其中1个用于定时、另外1个采集外界脉冲,得到单位时间的脉冲个数,进而计算出频率,可测量500KHz的频率信号。
频率计的设计报告(含详细原理-流程图-c语言程序-proteus图等)

学校名称:合肥工业大学队员姓名:田中贺,汤旭,梁植程,黄传帮,杨骜,刘伟,王佩,徐国瑞,周冀,王槐铭,贾根发,陈明,林仁斌,张卫强2012年7月10日基于52单片机的频率计摘要:以ATMEL单片机为核心,利用单片机的外部中断、定时器的计数模式和定时器的功能对信号发生器产生的脉冲频率进行计数。
且可以根据频率的不同,单片机控制选择测周法或者测频法对产生的脉冲波形进行计数,以进行更加精确的频率测量。
而且可以通过按键来进行频率测量方法的选择。
关键字:AT89s52,外部中断、定时器的计数模式和定时器,测周法、测频法.设计题目及要求:(1):被测频率fx小于110Hz采用测周法,显示频率XXX。
XXX;fx大于110Hz采用测频法,显示频率XXXXXX;(2):可利用键盘分段测量和自动分段测量;(3):可完成单脉冲测量,输入脉冲宽度范围是100微秒--0.1秒;(4):自由发挥其他功能。
(5):要求有单片机硬件系统框图,电路原理图,软件流程图1基本设计原理运用单片机TO,T1计数功能来完成对输入信号的计数。
其T1为计数器,T1为计时器.为T1装入初值19466,定时300ms,重复20次即为1s,与此同时将同时计数的T0里的值取出,即为该频率信号1s的频率示数2系统主要功能利用单片机的T0,T1计数定时器功能,来完成对输入信号进行率计数,计数结果通过8位动态数码管显示出来,。
特点1,由开关控制启动。
特点2,可利用键盘分段测量和自动分段测量;特点3,可以多次测量,自动刷新 1s一次。
特点4,使用溢出标志T0count,防止20ms内计数超过65536次的频率信号溢出造成的示数错误3.系统原理框图:二频率计的硬件结构设计1单元电路(1)单片机电路:(2)矩阵键盘(3)数码管显示(4)排阻(用于提高P0口电位)(5)模拟的信号发生器:原理选择AT89S52单片机芯片,选用两位8段共阴极LED数码管实现频率显示,利用8279作I/O口扩展,连接数码管。
基于Protues数字频率计的设计与仿真

基于Proteus的数字频率计设计与仿真摘要:本文主要论述了利用单片机AT89C51进行频率、周期、时间间隔、占空比测量的设计过程。
该频率计采用测量N个信号波形周期的算法,充分利用单片机AT89C51中三个可编程定时/计数器,结合部分中规模数字电路,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点,实现了频率、周期、时间差、占空比的高精度测量,结果的显示。
该数字频率计的硬件系统电路由前置整形电路、分频电路、基准信号源、单片机电路和数字显示电路构成。
其中单片机电路又由单片机、数据选择器、键盘、状态指示电路构成。
软件系统由主程序、键盘子程序、显示子程序、测量子程序、脉冲高、低电平宽度测量子程序构成,由汇编语言编写。
通过硬件系统和软件系统的相互配合,成功的实现了频率、周期、时间差、占空比的高精度测量,系统的自校和测量结果的显示。
关键词:数字频率计;周期;单片机Digital Frequency Measure Design and Simulation Based on ProteusAbstract:This article mainly discusses the design process of us ing single-chip AT89C51to measure frequency, cycle, time interval and duty cycle. U s ing the algorithm of measur ing N signal cycle, mak ing full use of the three programmable timer / counter of single-chip AT89C51, combined with some digital circuits, t he frequency meter overcome s the shortcomings of the measurement accuracy reduces with the reduction of the frequency of the measured signal by t he frequency meter based on the principle of traditional measurement of frequency , achieves high-precision measurements of the frequency, cycle, time difference and duty cycle, displays the results. The hardware system circuit s of the digital frequency meter is made up of the pre-shaping circuit, sub-frequency circuit, reference signal source, single-chip circuit, digital display circuit and DC power supply regulator circuit. Of it, the s ingle-chip circuit consists of single-chip, data selector and keyboards. The s oftware system is made up of main program, keyboard s ubroutine, display subroutine, measurement subroutine, pulse high and low level width measurement subroutine, prepared by the assembly language. T hrough the cooperat ion with each other of the h ardware system and software system,t he frequency meter successfully achieves high-precision measurements of frequency,cycle, time difference, and duty cycle, finishes s ystem calibration and the display of measurement results.Keywords:d igital frequency meter;cycle; single-chip1绪论·1.1课题研究的意义随着科学技术的发展,尤其是单片机技术和半导体技术的高速发展,频率计的研究及应用越来越受到重视,这样对频率测量设备的要求也越来越高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Proteus的数字频率计设计与仿真摘要:本文主要论述了利用单片机AT89C51进行频率、周期、时间间隔、占空比测量的设计过程。
该频率计采用测量N个信号波形周期的算法,充分利用单片机AT89C51中三个可编程定时/计数器,结合部分中规模数字电路,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点,实现了频率、周期、时间差、占空比的高精度测量,结果的显示。
该数字频率计的硬件系统电路由前置整形电路、分频电路、基准信号源、单片机电路和数字显示电路构成。
其中单片机电路又由单片机、数据选择器、键盘、状态指示电路构成。
软件系统由主程序、键盘子程序、显示子程序、测量子程序、脉冲高、低电平宽度测量子程序构成,由汇编语言编写。
通过硬件系统和软件系统的相互配合,成功的实现了频率、周期、时间差、占空比的高精度测量,系统的自校和测量结果的显示。
关键词:数字频率计;周期;单片机Digital Frequency Measure Design and Simulation Based on ProteusAbstract:This article mainly discusses the design process of us ing single-chip AT89C51to measure frequency, cycle, time interval and duty cycle. U s ing the algorithm of measur ing N signal cycle, mak ing full use of the three programmable timer / counter of single-chip AT89C51, combined with some digital circuits, t he frequency meter overcome s the shortcomings of the measurement accuracy reduces with the reduction of the frequency of the measured signal by t he frequency meter based on the principle of traditional measurement of frequency , achieves high-precision measurements of the frequency, cycle, time difference and duty cycle, displays the results. The hardware system circuit s of the digital frequency meter is made up of the pre-shaping circuit, sub-frequency circuit, reference signal source, single-chip circuit, digital display circuit and DC power supply regulator circuit. Of it, the s ingle-chip circuit consists of single-chip, data selector and keyboards. The s oftware system is made up of main program, keyboard s ubroutine, display subroutine, measurement subroutine, pulse high and low level width measurement subroutine, prepared by the assembly language. T hrough the cooperat ion with each other of the h ardware system and software system,t he frequency meter successfully achieves high-precision measurements of frequency,cycle, time difference, and duty cycle, finishes s ystem calibration and the display of measurement results.Keywords:d igital frequency meter;cycle; single-chip1绪论·1.1课题研究的意义随着科学技术的发展,尤其是单片机技术和半导体技术的高速发展,频率计的研究及应用越来越受到重视,这样对频率测量设备的要求也越来越高。
目前的微处理器芯片发展迅速,出现诸如DSP、FPJA等不同领域的应用芯片。
而单片机是一门发展极快,应用方式极其灵活的使用技术。
它以灵活的设计、微小的功耗、低廉的成本,在数据采集、过程控制、模糊控制、智能仪表等领域得到广泛的应用,极大的提高了这些领域的技术水平和自动化程度。
51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。
51系列及其衍生单片机还会在继后很长一段时间占据嵌入式系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。
本次课程设计的内容是使用AT89C51单片机最小系统设计频率计系统,系统以单片机为主控单元,主要用于对方波频率的测量。
·1.2 频率计研究的现状及发展趋势频率计是一种基础测量仪器,到目前为止已有30多年的发展历史。
传统的数字频率计可以通过普通的硬件电路组合来实现,其开发过程、调试过程十分繁琐,而且由于电子器件之间的互相干扰,从而影响频率计的精度,同时由于其体积较大,已经不适应电子设计的发展要求。
随着科学技术的发展,频率计也日益发展。
目前已经有操作方便、量程(足够)宽、可靠性高的频率计;也有适应高分辨率、高精度、高稳定度、高测量速度的频率计。
除通常通用频率计所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等功能等其他功能。
这些要求有的已经实现或者部分实现,但要真正完美的实现这些目标,对于科学工作者来说,还有许多工作要做,而不是表面看来似乎发展到头了。
早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量频率计的技术水平,决定频率计价格高低的主要依据。
目前这些基本技术日臻完善、成熟。
应用现代技术可以轻松地将频率计的测频上限扩展到微波频段。
在测试通讯、微波器件或产品是,常常需要测量频率,通常这些都是较复杂的信号,如含有复杂频率成分、调试的或含有未知频率分量的、频率固定的或者变化的、纯净的或叠加有干扰的等等。
为了能正确的测量不同类型的信号,必须了解待测量信号的特性和各种频率测量仪器的性能。
需要根据其附加特性或价格来慎重选择。
2方案设计与论证·2.1设计原理测量方法通常有三种:直接测量法、间接测量法、直接与间接测量结合法。
·这种方法的测量原理是:由于频率是单位时间内信号发生周期变化的次数,使得我们可以在给定的单位时间1S内(称为闸门)对被测信号的脉冲数计数,得到的脉冲个数就是被测信号的频率。
如图2-1:图2-1 直接测量法·这种方法的原理是用被测信号的周期作为闸门,在该闸门时间内允许已知标准的短周期间隔的较高频率的信号通过,通过数字电路或微型计算机的运算,通过闸门的已知信号频率的个数越多,其被测频率就越低。
如图2-2:图2-2 间接测量法本设计中采用第一种设计方案,方法二中由于时间的未知,采用单片测量时会增加软件设计的难度,故采用方案一。
·3硬件设计·3.1整体方案框图及原理图本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有以下几个模块:放大整形模块、时钟脉冲产生模块、按键模块、单片机系统、LED显示模块。
各模块关系图如图3-1所示:图3-1 关系模块图采用protues绘制的原理图如图3-2所示:图3-2 原理图3.2 AT89C51单片机及其引脚说明:89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。
引脚说明:•VCC:电源电压•GND:地•P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
•P1口:P1口是一带有内部上拉电阻的8位双向I/O口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
•P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。
P2口的输出缓冲能驱动4个TTL 逻辑门电路。
当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @DPTR)时,P2口送出高8位地址数据。
在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。
当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。
当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。
•P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。
P3口的输出缓冲能驱动4个TTL 逻辑门电路。
当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。