图2 电压表的工作方式流程图
根据电压表工作方式的流程图进行设计,下面逐个地对每个模块电路进行详细分析:
2.1 主控模块
该数字电压表的主控模块采用89C51单片机,89C51单片机有128B的RAM,4KB的Flash存储器,4个并行I/O口:P0~P3。其中P0口是双向口,作为地址总线及数据总线的分时复用端口;P1口是可供用户使用的准双向I/O口;P2口是8位准双向口,可作地址总线和数据总线口;P3是双功能口,一般使用它的第二功能[1]。主控模块的电路如图3所示:
图3 主控模块电路图
89C51常用的时钟电路设计有两种方式:内部时钟方式和外部时钟方式。89C51内部有一个用于构成振荡器的高增益反相放大器,输入端为19引脚XTAL1,输出端为18引脚XTAL2[2]。在这两个引脚间跨接石英晶体振荡器和微调振荡器,构成一个稳定的自激振荡器,为内部时钟方式,如图3所示。电路中的电容C1、C2值一般为30pF左右,本电路选用22pF.
89C51的复位电路由外部的复位电路实现,通常采用上电自动复位和按钮复位两种方式。为了实现电压表的智能化,本设计采用上电自动复电方式,如图3所示。通过RC电路组成复位电路,当电源接通时,如果VCC的上升时间不超过1ms,单片机就会自动上电复位。
2.2 A/D转换模块
A/D转换器是一种能把输入模拟电压或电流信息变成与其成正比的数字量信息的芯片,实现模拟量到数字量的转换。本设计使用的是ADC0808转换器。
2.2.1 ADC0808引脚说明
ADC0808芯片为28引脚双列直插式封装,在设计中各引脚接线如图4所示。对主要信号引脚的说明如下:
图4 ADC0808与单片机的接线图
(1)IN7~IN0——8路模拟量输入通道。
ADC0808对输入模拟量要求信号单极性,电压范围是0~VCC,若信号过小还要进行放大。其中IN0接电阻测量信号RV,IN1接电压测量信号VV,IN2接电流测量信号AV。
(2)A、B、C——模拟通道地址线。
A为低位地址,C为高位地址,用于对模拟通道进行信号选择[3]。其中A、B、C分别接到AT89C51单片机的P0.0、P0.1、P0.2,故只要向端口地址0C000H分别写入数据00H~07H,即可启动模拟量输入通道0~7进行A/D转换。
(3)ALE——地址锁存允许信号。
由低电平到高电平的正跳变有效,片选信号P2.7和WR信号一起经或非门产生地址锁存信号ALE[4],以便进行A/D转换。
(4)START——转换启动信号。
START信号上升沿时,将所有内部寄存器清零;START信号下降沿时,开始A/D转换。在转换过程中,START信号要保持低电平[5]。片选信号P2.7和WR信号一起经或非门产生ADC0808的启动信号.
(5)OUT1~OUT8——数据输出线。
ADC0808的输出结构为有三态寄存器形式,可以和单片机的数据线直接相连,因此将OUT1~OUT8与单片机的P0口直接对应着连接。
(6)OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。单片机系统选通RD信号和片选信号P2.7一起经或非门与其相接。其中,
OE=0,输出数据线呈高电阻。
OE=1,输出转换得到的数据。
(7)CLK——时钟信号输入端。
ADC0808的内部没有时钟电路,所需时钟信号由外部输入,本电路选择2MHz的时钟输入信号。
(8)EOC——转换结束状态信号。
EOC=0,正在进行转换。
EOC=1,转换结束。
该状态信号既可作为查询的状态标志,又可作为中断请求信号使用。本电路中它作为中断请求信号,通过以非门与单片机的INT1相连。当模数转换结束后,请求单片机数据处理结束。 AT89C51单片机的数字电压表设计+电路图+源程序(3):http://www.youerw.com/zidonghua/lunwen_10026.html