历史上的今天
返回首页

历史上的今天

今天是:2025年03月23日(星期日)

正在发生

2018年03月23日 | 采用AT89C51单片机控制的量程自切换频率计

2018-03-23 来源:eefocus

    量程自切换频率计采用AT89C51单片机控制,主要由信号放大整形电路,单片机控制电路,分频电路,信号显示电路以及电源电路五个模块组成。本文阐述了系统的硬件组成及工作原理,论证了设计方案的可行性。系统程序采用C语言编写,经Keil软件进行调试后在Prote us软件中进行仿真,并且经过实物的测试,可以实现对不同波形的频率进行测量。具有自动切换并指示量程,精度较高,测量范围较大等特点。

 

    近年来,随着科学技术的快速发展,特别是类似单片机等相关集成电路生产技术的快速堀起,推动了仪器仪表及家电产业的快速发展,用程序代码来简化硬件电路的复杂程度,使其不断向着体积小,价格低廉,功能更加多样化、智能化的方向发展。功能齐全,价格低廉的产品越来越受到人们的青睐,当然,科技的发展最先受益的还是从事前沿科技研究领域的人员,对于他们来说,一款好的测量设备将为他们的研究工作带来便利的同时也减轻很多负担。就目前而言,高端仪器设备很多均依赖进口,研究并制造出属于我们国家自己的高端仪器设备将是我们一直努力的方向,而且也具有非常广阔的发展前景。

    1 硬件电路设计

    本设计主要由信号采集电路、放大整形电路、分频电路、信号处理电路、电源电路和显示电路等模块组成。当采集到的被测信号经过放大整形电路后被整形为幅度适中的矩形波后,根据其频率的高低选择相应的分频电路对其进行适当的分频处理,然后单片机对分频后的信号进行测频,再经过处理后将结果送出去,驱动显示电路输出的数字频率信息,同时指示相应的量程,从而实现对频率的自动测量和显示。频率计的总体工作原理框图如图1所示。

g.JPG

    1.1 放大整形电路的设计

    9013是一种NPN结构的三极管,集电极和发射极之间的最高电压25 V,集电极和基极之间的最高电压为45 V,发射极和基极之间的最高电压为5 V,集电极的最高电流0.5 A;三极管的最高耗散功率为0.625 W,最高的结温为150℃,其特征频率为150 MHz;放大倍数范围是40倍~110倍;工作温度范围为-55~+150℃;74LS14是一种双列直插式封装具有六反相器的施密特触发器,其工作的最高电源电压为7 V,工作环境温度范围为0~70℃;三极管9013和施密特触发器74LS14一起构成的放大整形电路能够有效的对方波,正弦波,矩形波,三角波等信号进行放大和整形,并且能够稳定的输出,具有较强的驱动能力,能够满足本课题对0 Hz~20 MHz的频率范围要求。三极管9013和施密特触发器74LS14构成的放大整形电路如图2所示。

h.JPG

    1. 2 信号分频部分电路设计

    74LS161为二进制同步计数器,具有同步预置数、异步清零以及保持等功能。合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器;74LS151是具有选通输入端,互补输出的8选1数据选择器,数据选择端(ABC)按二进制译码,以从8个数据(D0~D7)中选取1个所需的数据。

    数据选择器74LS151与计数器74LS161构成的分频电路能够比较方便的完成对信号的分频处理,通过数据选择器来控制计数器构成的分频器工作,从而实现对不同数量级的频率信号进行有效的分频处理;为后续电路的顺利进行提供必要的保证。信号分频模块的电路图如图3所示。i.JPG


    1. 3 信号处理部分电路设计

    单片机系统的拓展通常是以最小系统为基础的。信号处理模块主要是依靠单片机的最小系统。最小系统是一个真实有用的单片机最小配置系统。对于AT89C51单片机而言,因为片内带有程序存储器,所以只要在芯片上外接复位电路和晶振电路就构成了最小系统。单片机的XTAL1和XTAL2引脚是用来连接晶振电路的,XTAL1接外部晶振和微调电容的一端,它是内部时钟工作电路及振荡器的反向放大器的输入端;XTAL2接外部晶振和微调电容的器一端,在片内它是振荡器的反向放大器的输出端。RST为单片机的复位端,接复位电路,该引脚为高电平时可使单片机复位,回到初始状态。复位电路主要包括复位开关、复位电阻和复位电容。单片机的最小系统如图4所示。


j.JPG

    1.4 显示部分电路设计

    在本设计系统中,由于只要对信号频率和量程进行显示,因而选择4位共阳极的数码管来动态显示所测得的频率,选用红、黄、绿三色的发光二极管来指示对应的量程,分别对应为MHz、kHz、Hz档。由于发光二极管的工作电流较小,一般在10 mA左右,所以为了保证发光二极管的正常工作,还必须为其加上200 Ω的限流电阻。四位数码管用来显示频率的测量值,当频率在0~9999 Hz时,B档位指示灯(绿)点亮;当频率在10~999.9 kHz时,K档位指示灯(黄灯)点亮;当频率在1~20MHz时,M档位指示灯(红灯)点亮。由四位共阳极的数码管和三色发光二极管构成的显示电路如图5和图6所示。k.JPG

    1.5 电源部分电路设计

    本设计要用到5 V的直流电源为各个模块供电,利用变压器将220 V的交流电进行降压处理,得到9 V的交流电压,通过整流桥对降压后的交流电压进行整流处理变为直流电压,再通过电容进行滤波处理,滤除高频干扰信号,最后选择稳压块7805串联作用于整流滤波后的直流电压,并且为7805加上了散热铝片来保证其正常的散热和工作,从而使其输出稳定的+5 V直流电压提供给各个模块,理论计算得知整个系统的功率在稳压管的额定功率的范围内,从而保证整个系统的正常工作。电源电路原理图如图7所示。

a.JPG


    2 软件设计

    在单片机应用系统的开发过程中,C语言的应用最为广泛。C语言不仅能直接对计算机的硬件进行操作,而且语言灵活、程序结构良好、代码效率高、可移植性好。

    2.1 系统总流程图

    流程图分析:当电源开启后,系统进行初始化,系统开始运行,单片机内部开始判断输入信号频率的高低,按从高到低的顺序进行分频测算从而得到合适的分频系数来控制数据选择器实现对信号进行分频处理,根据频率的高低范围来确定点亮相应的量程指示灯以及确定要显示小数的位数,最后将倍频后的结果通过动态扫描的显示方式在四位数码管上显示出相应的测量结果。系统总流程图如图8所示。




b.JPG

    2.2 量程显示的程序流程图

    流程图分析:在系统确定了量程范围后,根据不同的量程范围分别电路不同颜色的量程指示灯:当频率范围在0~9999Hz时,绿色的发光二极管点亮;频率范围在10~999.9kHz时,黄色的发光二极管点亮;当频率范围在1~20 MHz时,红色的发光二极管点亮。显示量程的程序流程图如图9所示。c.JPG

    3 电路调试与结果

    系统的调试主要从软件调试和硬件调试两方面着手,当然,所有的一切都是为了实现既定任务为目标的。软件调试和硬件调试过程是紧密相关、互相配合的,本次频率计设计重点是对软件程序的调试。

    利用函数信号发生器输入正弦信号分别为279 Hz时,观察数码管的结果。得到结果如图10所示。d.JPG

    利用函数信号发生器输入方波信号分别为680 kHz时,得到结果如图11所示。

e.JPG

    利用函数信号发生器输入锯齿波信号分别为2.76 MHz时,观察数码管的结果。得到结果如图12所示。

f.JPG

    利用函数信号发生器输入三角波信号分别为583 Hz时,观察数码管的结果。得到结果如图13所示。

bb.JPG

    4 结论

    本设计经Keil软件进行调试后在Proteus软件中进行仿真,并且经过实物的测试,实现了对方波、三角波、锯齿波、正弦波的频率进行测量。具有自动切换并指示量程,精度较高,测量范围较大等特点,符合电子仪表的发展趋势,具有一定的实用价值。


推荐阅读

史海拾趣

Autonics公司的发展小趣事

Autonics自成立以来,一直致力于传感器和控制器的研究与开发。公司拥有一支高素质、专业化的研发团队,不断推出具有创新性和竞争力的产品。经过多年的努力,Autonics的产品种类逐渐丰富,性能不断提升,赢得了市场的广泛认可。同时,公司还注重与国内外高校、科研机构的合作,引进先进技术,提升自身的研发能力。

DS-IMP公司的发展小趣事

在电子行业,供应链管理是企业发展的关键因素之一。DS-IMP公司深知这一点,因此在发展过程中不断优化供应链管理。公司建立了完善的供应链体系,与供应商和客户建立了长期稳定的合作关系。同时,公司还引入了先进的供应链管理软件和技术手段,实现了对供应链的实时监控和精细化管理。这些措施不仅提高了公司的运营效率,还降低了成本风险,为公司的发展提供了有力保障。

台湾奇力(Chip)公司的发展小趣事

奇力公司一直致力于环保和社会责任。在生产过程中,奇力公司采用环保材料和工艺,减少对环境的影响。同时,奇力公司还积极参与社会公益活动,回馈社会。这种环保和社会责任的理念也赢得了客户和社会的认可和支持。

以上五个故事分别从不同角度展现了台湾奇力(Chip)公司的发展过程。这些故事不仅体现了奇力公司的技术实力和市场策略,也展现了其持续创新、绿色环保和社会责任的企业形象。

ETI Systems公司的发展小趣事

ETI Systems深知在电子行业中,单打独斗很难取得长远的发展。因此,公司积极寻求与行业内外的合作伙伴建立战略合作关系。通过与多家知名企业和研究机构的合作,ETI Systems不仅获得了宝贵的技术支持,还拓展了市场渠道和客户资源。这种合作与共赢的伙伴关系,为ETI Systems的快速发展奠定了坚实的基础。

虹冠电子(Champion)公司的发展小趣事

随着电竞产业的快速发展,虹冠电子敏锐地捕捉到了这一市场的巨大潜力。公司投入大量资源研发电竞电源供应器产品,凭借其卓越的性能和稳定性,迅速在电竞领域树立了良好的品牌形象。同时,虹冠电子还积极与电竞行业内的知名企业和赛事组织合作,共同推动电竞产业的繁荣发展。

EBG RESISTORS LLC公司的发展小趣事

EBG RESISTORS LLC公司成立于XXXX年,由几位电子工程师共同创立。初创时期,公司面临着资金短缺、市场竞争激烈等多重挑战。然而,创始人们凭借对电阻器技术的深厚理解和热情,坚持研发高质量、高性能的电阻器产品。他们夜以继日地工作,不断优化产品设计和生产工艺,终于在市场上赢得了客户的认可。

问答坊 | AI 解惑

用什么方法在一个比较喧闹的环境中只能捕捉到自己说话的语音

在一个很嘈杂的环境中比如闹市中,用什么传感器只能捕捉到半径很小的一个范围内的声音(也就是自己说话的声音或者是距离自己很近的人所说话的声音),查了很多相关资料能不能从说话人的声波波段出发?或者是从近声场和远声场出发?    请 ...…

查看全部问答>

嵌入式学习步骤,对你有用么?

1、Linux 基础 安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定 ...…

查看全部问答>

请问哪个函数可以得到内核镜像 的基址?

请问哪个函数可以得到内核镜像 的基址? 我在DDK文档中找不到这样的函数. 还有,有什么函数能取到内核镜像的大小呢??/ 本人菜鸟,初学驱动编译,问题都比较弱智. 望大大们,不要见怪,请赐教,谢谢!!!…

查看全部问答>

keil中关于片外RAM的疑问

MOV A,#30H MOV R1,#0E0H MOVX @R1,A MOVX A,@R1复制代码 意思是一个对片外RAM操作的,用keil下自带的模拟下,调用内存,输入I:0e0h,现实的是00,为什么啊?不是应该是30h的嘛?? 最终的a的值是30h,但是片外里面显示的是00,怎么回事啊??…

查看全部问答>

新手求助,谢谢

刚开始学嵌入式,用的是PB4.2,有一块SMDK2440的开发板,按照厂家给的wince安装手册一 步步操作下来,但在最后出现一个致命错误: srcgen D:\\WINCE420\\PLATFORM\\SMDK2440 QT2440LHQ D:\\WINCE420\\PUBLIC\\QT2440~1\\WIN CE420\\smdk2440\\ces ...…

查看全部问答>

《STM32例程手册》-LCD驱动+SD卡操作实验

Alientek STm32 Mini开发板教程《STM32 不完全手册》-,总共480多页,12万字左右。总共编写了28个实例,在教程里面对其进行了详细的讲解,其中还包括 STM32的一些介绍,包括MDK的使用,以及技巧等。手册参考了很多网友的资料,很多资料是COPY ...…

查看全部问答>

关于LM3S811核心板的一些想法

我们最近拿到的LM3S811板子只是个核心板,像普通的RS232或RS485、SPI(即ssi)、IIC等外设都没有 更别说其他的一些高级的外设了   谁有这方面的板子或者图纸   坛子有没有兴趣组织个这样的活动 将这个板子画出来   如果相应的 ...…

查看全部问答>

【讨论】如何扩展launchpad的IO口

刚刚看到论坛上的 wuqingyou 坛友突然发现launchpad的IO数量不够用,正为这个事烦恼的帖子,也看到了坛子上的“老人” ——wangfucong,juring 的热心回复。launchpad作为G系列这个低成本的430的开发板,确实没有提供非常多的IO口;其 ...…

查看全部问答>

基于FPGA的采集系统与ISA通讯出现问题

这个系统用来实现数据采集的功能,AD采用的是tlc5510,控制器采用EP2C8Q208,与上位总线通讯机通过ISA通讯,但是仿真可以实现采集的功能,但是实际采集的数据却是全零…

查看全部问答>

关于SPI 的发送 接收函数的问题

unsigned char SPI_SendorReceiveByte(unsigned char byte) {    while(!(IFG2&UCB0TXIFG));       UCB0TXBUF = byte;    while(!(IFG2&UCB0RXIFG));        //如果你 ...…

查看全部问答>