基于单片机的直流电动机转速控制系统设计 下载本文

图2-10 ADC0809引脚

各引脚的功能如下:

IN0~IN7:8个通道的模拟量输入端。可输入0~5V待转换的模拟电压。 D0~D7:8位转换结果输出端。三态输出,D7是最高位,D0是最低位。 A、B、C:通道选择端。当CBA=000时,IN0输入;当CBA=111时,IN7输入。

ALE:地址锁存信号输入端。该信号在上升沿处把A、B、C的状态锁存到内部的多路开关的地址锁存器中,从而选通8路模拟信号中的某一路。 START:启动转换信号输入端。从START端输入一个正脉冲,其下降沿启动ADC0809开始转换。脉冲宽度应不小于100~200ns。

EOC:转换结束信号输出端。启动A/D转换时它自动变为低电平。 OE:输出允许端。

CLK:时钟输入端。ADC0809的典型时钟频率为640kHz,转换时间约为100μs。

REF(-)、REF(+):参考电压输入端。ADC0809的参考电压为+5V。 VCC、GND:供电电源端。ADC0809使用+5V单一电源供电。

当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行

A/D转换,此期间START应保持低电平。在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,为高电平时,表示转换结束。OE为低电平时,D0~D7为高阻状态,OE为高电平时,允许转换结果输出。

3.ADC0809与AT89S52单片机的接口方法

ADC0809与AT89S52单片机的硬件接口有3种形式,分别是查询方式、中断方式和延时等待方式,本题中选用中断接口方式。

由于ADC0809无片内时钟,时钟信号可由单片机的ALE信号经D触发器二分频后获得。ALE引脚的脉冲频率是AT89S52时钟频率的1/6。该题目中单片机时钟频率采用6MHz,则ALE输出的频率是1MHz,二分频后为500KHz,符合ADC0809对频率的要求。

由于ADC0809内部设有地址锁存器,所以通道地址由P0口的低3位直接与ADC0809的A、B、C相连。通道基本地址为0000H~0007H。其对应关系如表2-1所示。

表2-1 0809输入通道地址

地址码 C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 输入 通道 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 控制信号:将P2.0作为片选信号,在启动A/D转换时,由单片机的写信号和P2.0控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。

在读取转换结果时,用单片机的读信号RD和P2.0引脚经或非门后,产生正脉冲作为OE信号,用来打开三态输出锁存器。

其接口电路如图2-11所示。

图 2-11 ADC0809与AT89S52的接口

START信号和OE信号的逻辑表达式为

(2-2)

当AT89S52通过对0000H~0007H(基本地址)中的某个口地址进行一次写操作,即可启动相应通道的A/D转换;当转换结束后,ADC0809的EOC端向AT89S52发出中断申请信号;AT89S52通过对0000H~0007H中的某个口地址进行一次读操作,即可得到转换结果。

注:ADC0809的基准电压可通过基准电压芯片供给,如MAX875,可供给5V基准电压。

图2-12 ADC0809时序图

2.2.3 D/A转换电路设计

由于构成数字代码的每一位都有一定的“权重”,因此为了将数字量转换成模拟量,就必须将每一位代码按其“权重”转换成相应的模拟量,然后再将代表各位

的模拟量相加,即可得到与该数字量成正比的模拟量,这就是构成D/A变换器的基本思想。

DAC0832是具有两个输入数据寄存器的8位DAC,它能直接与AT89S52单片机相连接,其主要特性如下:

(1) 分辨率8位;

(2) 电流输出,稳定时间为1微秒; (3) 可缓冲、单缓冲或直接数字输入; (4) 单一电源供电;

(5) 只需在满量程下调整其线性度; (6) 低功耗,20mW。

1)DAC0832引脚结构及逻辑结构 DAC0832的引脚图如图2-13所示。

图2-13 DAC0832引脚图

各引脚的功能定义如下:

CS:片选端,当CS为低电平时,本芯片被选中。 ILE:数据锁存允许端,高电平有效。

WR1:第一级输入寄存器写选通控制,低电平有效。 XFER:数据传输控制,低电平有效。 WR2;DAC寄存器写选通控制,低电平有效。 DI7~DI0 :8位的数据输入端,DI7为最高位。

IOUT1 :模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。