当前位置:首页 > 单片机 > 单片机
[导读]摘要:为了提高电压表的测量精度和性价比,提出了一种以AT89C51单片机为控制核心的,基于Proteus仿真技术的数字电压表设计方案。详细介绍了数字电压表的硬件电路设计和软件编程方法,并利用Proteus软件进行了仿真调试

摘要:为了提高电压表的测量精度和性价比,提出了一种以AT89C51单片机为控制核心的,基于Proteus仿真技术的数字电压表设计方案。详细介绍了数字电压表的硬件电路设计和软件编程方法,并利用Proteus软件进行了仿真调试。结果表明,所设计的数字电压表结构简单,性价比高,并具有较高的测量精度;同时,也证明了Proteus仿真软件的运用,可以有效地缩短单片机系统的开发周期,降低开发成本。
关键词:数字电压表;Proteus;仿真设计;单片机

    随着现代电子设计手段的迅速发展,EDA仿真技术也越来越多地应用于实际电路设计中。EDA技术通过先建立电路模型,然后将计算机仿真结果应用于实际电路设计中,这样既降低了成本,又缩短了研制周期。
    Proteus是由英国Labcenter公司开发的一个嵌入式系统仿真与开发平台,是目前世界上最流行的EDA仿真软件之一。它具有模拟电路和数字电路仿真功能,支持主流单片机及其外围电路所组成系统的仿真;可以提供软件调试功能,支持与Keil、MPLAB等单片机开发环境的连接调试,并具有强大的原理图绘图等功能。
    为了提高电压表的性价比和测量精度,本文以AT89C51单片机为控制核心,利用Proteus仿真技术实现了一种数字电压表的设计。通过该数字电压表的设计过程,也充分体现出Proteus软件在单片机控制系统的设计、调试过程中的实用性。

1 系统结构及工作原理
   
基于AT89C51单片机的数字电压表系统结构框图如图1所示。该数字电压表主要由AT89C51单片机、信号调理电路、A/D转换器、LED显示电路、电源电路、复位电路以及时钟电路等几部分组成。


    数字电压表工作原理如下:首先,系统将被测模拟电压交给信号调理电路进行一定的处理(包括放大、滤波等操作),使其电压符合A/D转换器的输入要求;接着,经A/D转换将该模拟电压转换成相应的数字量,并送入AT89C51单片机的P1口;然后,由系统软件对该转换结果进行数字滤波及运算和处理;最后,通过单片机的P0、P2口控制LED显示电路进行输出电压显示。

2 系统硬件设计
   
基于Proteus的数字电压表硬件电路设计主要包括LED显示电路、A/D转换电路、时钟和复位电路等几部分,其硬件电路如图2所示。电路设计时,使AT89C51单片机的端接高电平,系统无需扩展片外ROM。


2.1 LED显示电路
   
LED显示电路的主要功能是对系统处理后的电压值,及时进行显示。本设计选用4位一体的数码型LED显示器,并采用动态显示方式进行控制。该显示器的第2位(自左向右)用来显示电压的整数位,后两位用来显示电压的小数位。电路中,用AT89C51单片机的P0口来控制LED显示器的段码;用P2.0-P2.3引脚来控制LED显示器的位码。
2.2 A/D转换电路
   
A/D转换电路主要用来完成被测模拟量向数字量的转换。本系统选用ADC0808作为A/D转换器,它是一个CMOS单片型、逐次逼近式8位A/D转换芯片,可与微机直接接口,适用于过程控制和智能仪器等领域。该芯片可根据地址输入线ADDA、ADDB、ADDC的电平值,决定选通8路模拟输入信号IN0-IN7中哪一路进行转换;本电路将ADDA、ADDB、ADDC全部接地,选择IN0通道输入被测模拟电压。ADC0808的OUT1-OUT8端直接和单片机的P1口相连,作为A/D转换数据输出端。同时,ADC0808的控制端CLOCK、START和ALE、EOC及OE分别与AT89C51的P2.4-P2.7脚相连。
    该硬件电路工作过程:+5 V电压经变阻器RV1分压后所获得的被测模拟电压由IN0通道输入ADC0808;AT89C51单片机通过定时器中断从P2.4引脚输出方波,给ADC0808的CLOCK端提供时钟信号。当给单片机的P2.5脚输出一个正脉冲,利用其下降沿可启动A/D转换,并由单片机P2.6脚检测A/D转换是否完成。当从P2.6脚检测到ADC0808的EOC端为高电平时,表明A/D转换结束,系统控制P2.7脚使ADC0808的输出允许控制端OE为高电平,允许单片机读取A/D转换数据;否则,继续等待。最后,系统把转换后的数据进行运算和处理,将段码从P0口送给四位LED,并控制P2.0-P2.3的取值,实现数码管的位选控制。

3 系统软件设计
   
整个系统软件设计主要包括主程序、数据采样子程序、数字滤波子程序、T0中断服务程序及显示子程序等几部分。
3.1 主程序
   
系统主程序流程图如图3所示。


    主程序的功能如下:首先,完成系统初始化,包括设置堆栈及定时器T0的工作方式和定时初值,清理显示缓冲区;其次,启动定时器T0,允许系统总中断和T0中断;接着,调用数据采样子程序,对输入模拟电压进行多次采样和A/D转换,并调用数字滤波子程序,将滤波处理后的数据放入2AH单元中;然后,调用数据处理子程序,将2AH单元的内容进行一定处理,使得22H-20H单元中分别存放待显示数据的个位、十分位和百分位;最后,调用LED显示子程序,实现被测电压的实时显示。
3.2 数据采样子程序
   
为了提高采样精度,降低采样误差,系统设计了数据采样子程序。该程序的功能是对从IN0通道输入的模拟电压进行三次采样和A/D转换处理,并把采样数据分别存入2CH、2DH、2EH单元中;随后,调用数字滤波子程序,采用中值滤波法求取3次采样数据的中间值作为本次有效采样值,并放在2AH单元中,以便后续程序进行运算和处理。结合硬件电路设计,本系统数据采样子程序流程图如图4所示。


3.3 T0中断服务程序
   
由于系统采用ADC0808作为A/D转换器,该芯片正常工作时必须给CLOCK端输入时钟信号;为了简化硬件电路,将CLOCK端直接与AT89C51单片机的P2.4脚相连,这样系统只需通过软件控制P2.4脚输出满足ADC0808工作要求的时钟信号即可。
    具体实现方法:在软件设计中,使用定时器T0中断,设置定时器T0工作在方式2,即自动重装初值的8位计数方式。这样每隔一定时间系统就会产生T0中断,并响应其中断服务程序;所以,只需每次在中断服务程序中给P2.4脚的输出电平取反,即可获得满足输出要求的方波信号。
    在本设计中,设置系统时钟频率为12 MHz,使P2.4引脚输出时钟频率为50 kHz的方波时,计算定时器T0的计数初值X:
    定时时间=1/(2x50 kHz)=10μs
    计数个数=定时时间/机器周期=10
    计数初值X=256-10=246
    则将246分别赋给初值寄存器TH0、TL0。

4 系统仿真
   
对本系统方案的仿真研究,必须通过Proteus仿真软件与Keil编程软件的联调才能得以实现。首先,在KeilμVision3软件中,采用汇编语言编写源程序,在新建项目中选择AT89C51单片机作为CPU,再将编好的源程序加载到新建项目中,并进行编译、链接,最终生成.HEX文件。接着,在Proteus ISIS界面中编辑电路原理图,如图2所示;双击AT89C51,打开属性编辑框,在“Program File”栏中导入.HEX文件,并设置时钟频率为12 MHz。最后,点击运行按钮,进行软硬件交互仿真。


    仿真时,在Proteus中用鼠标指针调节电位器RV1的大小,用虚拟电压表观察输入ADC0808的模拟电压值,及LED实时显示的相应数量值。在此,给出输入模拟电压为3.5 V时的测试图,如图5所示;以及虚拟电压表读数和对应LED显示数据,如表1所示。


    从表1中虚拟电压表的读数和对应LED显示数据对比情况可知,所设计的数字电压表能准确的测量和显示电压值,测量精度可达到0.01 V,系统仿真效果也达到了预期的设计要求;同时,该数字电压表还具有结构简单,性价比高等特点。

5 结束语
   
文中以AT89C51单片机为核心,采用Proteus仿真技术实现了数字电压表的设计。通过Proteus仿真软件与Keil编程软件的联调,完成了系统方案的仿真研究;结果表明,所设计的数字电压表具有结构简单、成本低、测量精度高等特点。在该数字电压表设计中,前期使用Prot eus软件进行了仿真研究,提高了系统的开发效率,降低了设计成本;基于Proteus仿真的系统设计方法具有一定通用性,也可用于其他单片机系统的开发中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭