基于STCC的数字电压表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。本文设计了一种基于单片机的简易数字电压表。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0804
来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片STC89C5来完成,其负责把ADC0804专送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0804芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过7段数码管显示出来。
2设计总体方案
2.1设计要求
⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。
⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。
⑶电压显示用LED数码管显示,至少能够显示两位小数。
⑷尽量使用较少的元器件。
2.2设计思路
⑴根据设计要求,选择STC89C5单片机为核心控制器件。
⑵A/D转换采用ADC0804实现,与单片机的P1 口相连接。
⑶电压显示采用三个7段LED数码管显示,另外三位数码管显示A/D转换的数字量的值。
⑷LED数码的段选码和位选码均由单片机P0 口经过两片74HC573锁存器输入。
2.3设计方案
硬件电路设计由6个部分组成;A/D转换电路,STC89C5单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图1所示。
图2-1数字电压表系统硬件设计框图
3硬件电路设计
3.1单片机系统
本次课设选择的单片机是STC89C52之所以选择这块芯片,是因为该芯片的各项功能均符合本次课设的指标要求,并且该芯片有很多成熟的资料供我们学习,使用用起来很方便,也有专门的下载程序平台,方便现场调试。
3.2复位电路和时钟电路
单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状
态开始工作。MCS-51单片机有一个复位引脚RST采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms 它们都能很好的工作。
图3-1复位电路
3.2.2时钟电路
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPI执行一条指令的各个微操作所
对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。
本设计系统采用内部时钟方式,禾U用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可
图3-2时钟电路
3.3A/D转换模块
本次课设采用的A/D转换芯片是AD0804,其为逐次比较型A/D转换芯片,它完成一次转换所需时间与其位数和时钟频率有关,位数越少,时钟频率越高,转换时间越短,该芯片的分辨率为8位,转换时间为100卩m,输入电压范围为0~5V。芯片内部具有三态输出锁存器,可直接连接在数据总线上。由于本次显示小数点后两位的电压值,因此A/D0804满
足要求。
3.4LED显示系统设计
LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。在单片机中使用最多的是七段数码显示器。本次采用的是共阴极7 端数码管。并且采用软件译码的方式,既简化了硬件电路又增加了程序编写的灵活性。
表3.1共阴极字段码表
3.4.1 LED显示器与单片机接口设计
由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0 口上外接的上拉电阻来实现。由于数码管的个数较多,因此用两片74HC573锁存器芯片与单片机P0 口相连,分别控制数码管的段选码和位选码。
3.5总体电路设计
此电路的工作原理是:+5V模拟电压信号通过变阻器Re2分压后由ADC0804勺Vin+通道进入(由于使用的Vin+通道,所以Vin-接地),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给
STC89C52芯片的P1 口,STC89C5负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED同时它还通过P0口产生位选信号控制数码管的亮灭。此外,STC89C5还控制ADC0804勺工作。片选CS与单片机的P0A7相连,WR RD分别与P3.6和P3.7相连,数据输出端与P1 口相连。工作是先将CS
置为低电平,即选中该AD转换芯片,/WR随后置低电平,经过短暂延迟后,/WR拉高,随后AD转换器被启动,并且经过(1-8个A/D时钟周期后)时间后,A/D转换结束,转换结果存入数据锁存器,延迟一段时间后,将/RD之低电平,再延迟一段时间后,将端口上的数据读到P1 口上,读走数据后
将/RD拉高,并将CS拉高。
简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘
制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示
的功能,还需要有相应的软件配合,才能达到设计要求。
图5-1总体电路图
4程序设计
4.1程序设计总方案
利用KEIL软件进行程序编写,根据模块的划分原则,将该程序划分初始化模块,A/D 转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图12所示。
图4-1数字式直流电压表主程序框图
5仿真
5.1软件调试
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是
显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。编好程序后,在KEIL平台下对程序进行调试,由于程序代码不多,因此调试也较为顺利,但还是遇到一些问题,因此也学到了不少东西,积累了一些调试经验。
5.2结果显示及误差分析
5.2.1 结果显示
⑴当IN0 口输入电压值为0.50V时,显示结果如图5-1所示,测量误差为0.52V 前三位为实际电压值,后
三位为A/D转换的数值
图
⑵当INO输入电压值为2.00V时,显示结果如图15所示。测量误差为2.01 V。
⑶ 当INO 口输入电压值为3.50V时,显示结果如图16。测量误差为3.52V。
5.2.2误差分析
通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如
下表5.1所示: