内容发布更新时间 : 2024/11/16 19:05:42星期一 下面是文章的全部内容请认真阅读。
龙源期刊网 http://www.qikan.com.cn
基于Proteus的LCD数字电压表的设计与仿真
作者:张玲丽
来源:《中国新通信》2014年第22期
【摘要】 本文中数字电压表的控制系统采用AT89C51单片机,A/D转换器采用ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化。还可以方便地进行8路A/D转换量的测量,远程测量结果传送等功能。数字电压表可以测量0~5V的8路输入电压值,并在LCD液晶显示屏上显示出来。
【关键词】 单片机 数字电压表 A/D转换器 液晶显示屏 一、总体框图
设计电压表的总体框图如图1所示。被测电压经A/D转换器转换由模拟值变为数字值,在单片机的逻辑控制下输出到液晶屏上显示出来。 图1 电压表总体框图 二、电压表硬件设计
本设计要实现基于单片机的LCD电压表,计划以51单片机为核心,以ADC0809为A/D转换器,实现模拟电压的数字化测量及显示。输入电压为直流电压,设计电压表的显示位数为3?位,工作电压为5V,最大测量值为5V,测量速率约为2.5次/秒,准确度±0.1%,分辨率0.05%,显示容量16×2个字符。
采用ADC0809作为A/D转换器,AT89S51单片机作为控制部分,把测得的模拟电压值经A/D转换后显示在液晶显示屏上。设计中用ADC0809进行8路数据的采样。
该电压表可测量0~5V直流电压,通过电位器调节产生,显示位数3?位,工作电压5V。A/D转换器将采集到的电压值进行A/D转换后,输出到AT89S51的P2口,再由AT89S51的P3口将电压值送入液晶显示器显示出来。 三、A/D转换模块程序设计
ADC0809 START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换。
龙源期刊网 http://www.qikan.com.cn
ADC0809是8位A/D芯片,数字量表示最大为16进制#FFH,也就是10进制的255.5V对应的是255数字量,3V就是255×3/5。每个数字量表示的模拟量为5/255V,约0.02V,也就是说精度(最小分辨率)为0.02V。如果想提高精度,可以适当降低基准电压。例如降为3V,精度就可以达到0.0118V,但是超过3V的就没有办法表示了。因此,实际电压值应等于测量到的数值乘以5,然后除以255。
本设计中,把AT89S51的P0.0~P0.3作为控制端,P3口作为A/D转换数据的接收端。 四、液晶显示模块程序设计 4.1 1602的初始化设置
控制器内部设有一个数据地址指针,用户可以通过它们来访问全部80字节RAM。 4.2 1602的初始化过程
1602的初始化过程即复位过程。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。初始化过程如下:
写指令38H:显示模式设置;写指令08H:显示关闭;写指令01H:显示清屏;写指令06H:显示光标移动设置;写指令0CH:显示开关及光标设置。 4.3数据采集部分
中断方式使用EOC信号作为向AT89C51的中断申请。在主程序中,向ADC发出首次启动转换信号。当检测到EOC的请求后,转去执行中断服务程序,读取转换结果,并启动下一次转换,后继续执行。 五、模块的仿真
利用C51语言设计波形产生程序,并采用Proteus进行模块化仿真,仿真图如下图2所示。
图2 电压表仿真结果图
当改变连接在AD转换器上的滑动变阻器时,模拟电压源的电压发生了变化,液晶显示屏上的电压也随之改变(两者的值基本上是一致的,准确度±0.1%)。 六、结束语
龙源期刊网 http://www.qikan.com.cn
数字电压表对A/D转换的速度要求不高,因此采用了精度、速度、价格适中的逐次逼进式A/D转换方式。在实时性要求不高的应用领域中,是一种低价格,高性能的A/D转换方法,达到了设计要求。
在本次设计中,通过使用Proteus绘制电路图,制图绘制流程图,汇编语言编写程序,程序运行完毕后,电压表的显示屏上就可以显示出电压数值来。调节电位器,显示数值就会发生变化。
刚开始总是无法正确显示出实际电压值来。后来经过调试,并根据ADC0809的转换特性,修改了程序。再调节电位器的时候,电压表的就可以正确显示实际电压值了。电压表的最小显示值是0V,最大显示值是5V,这与设计目的是一致。电压表显示的电压值精确到小数点后2位,精度为0.02V,一秒钟内大约可以测量2次电压值。液晶显示屏上显示出电压值后,断开电源,再接通电源时,还是会出现电压值,经过实验才发现,是忘了擦除实验板上的程序而引起的,每次擦除程序后,再复位就可以清屏了。
张玲丽,1980,女,汉族,硕士研究生,讲师,主要研究方向:通信技术 电话18071753047, QQ:46763348
湖北省武汉市洪山区珞瑜东路剑桥春天34-804 参 考 文 献
[1]周润景,张丽娜,刘映群.PROTEUS入门使用教程.机械工业出版社.2007 [2]马俊,刘晓林.智能键盘字符输入及LCD显示系统设计.2009 [3]柳金龙.浅谈数字电压表的特点.北京:中国计量,2004 [4]王韬.3位半积分式A/D转换DC电压表.北京:电子世界,2002