基于89C51的等精度频率计LCD1602显示.doc

上传人:枫** 文档编号:544719331 上传时间:2023-10-19 格式:DOC 页数:10 大小:127KB
返回 下载 相关 举报
基于89C51的等精度频率计LCD1602显示.doc_第1页
第1页 / 共10页
基于89C51的等精度频率计LCD1602显示.doc_第2页
第2页 / 共10页
基于89C51的等精度频率计LCD1602显示.doc_第3页
第3页 / 共10页
基于89C51的等精度频率计LCD1602显示.doc_第4页
第4页 / 共10页
基于89C51的等精度频率计LCD1602显示.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于89C51的等精度频率计LCD1602显示.doc》由会员分享,可在线阅读,更多相关《基于89C51的等精度频率计LCD1602显示.doc(10页珍藏版)》请在金锄头文库上搜索。

1、简易频率计制作学 院: 信电学院班 级: 0816班学生姓名:陈 杨 04081843王忠超 04081843齐俊斌 04081843时间: 从2010年 5月 10日 到 2010年 5 月 15 日等精度频率计的设计一 摘要:本设计是基于AT89C52单片机频率计入信号为峰峰值5v的正弦信号,频率测量范围10HZ100MHZ ,频率测量精度为0.1%。采用1602液晶显示器显示测量结果。信号源由PROTEUS 的虚拟信号发生器产生。二 关键词: 频率计 等精度 单片机 分频三 设计原理与总体方案:测量一个信号的频率有两种方法:第一种是计数法,用基准信号去测量被测信号的高电平持续的时间,然后

2、转换成被测信号的频率。第二种是计时法,计算在基准信号高电平期间通过的被测信号个数。根据设计要求测量10HZ100MHZ的正弦信号,首先要将正弦信号通过过零比较转换成方波信号,然后变成测量方波信号。如果用第一种方法,当信号频率超过1KHZ的时候测量精度将超出测量极度要求,所以当被测信号的频率高于1KHZ的时候需要将被测信号进行分频处理。如果被测信号频率很高需要将被测信号进行多次分频直到达到设计的精度要求。根据设计要求用单片机的内部T0产生基准信号,由INTO输入被测信号,通过定时方式计算被测信号的高电平持续时间。通过单片机计算得出结果,最后有1062液晶显示器显示测量结果。等精度频率计的系统设计

3、框架如下图1所示。AT89C51液晶显示被测信号信号转换(过零比较)分频处理数据选择器图1 等精度频率计系统设计框图四 硬件设计:硬件电路主要分为信号转换电路、分频电路、数据选择电路、单片机系统和显示电路五部分。其总体电路图如图2所示。图2 总体电路图4.1 电平转换电路:要将正弦信号转换成方波信号可以用过零比较电路实现。正弦信号通过LM833N与零电平比较,电压大于零的时候输出LM833N的正电源+5V,电压小于零的时候输出负电源0V。具体电路如图3所示。图3信号转换电路4.2 分频电路:分频电路采用十进制的计数器74HC4017来分频,当被测信号脉冲个数达到10个时74HC4017产生溢出

4、,C0端输出频率为输入频率的1/10,达到十分频的作用。如果当频率很高是需要多次分频只需将多片74HC4017级联就可以了。74HC4017时序图如图4所示,系统分频电路如图5所示。图474HC4017时序图图5分频电路4.3数据选择电路:根据设计要求要根据计数脉冲个数来选择分频次数,可以用74151来选择分频次数,74151的选择控制信号有单片机的I/O口来控制。数据选择电路如图6所示。图6数据选择电路4.4单片机系统:单片机采用AT89C51,采用12MHZ的晶振频率。单片机的P3.2口接被处理后的被测信号,P0口接液晶显示器的数据输入端,ALE,RD,WR,P0.0,P0.1通过外接控制

5、电路接液晶显示器的控制端。单片机系统的电路如图7所示。图7单片机系统4.5显示电路:显示电路由1602组成,其电路如图8所示。图8显示电路五 软件设计:等精度频率计的软件设计主要由主程序、分频选择程序、液晶显示程序组成。5.1 等精度频率计的算法设计:根据设计要求频率范围是10HZ100MHZ,当频率为10HZ时,T=100000us,高电平为50000us,0.1%的误差为100us,由单片机产生的基准频率为1MHZ,T0=1us,最大误差为1us,计数个数为50000(方式1),满足设计要求。当频率增加到1KHZ时,产生的误差刚刚能达到设计要求,这时计数个数为500。当频率大于1KHZ时(

6、即计数个数小于500)就需要将被测频率分频后再测量,如当频率为10KHZ时,先计算计得的脉冲数等于50,小于了500,所以将10KHZ的信号10分频得到1KHZ,这时就满足要求了。最后得到的频率 f=其中n为计得的脉冲个数,i为分频的次数。5.2 主程序:主程序首先对系统环境初始化,设置分频选通信号P2=0x00,选通0通道。设置T0工作方式,采用硬件启动方式,GATE=1,当INT0和TR0同时为1时启动计时,计数方式为方式1(16位),TH0和TL0都置零。当外部中断INT0=1时等待,当外部中断为0时启动T0即TR0=1,当INT0一直为0时就等待,一旦INT0=1就启动计数同时等待,当

7、INT0为0时跳出并关闭T0即TR0=0。这样就计得高电平期间基准脉冲个数,当脉冲个数小于500时就选择10分频信号,即P2自加1,同时记录分频一次;如果分频后脉冲个数还小于500则再次分频,知道计数个数大于500。其示意图如图9所示,主程序流程图如图10所示。被测脉冲INT0基准脉冲T0等待启动T0,TR0=1启动计数停止计数,读出计数个数N个脉冲图9 计数工作示意图开始初始化数据选择信号系统初始化读出计数个数nn=500变换数据选择通道,计算分频次数iY显示结果N图10 主程序流程图5.3 程序清单:5.3.1主程序:#include#include#include#includesbit

8、 p32=P32;main() unsigned int period,k,j,i=0; float f,m; char buff30; init_LCD(); P2=0x00; while(1) TMOD=0X09; TH0=0; TL0=0; while(p32=1); TR0=1; while(p32=0); while(p32=1); TR0=0; period=TH0*256+TL0; while(period=500) /*判断是否分频及计算分频次数*/ P2+;i+;period=period*10; if(i=6)P2=0x00;break; k=pow(10,i); /* 1

9、0的i次方*/ f=(1000000.0/(2*period)*k; if(f1000) sprintf(buff,f=%5.2fHZ,f); else m=f/1000.0; sprintf(buff,f=%5.2fKHZ,m); lcdprintf(0,0,buff); 5.3.2显示子程序:#include 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,

10、0x00; /;日void delay() unsigned char i; for(i=0;i250;i+);void init_LCD() unsigned char i; WR_COM=0x38; /设置为8位数据总线,16*2,5*7点阵 for(i=0;i100;i+) delay(); WR_COM=0x01; /清屏幕 for(i=0;i50;i+) delay(); WR_COM=0x06; /光标移动,显示区不移动,读写操作后AC加1 for(i=0;i50;i+) delay(); WR_COM=0x0c; for(i=0;i50;i+) delay();/* /void

11、init_cgram() unsigned char i;/;设置自定义字符 WR_COM=0x40; for(i=0;i24;i+) WR_DAT=CGRAM_TABLEi; for(i=0;i1)y=1; WR_COM=(y*0x40+x)|0x80; delay(); delay(); while(*s!=0) WR_DAT=*s; s+; delay(); delay(); 六 调试:等精度频率计的调试比较简单,在电平转换前的输入端输入标准的正弦信号,把编译好的程序指定到Proteus中的单片机中。运行Proteus即可在显示器中观测到显示结果。当然我们在调试过程中也遇到了不少的困难。

12、首先我们用4017来作为十分频器,但是没有注意到4017是CMOS型的,而我们系统所用的是TTL电平,所以最后改用了74HC4017;在刚开始的时候当输入某个频率时输出显示为零,或者为负数,最后发现是输出的数据类型定义错了,因为最大要测量10MHZ的频率,所以要定义输出数据类型为long int型,否则输出将产生溢出显示负数。七 结束语:本设计所设计的频率计有有较高的精度,频率范围较高,有较强的实用价值。当然本设计只是基于各种理想的实验条件下得出的结论,设计当中不可避免的存在一些问题。例如在信号转换的电路中只是粗略的将正弦信号转换成方波信号,而没有对输出信号进行进一步的处理;在信号经过分频后也没有对信号进行处理,这将降低测量的精度。如果在以上两个地方加入相关的处理电路,系统的精度将得到进一步的提高。八 参考文献:【1】李群芳 肖看编著. 单片机原理、接口及应用-嵌入式系统技术基础. 北京. 清华大学出版社.2005【2】康华光主编. 电子技术基础-数字部分(第四版).北京. 高等教育出版社. 2000【3】康华光主编. 电子技术基础-模拟部分(第五版).北京. 高等教育出版社. 2006

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号