基于单片机的频率计设计-毕业设计(共16页).doc

上传人:飞****2 文档编号:13565176 上传时间:2022-04-30 格式:DOC 页数:16 大小:87.50KB
返回 下载 相关 举报
基于单片机的频率计设计-毕业设计(共16页).doc_第1页
第1页 / 共16页
基于单片机的频率计设计-毕业设计(共16页).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《基于单片机的频率计设计-毕业设计(共16页).doc》由会员分享,可在线阅读,更多相关《基于单片机的频率计设计-毕业设计(共16页).doc(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上基于单片机的频率计设计前言频率计数器是测量信号频率的装置,也可以用来测量方波脉冲的脉宽。通常频率以数字形式直接显示出来,简便易读。即所谓的数字频率计频率测量对生产过程监控有很重要的作用,可以发现系统运行中的异常情况,以便迅速作出处理。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接采用基于单片机技术。而数字式频率计数器具有操作简单方便、响应速度快、体积小等一系列优点,可以及时准确地测量低频信号的频率。频率计最基本的工作原理为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频

2、率f=N/T。在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。主门的另外一个输入端为基电路产生的闸门脉冲。在闸门脉冲开启主门的期间,特定周期的窄脉冲才能通过主门,从而进入计数器进行计数,计数器的显示电路则用来显示被测信号的频率值,内部控制电路则用来完成各种测量功能之间的切换并实现测量设置。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于1秒。闸门时间越长,得到的频率值就越准确。数字频率计是数字电路中的一

3、个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)和功能越来越强大的单片机的广泛应用。数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号、方波信号、尖脉冲信号及其他各种单位时间内变化的物理量。在AT89C51单片机上实现的频率计,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进,还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。1 AT89C51介绍1.1 AT89C51介绍本频率计的设计

4、以AT89C51单片机为核心,频率测量电路选用89C51作为频率计的信号处理核心。89C51包含2个16 位定时/计数器、1个具有同步移位寄存器方式的串行输入/输出口和4K8 位片内FLASH 程序存储器。16位定时/ 计数器用于实现待测信号的频率测量或者待测信号的周期测量。同步移位寄存器方式的串行输入/输出口用于把测量结果送到显示电路。4K8 位片内FLASH 程序存储器用于放置系统软件。89C51与具有更大程序存储器的芯片管脚兼容,如:89C52(8K8 位)或89C55(32K8 位),为系统软件升级打下坚实的物质基础。利用它内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89

5、C51 内部具有2 个16 位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出中断要求的功能。在构成为定时器时,每个机器周期加1(使用12MHz 时钟时,每1us 加1),这样以机器周期为基准可以用来测量时间间隔。在构成为计数器时,在相应的外部引脚发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24 个振荡周期),所以最大计数速率为时钟频率1/24(使用12MHz时钟时,最大计数速率为500KHz)。定时/计数器的工作由相应的运行控制位TR控制,当TR置1,

6、定时/计数器开始计数;当TR 清0,停止计数。AT89C51管脚图如图1.1-1所示:图1.1-1 AT89C51管脚图1.2 显示器在单片机应用系统中,常用的显示器主要有LED和LCD。共阴级八段数码管图如图1.2-1和图1.2-2所示:图1.2-1 共阴极八段数码管图图1.2-2 共阴极八段数码管图2 系统设计2.1 测量方案测量方案有很多种,如频率测量,周期测量,脉宽测量,占空比测量等。2.1.1 频率测量频率测量采用直接测量法时,当待测信号频率较低时,误差较大。间接测量法在低频段的测量精度高,但高频段的误差较大。组合测频法在低频时采用直接测量周期法测信号周期,然后换算成频率。高频时采用

7、直接测频法,这种方法在一定程度上弥补了上述两种方法的不足,但是难以确定最佳分测点,且电路设计较复杂。因此要采用合理的组合方案。当信号为方波和正弦波,幅度为0.55V,频率为0.1Hz30MHz,频率测量误差为0.1% 。2.1.2 周期测量周期测量方案与频率测量方案选择类似。当信号为方波和正弦波,幅度为0.55V,频率为1Hz1MHz,周期测量误差为0.1%,频率为1Hz1KHz,周期测量误差为1%。测量并显示周期脉冲信号的占空比,占空比变化范围为10%90%。2.1.3 脉宽和占空比测量在测量脉冲宽度和占空比时,首先经信号处理电路进行处理,脉冲边沿被处理得非常陡峭。为了提高测量精度,在测量脉

8、宽或占空比时采用了数字均值滤波技术。脉宽测量,信号为脉冲波,幅度为0.55V,脉冲宽度为100us,脉冲宽度测量误差为1%。2.1.4 数字显示采用十进制数字显示,显示刷新时间110s连续可调,能对上述三种测量功能分别用不同颜色的发光二极管指示。并且具有自校功能,时标信号频率为1MHz。2.2 频率计系统设计采用FPGA等可编程器件可以方便的完成不同测量原理的频率计设计。以单片机为核心的频率计系统框图如图2.2-1所示,采用高阻抗,高增益的前端放大器和分频器,采用屏蔽,看门狗,软件陷阱以及软件容错等多种软件抗干扰措施。将被测量的输入信号(0.1Hz30MHz)划分成0.11Hz,1Hz50KH

9、z,50KHz1MHz,130MHz四个频率段。首先对小于1MHz与大于1MHz的信号采用两个预处理放大器,分别进行放大。然后,对放大器的信号进行整形,分频处理。最后,利用单片机进行频率,周期,脉宽,占空比的测量和计算处理,并将运算结果串行输出到数码显示。单片机三态门三态门放大器116分频自检信号发生器16分频放大器2512分频三态门三态门功能显示自校频段看门狗INPUT1INPUT2 图2.2-1 系统框图3 软件设计3.1 基于单片机频率计设计在频率测量中,由于设计要求的被测频率范围较宽,为了便于信号的放大和测量,把整个测量频率范围划分为4个频段:在0.11Hz频段内,设定闸门时间为10s

10、,由定时器T0定时20ms,时标信号为0.5us,循环500次得到,并由它控制计数器T1计数脉冲个数,把计得的脉冲数除以10得到频率。在1Hz50kHz频段内,由定时器T0定时20ms,时标信号为0.5us,循环50次得到1s的闸门时间,并由其控制计数器T1计数脉冲个数,计得的脉冲数即为信号频率。在50kHz1MHz频段内,先经16分频,使其频率降为312562500Hz,闸门时间设为1s,又T0作为闸门时间计数器,又T1计数被测脉冲个数,由T1中的数值乘以16即为频率,其绝对误差为+16Hz或-16Hz,最大相对误差为(16Hz)/(50KHz)=0.032%。在130Hz频段内,信号经51

11、2分频,闸门时间为1s,由定时器T0提供闸门时间,由T1计数被测脉冲个数,信号频率等于T1计数值乘以512。这样,测量最大的绝对误差为+512Hz或-512Hz,最大相对误差为(512Hz)/(1MHz)=0.0512%,可以达到设计精度要求。在周期测量中,信号在1kHz以上,由定义可知周期T=1/f,先测量频率后取倒数就可得到周期。在1kHz以下的周期测量中,用被测量信号启动/停止计数器T0测量正脉冲脉宽T+,用被测量信号启动/停止计数器T1测量负脉冲脉宽T_,通过数据处理T+T_,再乘以时标0.5us,即为周期,最大绝对误差为+0.5us或-0.5us。在测量脉宽时,由外部信号的高电平启动

12、计数器T1计数,当信号变为低电平时,T1计数器停止工作,此时T1的计数值乘以0.5us即为脉宽,其最大绝对误差为+0.5us或-0.5us。在测量占空比时,先测量信号的脉宽和周期,为保证测量精度,采用周期除以脉宽(用4字节乘、除法实现),再去倒数可得占空比。3.2 基于单片机频率计设计的主程序框图初始化功能检测占空比周期频率脉宽无自检0.11Hz子程序1Hz50KHz子程序50KHz1MHz子程序130MHz子程序占空比子程序65KHz以下子程序1Hz1KHz子程序150KHz子程序50KHz30MHz子程序返回功能自检数据采集处理显示图3.2-1 主程序框图4 结束语单片机是一种集成电路芯片

13、,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。频率计是一种专门对被测信号频率进行测量的电子测量仪器。频率计主要由四个部分构成:时基(T)电路、输入电路、计数显示电路以及控制电路。基于单片机设计的数字频率计具有原理简单、易于调试和测量方便等优点,主要用来测量低频信号的频率。由于其测量范围会受单片机计数速率的限制,其测量量程较小,所以可以从原理上进行改进以提高其测频范围,比如通过

14、增加分频电路,就可实现对高频信号的测量。本文所介绍的频率计的设计方法,所制作的频率计需要外围器件较少,所以该频率计应用周期测量和相应的数学处理实现低频段的频率测量,因此很容易扩展实现信号的周期测量和占空比测量。首先在这里感谢XX老师认真的指导,本次设计的过程和结果都给了我很多感触。通过这几周的毕业设计,使我不仅对单片机有了更深层次的了解,也扩大了我的知识面,将理论与实际相结合。在设计过程中,难免会有许多考虑不周全的地方,如果没有导师的督促指导,以及同学们的支持,我想这个设计不会完成的这么顺利。在设计的每个阶段从查阅资料到设计方案的确定和修改,老师和同学们都给了我很大的帮助。最后,再次感谢XX老

15、师的耐心指导。附录:C语言程序#include#include #define uchar unsigned char#define uint unsigned intuchar temp8=0,0,0,0,0,0,0,0;uchar temp18=0,0,0,0,0,0,0,0;uchar T1count,timecount,T1count1,timer,yushu,yushu1;long fre,frx;float zhou;bit flag;bit flag1;void delay(uchar);bit result;sbit ird=P11;sbit id=P10;sbit clr=P

16、12;sbit en=P15;sbit rw=P16;sbit rs=P17;sbit rd=P37;sbit kb=P13;sbit kx=P14;sbit A0=P36;sbit A1=P37;bit start;uchar code tab1=fre: ;uchar code tab2=frx: ;void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);panduan_bz() rs = 0; rw = 1; en = 1; result = (bit)(P2&0x80); en = 0; return(result); v

17、oid write_com(uchar com) while(panduan_bz();rs = 0;rw = 0;en = 0;P2=com;delay(5);en = 1;delay(5);en = 0;void write_dat(uchar dat) while(panduan_bz();rs = 1;rw = 0;en = 0;P2=dat;delay(5);en = 1;delay(5);en = 0;void init()uchar num;en = 0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01)

18、;write_com(0x80);for(num=0;num16;num+)write_dat(tab1num);delay(5); write_com(0x80+0x40);for(num=0;num16;num+)write_dat(tab2num);delay(5); void init1() ird=1; id=1; TMOD=0x55; TH1=0; TL1=0;/初值为0 TH0=0; TL0=0; TR0=1; TR1=1; IE=0x8a; RCAP2H=(65536-47850)/256; /重装载计数器赋初值RCAP2L=(65536-47850)%256;ET2=1; /

19、开定时器2中断EA=1; /开总中断TR2=1; void display()uchar i; fre=(T1count*65536+TH1*256+TL1); /频率计算 temp0=fre/; temp1=fre%/; temp2=fre%/; temp3=fre%/10000; temp4=fre%10000/1000; temp5=fre%10000%1000/100; temp6=fre%10000%1000%100/10; temp7=fre%10000%1000%100%10; if(fre=999) write_com(0x80+4); for(i=0;i=1000) writ

20、e_com(0x80+4); for(i=0;i8;i+) write_dat(0x30+tempi);/保存要显示的数到显示缓冲区 if(i=4) write_dat(.); write_dat(K); write_dat(H); write_dat(z);T1count=0;timecount=0; TH1=0;TL1=0; TH0=0; TL0=0; /定时器0重新装值,保证精确(不加的话只是最多差0.001s,0.1%)void display1() uchar j;float zhou;zhou=(T1count1*65536+TH0*256+TL0)*1.0549);frx=(lo

21、ng)(zhou)*256);temp10=frx/;temp11=frx%/;temp12=frx%/;temp13=frx%/10000;temp14=frx%10000/1000;temp15=frx%10000%1000/100;temp16=frx%10000%1000%100/10;temp17=frx%10000%1000%100%10;if(frx=999) write_com(0x80+0x40+4); for(j=0;j=1000)/ frx=frx/1000; write_com(0x80+0x40+4); for(j=0;j8;j+) write_dat(0x30+te

22、mp1j);/保存要显示的数到显示缓冲区 if(j=4) write_dat(.); write_dat(K); write_dat(H); write_dat(z);void main(void) init(); init1(); while(1) rd=0; ird=1; if(flag=1)/标志位为1,表示进行完了一次1S记数flag=0;kb=0;kx=1;clr=0;ird=0;id=0;display1();display();elsekb=1;kx=0; void t1(void) interrupt 3 / 记数器中断,加1 T1count+; void t0(void) i

23、nterrupt 1 / 记数器中断,加1 T1count1+; void Timer2() interrupt 5 /调用定时器2,自动重装载模式uchar i=0; /定义静态变量iTF2=0; /定时器2的中断标志要软件清0timecount+; /计数标志自加1if(timecount=20) /判断是否到1stimecount=0; /将静态变量清0flag=1;参考文献:1 吴居娟、齐娟:基于可编程增益放大器的多路高速数据采集系统设计,煤矿现代化,2007.5,P45-P502 何立民:单片机应用技术选编,北京航空航天大学出版社,1999.6,P63-P703 丁鸣艳、李文:基于多

24、路数据采集的交流调速系统设计,机械与电子,2007.10,P33-P364 王瑞福:单片微机测控系统大全,北京航空航天大学出版社,1998.8,P79-P855 孙育才:单片微机应用系统设计与实现,东南大学出版社,1990.6,P88-P956 邹大挺:频率计的设计,电子产品世界出版社,2006.7,P90-P987 李华:单片机实用接口技术,北京航空航天大学出版社,2006.5,P23-P338 张鹏、王雪梅:单片机原理与应用实例教程,海军出版社,2007.8,P101-1079 郝建国:单片机在电子电路设计中的应用,清华大学出版社,2005.8,P74-P7910 谢自美:电子线路设计与实

25、现,华中科技大学出版社,2006.9,P83-P8911 吴清平:单片机原理与应用实例教程,海军出版社,2008.5,P56-P6312 李群芳:单片微型计算机与接口技术,电子工业出版社,2008.6,P76-P8713 李朝青:单片机原理及接口技术设计,北京航空航天大学出版社,2003.7,P48-P5614 赫建国、刘建新:基于单片机频率计设计,西安邮电学院学报,2003.7,P53-P5915 谢自美:电子线路设计与实现,华中科技大学出版社,2006.5,P87-P9616 李光第、朱月秀:单片机基础,北京航空航天大学出版社,2004.6,P56-P6317 李群芳、肖看:单片机原理接口与应用,清华大学出版社,2005.6,P98-P10618 林凌:51系列单片机系统设计与应用技巧,北京航空航天大学出版社,2004.7,P79-8419 陈光东、赵性初:单片微机原理与接口技术,华中科技大学出版社,2003.8,P83-P9520 杨素行:模拟电子技术基础简明教程,高等教育出版社,2010.12,P235-P245专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com