摘要:为了进步电压表的丈量精度和性价比,提出了一种以AT89C51单片机为操控中心的,根据Proteus仿真技能的数字电压表规划计划。详细介绍了数字电压表的硬件电路规划和软件编程办法,并运用Proteus软件进行了仿真调试。成果标明,所规划的数字电压表结构简略,性价比高,并具有较高的丈量精度;一起,也证明了Proteus仿真软件的运用,能够有用地缩短单片机体系的开发周期,下降开发本钱。
关键词:数字电压表;Proteus;仿真规划;单片机
跟着现代电子规划手法的迅速发展,EDA仿真技能也越来越多地应用于实践电路规划中。EDA技能经过先树立电路模型,然后将核算机仿真成果应用于实践电路规划中,这样既下降了本钱,又缩短了研发周期。
Proteus是由英国Labcenter公司开发的一个嵌入式体系仿真与开发渠道,是现在世界上最盛行的EDA仿真软件之一。它具有模仿电路和数字电路仿真功用,支撑干流单片机及其外围电路所组成体系的仿真;能够供给软件调试功用,支撑与Keil、MPLAB等单片机开发环境的衔接调试,并具有强壮的原理图绘图等功用。
为了进步电压表的性价比和丈量精度,本文以AT89C51单片机为操控中心,运用Proteus仿真技能完结了一种数字电压表的规划。经过该数字电压表的规划进程,也充沛体现出Proteus软件在单片机操控体系的规划、调试进程中的实用性。
1 体系结构及作业原理
根据AT89C51单片机的数字电压表体系结构框图如图1所示。该数字电压表首要由AT89C51单片机、信号调度电路、A/D转化器、LED显现电路、电源电路、复位电路以及时钟电路等几部分组成。
端接高电平,体系无需扩展片外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/(2×50 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仿真的体系规划办法具有必定通用性,也可用于其他单片机体系的开发中。