项目4 数字电位器在AD转换中的应用电路
设计任务
目前,数字电位器以其调节准确、方便,性能稳定、无噪声,具有可编程能力等特点,在电子工程技术中得到了广泛应用。本设计将用数字电位器取代传统的机械电位器,使输入的模拟量更加精确可调,AD转换后输出的数字量更准确。
总体思路
数字电位器是用数字信号控制电位器滑动端位置的新型器件。本设计选用MCP4131-502芯片作为串行信号控制的数字电位器。本设计通过数字电位器提供0~5V的模拟电压,经AD转换变为数字量,然后通过单片机数据处理显示在数码管上。本设计的核心是通过数字电位器的应用使输入的模拟量更加精确。
系统组成
数字电位器在AD转换中的应用电路主要分为以下4个模块。
模拟电压输入电路:提供0~5V的模拟电压,通过单片机控制数字电位器,精确控制输入的模拟电压。
AD转换电路:通过AD转换,将模拟电压转换为数字量,便于单片机处理。
单片机电路:通过单片机采样,向数字电位器发送控制信号,驱动数码管显示。
数码管显示电路:将采样后的数字量显示在数码管上。
数字电位器在AD转换中的应用电路系统框图如图4-1所示。
图4-1 数字电位器在AD转换中的应用电路系统框图
模块详解
数字电位器在AD转换中的应用电路如图4-2所示。下面分别对数字电位器在AD转换中的应用电路的各模块进行详细介绍。
图4-2 数字电位器在AD转换中的应用电路
1.模拟电压输入电路
模拟电压输入电路如图4-3所示,其中MCP4131-502芯片的引脚功能如下。
1引脚为片选信号端,低电平有效; 5引脚为电位器0A端P0A;
2引脚为时钟信号端SCK; 6引脚为电位器抽头端P0W;
3引脚为串行数据输入端SDI/SDO; 7引脚为电位器0B端P0B;
4引脚为接地端VSS(图4-3中未画出); 8引脚为电源端VCC(图4-3中未画出)。
本设计通过单片机控制数字电位器,从而输入0~5V模拟电压到ADC0809芯片。
2.AD转换电路
AD转换电路如图4-4所示。本设计采集ADC0809芯片的IN0引脚上的模拟量,故将MCP4131-502芯片的P0W引脚和ADC0809芯片的IN0引脚连接。ADC0809芯片的模拟通道地址选择信号端ADDA、ADDB、ADDC引脚都接地,这样地址信号000选中的转换通道为IN0引脚。ADC0809芯片的地址锁存允许信号端ALE引脚为高电平有效,故接VCC引脚,则ADDA、ADDB、ADDC 3引脚上的3位地址被锁存。ADC0809芯片的启动信号端START引脚为正脉冲有效,和单片机的P3.3引脚连接。当单片机的P3.3引脚为高电平时,则启动AD转换。
图4-3 模拟电压输入电路
图4-4 AD转换电路
本电路设计为单极电压输入,VREF(+)引脚接+5V,用于提供片内DC电阻网络的基准电压。CLOCK引脚与1MHz有源晶振的输出引脚相连。转换结束信号端EOC引脚在AD转换过程中为低电平,AD转换结束时为高电平,与单片机的P3.4引脚相连。当AD转换结束时,单片机读取AD转换结果。输出允许信号端OE引脚接单片机的P3.2引脚,且为高电平有效。当单片机将P3.2引脚置高电平时,才可以从三态输出锁存器取走AD转换完的数据。ADC0809芯片的数字量输出端OUT1~OUT8引脚接单片机的P1.7~P1.0引脚。
3.单片机电路
单片机电路主要进行内部程序处理,实现采样、控制数字电位器和驱动数码管显示等功能。单片机电路如图4-5所示。其中,C1、C2及X1构成晶振电路,其作用是为系统提供时钟信号。
图4-5 单片机电路
1)控制数字电位器功能
在本设计中,通过单片机控制数字电位器。单片机的P1.0、P1.1和P1.2引脚分别接数字电位器的SDI/SDO、SCK和引脚。当引脚处于低电平时,单片机通过SDI/SDO串行移位输入16位命令字,在SCK引脚信号的每个上升沿时刻输入1位命令字。如图4-6所示,KEY1和KEY2端接单片机P3.4和P3.5中断引脚。通过按键S1和S2调节数字电位器,实现输入的模拟电压增/减。
图4-6 按键控制电位器
2)采样功能
单片机通过对ADC0809芯片的控制,实现数据采样功能。具体原理在AD转换电路中已详述。
3)驱动数码管显示功能
单片机通过与数码管的连接,驱动数码管显示。具体原理将在数码管显示电路中详述。
4.数码管显示电路
本设计采用4位共阴数码管,如图4-7所示。根据图4-5可知,P2.7~P2.0引脚驱动数码管8位段选信号,P1.4~P1.7引脚驱动4位位选信号。整个数码管显示采用多维数码管动态扫描显示的方法。
图4-7 数码管显示电路
以5V输入模拟电压为例,AD0809芯片的输出数据为
式中,Vin为输入模拟电压;Vout为输出数据。当输入模拟电压为5V时,输出数据为255V,将255×2=510V,510×98.0%=499.8V,然后将其取整后小数点左移两位,即显示为“4.99”。
总体电路仿真
在Proteus中,对上述的总体电路进行仿真,改变数字电位器的电阻值,观测显示结果的变化,如图4-8~图4-11所示。
1.输入模拟电压为0V
由图4-8的仿真结果可以看出,在输入模拟电压为0V时,数码管显示为“000”。
图4-8 总体电路仿真1
2.输入模拟电压为1V
由图4-9的仿真结果可以看出,在输入模拟电压为1V时,数码管显示为“055”。
图4-9 总体电路仿真2
3.输入模拟电压为2V
由图4-10的仿真结果可以看出,在输入模拟电压为2V时,数码管显示为“105”。
图4-10 总体电路仿真3
4.输入模拟电压为4V
由图4-11的仿真结果可以看出,在输入模拟电压为4V时,数码管显示为“206”。
图4-11 总体电路仿真4
由以上的仿真结果可知,本设计的电路基本可以完成设计要求。
程序设计
在本次设计中所用到的单片机程序如下:
电路板布线图(见图4-12)
图4-12 电路板布线图
实物照片(见图4-13)
图4-13 实物照片
思考与练习
(1)为了使数码管显示亮度提高,在原设计上应怎样处理?
答:在数码管位选端接入上拉电阻。
(2)多位数码管动态显示的原理是什么?
答:各个数码管的段码都是P0接口的输出值,即各个数码管在每一时刻输入的段码是一样的。为了使其显示不同的数字,可采用动态显示的方法,即先让最低位数码管被选通显示,经过一段延时,再让次低位数码管被选通显示,再延时,依次类推。由于视觉暂留,只要延时的时间足够短,就能使各个数码管的显示看起来稳定、清楚。
特别提醒
(1)在设计印制电路板时,晶体和电容应尽可能安装在单片机附近,以减少寄生电容的影响,保证振荡器稳定和可靠的工作。为了提高稳定性,应采用NPO电容。
(2)在Protues软件中,没有ADC0809芯片的仿真模型,所以使用了ADC0808芯片的仿真模型来代替它。在实际电路制作中,最常用的是ADC0809芯片。