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

时间:2022-08-18 06:58:18

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

摘要:本文所设计的是一种以单片机AT89C52作为核心的数字电压表,利用美国TI公司生产的12位串行模数转换器件TLC2543来进行模数转换,并将所测电压值在四位数码管上显示出来,同时带有界限报警功能。分析介绍了基于AT89C52数字电压表的硬件设计和软件设计。

关键词:AT89C52 模数转换 TLC2543

中图分类号:TP368.12 文献标识码:A 文章编号:1007-9416(2012)02-0110-01

1、引言

随着当今科学技术的不断发展和进步,电压测量已经成为电子工作和生活当中必不可少的手段,而且对测量的精度和范围也越来越高。数字电压表主要是利用AD转换技术,将连续变化的模拟电压量转换成离散的数字量并加以显示出来的仪器。

2、硬件设计

该系统主要包括以下几个模块:时钟模块、复位模块、控制模块、A/D转换模块、显示模块以及报警模块等,其中时钟模块和复位模块在电路中必不可少的部分。

时钟模块选择频率为11.0592MHz的晶振,由于是在Proteus仿真,则频率大小通过软件设置来完成。复位模块包括上电复位和手动复位两种方式,按钮S1就是用来实现手动复位操作的。控制模块比较简单,主要是以单片机AT89C52为控制核心,但是它要通过软件编写程序再载入单片机中,才能实现处理和控制功能。

A/D转换模块是本系统中最为关键的部分,它要实现将采集到的连续变化的模拟电压量转换成离散的数字量的功能,为此我们选择了TLC2543芯片,它是美国TI公司生产的12位串行模数转换器件,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,可以节省AT89C52的I/O资源,且价格适中,分辨率较高,在仪器仪表中广泛应用。

显示模块采用四位一体7端BCD数码管来动态扫描显示。AT89C52的P0口作为四位 LED 数码管动态显示的段码控制,P2.0~P2.3引脚作为四位LED数码管动态显示的位码控制。报警模块主要由一个模拟扬声器LS1组成。系统硬件电路仿真图见图1所示。

3、软件设计

系统程序的内容一般包括:延时子程序、显示子程序、数据采集子程序、报警子程序和主程序等等。主程序流程图见图2所示。

一开始给系统上电,系统会自动复位一次,对AT89C52、TLC2543以及数码管进行快速初始化。我们选用TLC2543的0号通道作为模拟量电压信号输入口。在没有将系统接入待测电压电路时,数码管会默认显示“0000”的状态。当系统接入待测电压的电路当中时,TLC2543的0号通道就会采集模拟量电压输入信号,通过TLC2543和AT89C52的转换处理,最终将所测的四位电压值在数码管上显示出来。其中四位一体数码管必须通过对AT89C52进行软件编程来实现动态扫描显示。

在proteus软件仿真当中,待测电压电路以一个滑动变阻器RV1来简单代替。将TLC2543的0号通道口接线接到变阻器的滑动端,当滑动端移动时,系统所测的电压值就会随之跟着变化。为了与真实的电压值相比较,在其之间使用一个虚拟电压表来测量电压真实值。同时,系统每次都会自动判断所测电压值是否已经达到系统量程的两极限值,也就是0V和5V。如果达到了这两个值,系统会自动发出报警提示。

在如图1当中,数码管显示的测量电压值是2.798V,而虚拟电压表的值是+2.80V。经过多次测验,可以发现所设计的数字电压表的最大误差是0.002V。

4、结语

本次对数字电压表的软硬件设计,主要是在proteus中硬件仿真,将keil软件编译生成的hex程序文件加载到核心芯片中来实现的。所设计的数字电压表可以测量0~5V的电压值,经过反复的测试和比较,得知所测电压值的最大误差是0.002V。它具有结构简单、精度高、实用性强、操作简单的优点。

参考文献

[1]张洪润,易涛.单片机应用技术教程[M].清华大学出版社,2003.

[2]郑锋.51单片机典型应用开发范例大全[M].北京:中国铁道出版社,2011.

[3]沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2003.

[4]刘敏娜,潘宏侠,王乔.基于51单片机的数字电压表仿真设计[J].山西电子技术,2011年第2期.

上一篇:嵌入式软件的可配置构件模型 下一篇:基于WLAN的智能抄表系统