标题 | 基于Proteus数字电压表的设计分析 |
范文 | 程建峰 摘要:电压测量在电子测量技术中具有重要意义。以 AT89C51 单片机为核心,用Proteus软件进行仿真调试,设计了电压检测系统,该系统程序简单可读写性强,效率高,与传统的电路相比,具有方便操作、处理速度快、稳定性高、性价比高的优点,具有一定的使用价值。 关键词:Proteus;单片机;AT89C51 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)24-0221-02 Abstract: voltage measurement is of great importance in electronic measurement technology. With the AT89C51 MCU as the core and Proteus software for simulation and debugging, the voltage detection system is designed. The system has the advantages of easy operation, fast processing speed, high stability and high cost performance, and has a certain value of use compared with the traditional circuit. Key words: Proteus; single chip; AT89C51 单片机系统设计一般包括硬件设计和程序设计两部分[4],调试过程一般分为硬件调试、软件调试和系统调试三个过程。软件调试一般比较容易,但要进行硬件电路调试和系统调试就比较麻烦,因为这两个过程必须在整个电路制作完成或是单元电路制作完成后进行,而且电路板的制作、元器件的安装、焊接费时费力。如果采用单片机系统仿真软件 Proteus,则不用具体的电路板也能够完成以上工作。在使用 Proteus进行系统虚拟开发成功之后再进行实际制作,可提高开发效率,降低开发成本,提高开发速度。 Proteus是一款功能强大的仿真软件。它不仅具有其他 EDA工具软件的仿真功能,也是目前最好的仿真单片机及外围器件的工具。 该系统设计的数值电压表就是在Proteus软件仿真环境下设计并调试成功的。 1电路设计 1.1系统设计思路 该系统主要由测量电压输入电路、A/D转换器模块、数据处理模块和显示电路等部分组成,设计框图如图1所示。测量电压的输入电路,利用分压电路来模拟实现0-10V测量电压的输入信号。A/D转换器模块主要负责把采集来的模拟量转换成数字信号再送给数据处理模块,数据处理模块把接收来的数字量经过处理,转换成能在显示器上显示的十进制数值,并送给显示器模块显示输出。 1.2系统硬件设计 1.2.1 测量电压输入电路 测量电压的输入电路,利用1KΩ电位器的分压电路模拟实现,电位器的可调端连接A/D转换器的IN7输入通道,并在可调端处连接虚拟的直流电压表,当电位器的可调端变化时,通过电位器对电源RV(2)的分压,IN7端就会收到不同的测量电压输入量,同时这个模拟的电压值也会准确的在虚拟直流电压表上显示,这个电压值在电路设计、仿真完成后,以便分析该系统的误差。 1.2.2 A/D转换器 A/D模块是系统的主要组成部分,选用ADC0808芯片,ADC0808是由8路模拟输入通道、地址锁存、译码器等部分组成的逐次逼近式CMOS A/D转换器,电路连接如图3所示,ADC0808的8路模拟输入通道IN0~IN7,通过3位地址线ADDC、ADDB和ADDA进行选择。该系统设计选择IN7作为模拟量输入通道。当地址锁存控制端ALE为高电平时,模拟输入通道地址锁存于ADC0808内部锁存器中,经内部译码电路译码选中相应的模拟通道。转换启动信号控制引脚START接收到高电平脉冲时,就对IN7输入通道的模拟量进行转换,转换时控制引脚EOC是低电平,转换结束时,EOC变为高电平,转换结果存于ADC0808的内部寄存器中。当输出允许信号OE为高电平有效时,暂存在内部寄存器中的数据通过数据端口OUT1~OUT8输出。 1.2.3 数据处理和显示电路 数据处理模块的功能选用单片机AT89C51来完成,AT89C51的P3口8位引脚依次和ADC0808的数据输出端口OUT1~OUT8相连接,当AT89C51的P3口接收到ADC0808送来的转换信号后,通过软件设计,把接收来的信号转换成3位十进制信号,并送给输出模块。 本系统的显示电路选用共阴极四位LED数码管,段选端和AT89C51的P0口相连,用10KΩ的电阻作P0口的上拉电阻。位选端通过P2口的低三位进行控制。电路整体设计如图3所示。 1.3系统软件设计 软件设计流程图[3]如图2所示,ADC0808内部没有时钟电路,本系统设计的外接时钟电路,频率通过AT89C51单片机的定时器T0实现。在主程序初始化部分主要设置定时器T0的初始值、工作方式和控制标志位。主程序开始后,首先在转换启动信号ST端送至少一个启动脉冲信号,接着通过判断EOC的状态,可查询数据是否转换完成。如果完成,设置输出允许信号OE为1,调用输出子程序,输出数据,并且程序结束。否则,继续查询转换状态,模数转换器等待接收新的转换任务。 1.4 系统仿真及分析 为方便系统软件硬件的综合调试,通过Proteus软件进行原理图设计、程序设计和仿真调试,设计仿真结果如图3所示。本系统设计可以显示0-10V电压值,精确到小数点后两位。显示误差可以通过观察输入端的虚拟直流电压表来分析,例如此时,测量输入电压为3.40V,测量显示电压3.39V,误差为0.01。显示误差也可以通过调整ADC0808的基准参考电压来实现。 1.5 结束语 本设计是基于ADC0808设计的电压检测系统。采用AT89C51单片机进行数据控制[5]、处理,结构简单,元件较少,成本较低,用Proteus软件进行仿真调试,操作方便。软件采用C语言实现,程序简单可读写性强,效率高。能够实现八路待测电压测量,还能够自由选择要测量的通道,与传统的电路相比,具有方便操作、处理速度快、稳定性高、性价比高的优点,具有一定的使用价值。 参考文献: [1] 王志伟.电子技术应用项目式教程[M].北京:北京大学出版社,2010. [2] 贾振国. 智能化仪器仪表原理及应用:基于Proteus及C51程序设计语言[M].中国水利水电出版社,2011. [3] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2013. [4] 毛敏.基于 Protues的 16×32点阵 LED汉字显示屏的开发[J].工业仪表与自动化装置,2010(5):96-97. [5] 王永祥.基于Protues的脈冲序列发生器的设计及仿真[J].科学与技术,2013(6):63-65. 【通联编辑:王力】 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。