1、频率测量电路的设计课设一、概述在现代社会中,随着电子工业的发展,能够精确测量各种设备仪器中电路的频率、电压、电流等参数已越来越重要。频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。传统的频率计通采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。MCS51系列单片机具有体积小,功能强,性价比比较高等特点,因此被广泛应用于工业控制和智能化仪器,仪表等领域。此设计用四片74LS161设计一个16位的二进制计数器。利用单片机的定时功能,在单位时间读取计数器的计数值从而计算出信号的频率,
2、并通过六位动态数码管显示出来。二、方案论证频率计是一种测量信号频率的仪器,在教学、科研、高精度仪器测量、工业控制等领域都有较广泛的应用。随着单片机技术的不断发展,单片机能实现更加灵活的逻辑控制功能,具有很强的数据处理能力,可以用单片机通过软件设计直接用十进制数字显示被测信号频率,能克服传统频率计结构复杂、稳定性差、精度不高的弊端,而且频率计性能也将大幅提高。此频率计的基本原理首先用四片74LS161设计一个16位的二进制计数器,利用单片机的定时功能,在单位时间读取计数器的计数值从而计算出信号的频率,通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。
3、闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。我们用100ms设定为闸门时间,数字频率计是用数字显示被测信号频率的仪器,如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率、转速、声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器。有以下几种方案可供选择:方案一:其工作原理如图l所示。该方法是使用单片机自带的计数器对输入脉冲进行计数,其好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就可以实现。这种方法的缺陷是受限于单片
4、机计数的晶振频率。本次设计使用的AT89S51单片机,将其内部定时/计数器Tl的功能设为定时。频率信号由T0端引入。由于检测一个由“1”到“0”的跳变需要两个机器周期。前一个机器周期测出“1”,后一个周期测出“0”。所以输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。而且由于定时不能达到ls,所以要多次引起片内定时器的溢出中断,由此会引起测频的误差。 方案一原理框图如图1所示。 图1 方案一原理框图方案二:该方法是单片机使用外部计数器对脉冲信号进行计数,计数值再由单片机读取。此方法的好处是输入的时钟信号频率可以不受单片机晶振频率的限制,可以对相对较高频率进行测量,但缺点是成本比第一
5、种方法高,硬件系统结构比较复杂。为了节省硬件成本,可以采用动态扫描的方法进行显示。方案二原理框图如图2所示。图2 方案2原理框图方案比较:从以上二个方案中可知,内部计数器法测量频率受晶振频率的限制而且多次中断会引发误差,但硬件结构简单。外部计数器法测量频率不受晶振频率的限制,但硬件结构复杂。因此通过对这2种方法优缺点的比较,本设计选取方案二,因为其稳定性,可靠性高,易于实现,而且从软件编程方面可以尽量减少误差,所以采用单片机外部计数器法测量频率。 三、电路设计系统总体分为:单片机系统电路,外部计数器,上电复位电路,数码管显示电路部分。(1)单片机系统电路 AT89C51是一个低功耗,高性能 C
6、MOS 8 位单片机,芯片内集成了通用 8位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89C51 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O)口,5 个中断优先级2层中断嵌套中断, 2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而 R
7、AM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。 AT89C51 单片机管脚如图3所示:图3 AT89C51 单片机管脚图P0:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P
8、0 外部必须被拉高。 P1:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 1
9、6 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。但在访问外部数据存储器时,这两次有效
10、的/PSEN信号将不出现。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器器的选通信号。在由外部程序存储器取指期间,每个机器
11、周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 此设计用到了单片机的PO,P1,P2,P3,定时等功能。(2)外部计数电路单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是单片机
12、控制器中的时序电路发出的。单片机的时序就是 CPU 在执行指令时所需控制信号的时间顺序。为了保证各部件的同步工作,单内部电路应在唯一的时钟信号下严格按时序进行工作。MCS-51 系列单片机内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。MCS-51 的时钟产生方法有“内部时钟方式”与“外部时钟方式”两种。在本设计中采用了外部时钟方式。此电路是由4片74ls161组成的16位2进制计数器,由U2的LOAD输入时钟信号。外部计数电路电路图如图4所示: 图4 外部计数电路电路图(3) 上电复位电路复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作
13、用是使CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。而复位是一个很重要的操作方式,但单片机本身是不能自动经行复位的,必须配合相应的外部复位电路才能实现。本设计的复位电路采用上电复位加按键手动复位。其电路如下图所示:图5 复位电路原理图当复位按键按下以后,复位端直接与电源 VCC 接通,10nF 电容 C3 迅速放电,使 RST 引脚为高电平;当复位键弹起后,电源 VCC 通过 10k 电阻 R1 对 10nF 电容 C3 重新充电,RST 引脚出现复位正脉冲。其持续时间取决于 RC 电路的时间常数。(4) 数码管显示电路显示器是微机重要的输出设备。显示器有显示监控结果
14、、提供用户操作界面等功能。在本次设计中采用了 LED 显示器,即数码管。数码管的每一个数码段是一只发光二极管。当发光二极管导通时,相应的一个点或者一个笔画发光,控制发光二极管发光组合,可以显示出所需字符。我采用了共阴极结构。在定义其显示字形的码段时,通过 I/O 口送出七段码其段码表如下所示:表1 共阴极数码管段选码显示0123456789共阴3FH06H5BH4FH66H6DH7DH07H7FH6FH数码管显示电路如图6所示:图6 数码管显示电路图四、性能的测试(1)软件测试C 语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,位操作能力强,适用于各种应用的程序设计。使用 C
15、语言进行单片机应用系统开发,具有编程灵活、调试方便、目标代码编译效率高的特点。C 语言也是目前使用最广的单片机应用系统编程语言。MCS-51 系列单片机开发系统的编译软件可以对 51 单片机 C 语言源程序进行编译,称为 C51 编译器。在 C51 编译软件中可进行 51 单片机C 语言程序的调试在 Keil上的编译结果如图7所示图7 Keil上的编译结果(2)Proteus ISIS 上的仿真测试由于是由外部16位的2进制计数器进行计数,所以计数最大值不能超过64K,又因为基准时间的误差,计数误差,指示误差,测量过程中引入的外部干扰,会产生一定的误差。下面进行仿真测试,当输入60K的频率时,
16、显示如图8所示:图8 输入60K时仿真结果当输入较小的频率如50HZ时,仿真结果如图9所示:图9 输入50HZ时仿真结果五、结论 由以上仿真结果可知,当测量60kHZ时,数码管显示60030HZ。当测量50HZ时,数码管显示50HZ,测量时有些许误差,但在可承受的范围内,因此设计符合要求。六、性价比 此设计使用外部计数器法测量频率,不受晶振频率的限制,其硬件结构简单、稳定性、可靠性高,易于实现,而且从软件编程方面可以尽量减少误差,所用材料价格便宜,易于获得,性价比较高。 七、课设体会我在这次课程设计中深刻理解了 51 单片机各部分的功能与作用。加深了上课时所学的有关于中断系统、存储器、I/O
17、端口、时钟电路、复位方式等等环节的认识,不再对其一知半解或者毫无头绪了,并深深意识到了自己所学知识的局限性。 我查阅了大量的相关文献,收获很大。由于查阅了许多英文资料,且使用的相关编译与仿真软件全部为英文,我感到自己的英文水品还有待于进一步提高。我看到 Proteus 的元件库里有成千上万种元器件,却由于不认识英文,有时寻找一个元器件需要花很长时间,耽误了不少功夫。这更加激发了我的学习热情。 在编译与仿真的过程中,我遇到了大大小小的许多问题,这些问题都是平时上课时从没想到过的。但是通过自己或与同学的努力,许多问题都最终被解决了。这不但提高了我们解决未知问题的能力,而且加强了同学之间的交流与协作
18、,使我们的综合能力进一步提高。参考文献1 阎石主编. 数字电子技术. M北京:高等教育出版社,2006年2 陈振官等编著. 新颖高效声光报警器. M北京:国防工业出版社,2005年3 谢自美.电子线路设计.实验.测试.华中理工大学出版社.2000 4 阎石.数字电子技术基础.高等教育出版社.第五版 5 夏路易.石宗义.电路原理图与电路板设计教程M.北京希望电子出版社.2002 6 张肃文.高频电子线路. 高等教育出版社.第五版 7 高吉祥.电子仪器仪表的设计.电子工业出版社.2007 8 何小平.电子测量仪器.清华大学出版社.1995 9 牛昱光等,单片机原理与接口技术,电子工业出版社,200
19、8 附录I 总电路图(另起一页)附录II 源程序#include#include intrins.h#define nop() _nop_()unsigned int count=0;unsigned int count1=0;unsigned int count2=0;unsigned long count3=0;sbit q1=P20;sbit q2=P21;sbit q3=P22;sbit q4=P23;sbit q5=P24;sbit q6=P25;sbit clear=P27;unsigned int disp=0,0,0,0,0,0;unsigned charseg=0x3F,0x
20、06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;void delay(unsigned int ms) / 延时子程序 unsigned int i; while(ms-) for(i = 0; i 100; i+) _nop_(); _nop_(); _nop_(); _nop_(); void xianshi()q1=q2=q3=q4=q5=q6=0;P0=segdisp0;q1=1;delay(1);q1=q2=q3=q4=q5=q6=0;P0=segdisp1;q2=1;delay(1);q1=q2=q3=q4=q5=q6=0;P0=segdisp
21、2;q3=1;delay(1);q1=q2=q3=q4=q5=q6=0;P0=segdisp3;q4=1;delay(1);q1=q2=q3=q4=q5=q6=0;P0=segdisp4;q5=1;delay(1);q1=q2=q3=q4=q5=q6=0;P0=segdisp5;q6=1;delay(1);q6=0;void chuli(unsigned long led) disp0=led/100000;disp1=led%100000/10000;disp2=led%10000/1000;disp3=led%1000/100;disp4=led%100/10;disp5=led%10;v
22、oid myint(void) interrupt 1TL0=0xb0;TH0=0x3c;count+;if(count=2)TR0=0;count=0;count3=(P1+P3*256)*10;clear=0;TR0=1;clear=1;void main()TMOD=0x01;EA=1;ET0=1;ET1=1;TL0=0xb0;TH0=0x3c;TR0=1;while(1)chuli(count3);xianshi();附录 元器件清单序号编号名称型号数量1U1 单片机AT89C5112U2,U3,U4,U5计数器74LS16143R1电阻10K14C1电容10uf15RP1排阻RESPACK-816数码管7SEG-MPX2-CA17Button按键1891011
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1