基于89C52数字频率计_第1页
基于89C52数字频率计_第2页
基于89C52数字频率计_第3页
基于89C52数字频率计_第4页
基于89C52数字频率计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、江南大学第四届电子设计竞赛设计并制作一台数字显示的简易频率计(A题)组员:马佶辰 郑学琴 吴蒙蒙2015年5月12日II摘 要 本设计提出了一种基于AT89C51单片机开发的数字频率测量仪的设计。系统以单片机AT89C51为核心,构成完备的测量系统。本系统以单片机为核心 通过 单片机内部定时计数器的门控时间,实现对频率的测量,当一个信号输入时,系统对其进行放大整形处理,输入到单片机进行测试从而显示出这个信号的频率大 小。可以对信号进行频率的精确测量,测频在0.1Hz至65kHZ。采用液晶LCD1602显示被测信号的频率。与传统的电路系统相比,其有处理速度快、稳定性高、性价比高、硬件结构简单的优

2、点。 关键词:AT89C52单片机,频率计,液晶显示AbstractThis design is proposed based on AT89C51 developed digital frequency meter design. AT89C51 microcontroller as the core system, constitute a complete measurement system. The single-chip microcontroller as the core by an internal timer counter gating time, realize the

3、 measurement of the frequency, when a signal is input, the system amplifies plastic processing, input to the microcontroller for testing in order to show the magnitude of the signal frequency. It can accurately measure the frequency of the signal, the measured frequency in 0.1Hz to 65kHz. LCD1602 wi

4、th LCD display frequency of the signal. Compared with the traditional circuit system, which has fast processing speed, high stability, high cost, simple hardware architecture advantages.Keywords: AT89C52 microcontroller, frequency meter, LCD目 录1前言32总体方案设计32.1方案比较32.2 方案论证42.3 方案选择43硬件电路设计53.1放大整形电路5

5、3.2单片机最小系统63.3液晶 LCD1602显示电路74软件设计84.1基本程序设计原理84.2 主程序流程图85性能测试及分析95.1 性能测试95.2 设计参数105.3 测试分析与心得体会10附录:源程序11设计并制作一台数字显示的简易频率计(A题)1前言频率计又称为电子计数器,是一种常用电子测量仪器。它的基本功能是测量信号的频率和周期,广泛应用于教学、科研、高精度仪器测量、工业控制等领域。运用51系列单片机设计频率计,并采用适当的算法取代传统电路,不仅能克服传统频率计结构复杂、稳定性差、精度不高的弊端, 而且频率计性能也将大幅提高。本次设计给出了一 种基于单片机(AT89C51)为

6、主控制芯片的频率计设计方案,不但切实可行,而且体积小、保密性强、设计简单、价格低廉、可测频带宽,大大降低了设计成本和实现复杂度。本设计主要由波形整形放大电路,单片机最小系统电路,LCD显示电路三大部分组成。测量对象可以是方波,正弦波,三角波。测量范围为0.1Hz-65kHz。2总体方案设计2.1方案比较方案一:本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机数据处理把测出的数据送到LCD显示电路显示。其原理框图如图2.1所示:信号放大电路信号整形单片机AT89S51电路LCD显示 电路图2.1 方案一原理框图方案二:本方案主要以数字器件为核心,主要分为时基电路,

7、逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。其原理框图如图2.2所示:逻辑控制电路时基电路放大整形电路闸门电路计数器锁存器译码显示器图2.2 方案二原理框图2.2 方案论证方案一:本方案主要以单片机为核心,被测信号先进入信号放大整形电路进行放大整形,把被测的正弦波或者三角波整形为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动测量,并把测出的频率数据送到LCD显示电路显示。方案二:本方案使用大量的数字器件,被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被侧信号的频率相同。同时时基电路提供标准时间基准信号,其

8、高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率Fx = NHz。逻辑控制电路的作用有两个:一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。2.3方案选择比较以上两种方案可以知道,方案一的核心是单片机,使用的元器件少,原理电路简单,调试简单,只要改变源程序即可完成对各个频段的频率进行精确测量。与方案一相比较方案二则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。如要测量高频的信号还需要加上分频电路,价格相对高了点。基于上

9、述比较,所以选择了方案一。3硬件电路设计3.1放大整形电路被测波形先进入由三极管9013和施密特触发器74LS14构成的放大整形电路。如图3.1所示,9013是一种NPN结构的三极管,集电极和发射极之间的最高电压25V,集电极和基极之间的最高电压为45V,发射极和基极之间的最高电压为5V,集电极的最高电流0.5A;三极管的最高耗散功率为0.625W,最高的结温为150,其特征频率为150MHz;放大倍数范围是40倍110倍;工作温度范围为-55+150;74LS14是一种双列直插式封装具有六反相器的施密特触发器,其工作的最高电源电压为7V,工作环境温度范围为070;三极管9013和施密特触发器

10、74LS14一起构成的放大整形电路能够有效的对方波、正弦波、矩形波、三角波等信号进行放大和整形,并且能够稳定的输出,具有较强的驱动能力,能够满足0.1Hz65kHz的频率范围要求。图3.1 放大整形电路原理图利用ISIS仿真软件,上面的信号代表的是输入信号,下面信号代表的是输出信号。当输入信号为正弦波时,可以得到如图3.2所示的方波输出信号。图3.2 信号整形后的波形3.2单片机最小系统单片机最小系统是能补足单片机工作的最简单电路,它由单片机、电源、晶体振荡器、复位电路等构成。它是本系统的处理单元也是控制单元,负责处理信号、外设的接口与控制,同时它也是所有软件的载体。本系统采用AT89C51是

11、美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含4KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,片内配置通用8位中央处理器(CPU)和Flash存储单元。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义。如图3.3所示:图3.3 单片机最小系统原理图3.

12、3液晶 LCD1602显示电路字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,本设计采用带背光蓝白1602显示屏。本设计中采用液晶LCD1602显示输入方波A的频率,其D0D7与单片机的P0端口连接,使能端E、RS分别与单片机P1.1、P1.0连接,此电路原理简单,电路连接方便,如图3.4所示。图3.4 液晶LCD1602显示电路原

13、理图综上所述,频率计总体电路如图3.5所示(注:数字标号的线端连线一致)。图3.5 总体原理图4软件设计4.1基本程序设计原理此次采用直接测量法来测量。要用到计数器1与定时器0,定时/计数器工作在方式1。TR1=1,EA=1才能启动计数器1,而计数器1是通过P3.5外部方波的下降沿开始触发的,定时器从0开始计时。当所测频率小于10Hz时,定时器0定时10s,计数器1在10s内计数,将所得结果除以10 就得到频率,在低频下(0.1Hz-10Hz)延长闸门时间,能得到更精确的频率。当所测的频率大于10Hz,定时器0定时1s,计数器1在1s内计数,从而计算得频率,在高频下缩短闸门时间,使其系统反应速

14、度更快,更具实用性。其中处理数据时,对其系统产生的误差进行了误差校正,在与标准信号发生仪一系列频率示数进行比较后,最终处理数据为b=(TH1*256+TL1)*0.9998,其中0.9998为校正系数,使其高频误差降至0.03%以下。4.2主程序流程图主程序流程图如图4.1所示。开始开定时器/计数器T0、T1是否到定时1S?读取计数器数据处理数据1602LCD显示是否大于10Hz?是否到定时10S?读取计数器数据处理数据否否是是是图4.1 程序流程框图5性能测试及分析5.1性能测试测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误。测试仪器:高精度信号发生仪测试结果(

15、数据):输入频率/Hz0.6925.3513.644.1149.6451.3测得频率/Hz0.75.41343148.9451输入频率/Hz766.7995.31393207130144102测得频率/Hz766.89951393207030144101输入频率/Hz5015621375558519986010815测得频率/Hz50146213755585199861108185.2设计参数测量信号:任意波幅度:0.7V5V;频率:0.1Hz65kHz测量误差:低频误差<1%,高频误差<0.03%;5.3测试分析与心得体会在低频段测量时,误差较大,测试频率越高,误差越小,在经过误

16、差校正后,高频段误差已经相当小了,由于整个程序使用的是直接测量法,所以也就不可避免出现低频测试误差较大的现象,在频率小于10Hz时,为了增大频率测试范围以及降低误差,我已经将闸门时间控制在10s了,好的一方面是测试频率已经降至0.1Hz,达到题目要求,也将精度精确到小数点后1位,坏的一方面是测试等待时间增加10倍,对于频率变化很快的方波不能进行实时测量,实用性不高,所以我只是在0.1Hz-10Hz采取延长闸门的这样一个折中的方法。我想到的解决准确测低频的方式还有:高频测频率,低频测周期法;等精度算法测量。无奈9天时间太短,我们小组对51单片机也是刚入手,编程调试程序就耗去一大半时间,所以搭电路

17、也是面包板和现成的最小系统板,经过这次比赛让我知道电子设计涉及面之广,我还有很多知识需要学习:画PCB电路图,众多芯片手册,实现功能的算法,外围电路的搭建等等。由于是第一次实践,设计中还有很多不够完美的地方,系统还有许多有待改进的地方。感谢这次比赛,让我们把理论应用到实践的机会,也感谢组员积极查资料,买元器件,能在我困难的时候伸出援手,谢谢。参考文献1邱关源.电路M. 高等教育出版社,2006.2阎石.数字电子技术基础M. 高等教育出版社,2006.3童诗白 花成英.模拟电子技术基础M. 高等教育出版社,2006.4郭天祥.新概念51单片机C语言教程M. 电子工业出版社,2009.5许维荧 郑

18、荣焕.Protues电子电路设计及仿真M. 电子工业出版社,2014.附录:源程序#include<reg52.h>#include<math.h>#define uchar unsigned char#define uint unsigned intuchar code table=" Frequence="uchar code table1=".Hz"sbit lcden=P11;/1602 en端口sbit lcdrs=P10;/1602 rs端口sbit fangbo1=P20;/产生方波用于测试sbit dula=P26

19、;sbit wela=P27;uchar num,flag;uchar numm=20,fw,fq,fb,fs,fg,fx,fa;uchar m=0;double b=0.0;uint c=0,a=0,d=0;void delay(uint z)/延时uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void delayms(uint z)/测试延时uint x;for(x=z;x>0;x-);void write_com(uchar com)/1602写命令lcdrs=0;P0=com;delay(5);lcden=1;delay(5);l

20、cden=0;void write_date(uchar date)/1602写数据lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void LCD_Write_Char(uchar x,uchar y,uchar dat)/1602显示一个字符if(y=0)write_com(0x80+x);else write_com(0xC0+x);write_date(dat);void LCD_Write_String(uchar x,uchar y,uchar *s)/1602显示一串字符while(*s)LCD_Write_Char(x,y,*

21、s);s+;x+; void LCD_init()/1602初始化dula=0;wela=0;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);void CT_init()/中断定时计数初始化TMOD=0x51;/计数器1,定时器0TH0=(65536-50000)/256;/50msTL0=(65536-50000)%256;/50msTH1=0;TL1=0;TR0=1;TR1=1;ET0=1;EA=1;void display()/显示函数a=b*10;fx=a%10+0x30;d=b*100;f

22、a=d%10+0x30;c=b;fw=c/10/10/10/10%10+0x30;fq=c/10/10/10%10+0x30;fb=c/10/10%10+0x30;fs=c/10%10+0x30;fg=c%10+0x30;LCD_Write_String(0,0,table);LCD_Write_Char(3,1,fw);LCD_Write_Char(4,1,fq);LCD_Write_Char(5,1,fb);LCD_Write_Char(6,1,fs);LCD_Write_Char(7,1,fg);LCD_Write_Char(8,1,table10);LCD_Write_Char(9,1,fx);LCD_Write_Char(10,1,fa);LCD_Write_Char(11,1,table11);LCD_Write_Char(12,1,table12);void displays()/测试显示函数a=b;fx=a%10+0x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论