微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Proteus的数字电压表仿真设计

基于Proteus的数字电压表仿真设计

时间:10-15 来源:互联网 点击:

d.jpg

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。最后,点击运行按钮,进行软硬件交互仿真。

e.jpg

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

f.jpg

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top