模数转换器定位为单片机的外部RAM单元,因此与单片机的连接就有很多种。大体上说ADC0809在整个单片机系统中是作为外部RAM的一个单元定位的。具体到某一个连接方式,定位又有区别。adc0809与单片机典型的连接有以下三种:
ADC0809与51单片机的第一种连接方式
这是数据线对数据线、地址线对地址线的标准连接方式,如图2.2所示。由于ADC0809片内没有时钟,可利用单片机提供的地址锁存信号ALE经D触发器2分频后获得,ALE引脚的频率是单片机时钟频率的1/6,如果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,再经过2分频后为500kHz,恰好符合0809对时钟的要求。
由于ADC0809具有输出三态锁存器,其8位数据输出引脚可直接与数据总线连接。地址译码引脚C、B、A分别与地址总线的低3位A2、A1、A0相连,以选通INO-IN7中的一个通路。P2.7(地址线A15)作为片选信号端,在启动A/D转换时,由单片机的写信号WR和P2.7引脚信号控制ADC的地址锁存和转换启动,由于ALE信号与START信号接在一起,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。图2.3是有关信号的时间配合示意图。
在读取转换结果时,用低电平的读信号RD和P2.7引脚经1级或非门后,产生的正脉冲作为OE信号,用以打开输出三态锁存器。ADC0809的转换结果寄存器在概念上定位为单片机外部RAM单元的一个只读寄存器,与通道号无关。因此读取转换结果时不必关心DPTR 中的通道号如何。
编程概要:
MOV DPTR , # 7FF8H; DPTR 指向0809 通道0
MOVX @DPTR ,A ;端口地址送DPTR,P2.7=0,锁定通道0 并启动转换
--------
MOVX A , @DPTR ;读取转换结果
此方式下单片机采用的是查询方式来控制ADC。还可以采用中断方式的接口电路,只要把图2.2中的EOC引脚经过一非门接到单片机的1INT引脚上即可。采用中断方式可大大节省CPU的时间,当转换结束,EOC发出一个信号向单片机提出中断请求,单片机响应中断请求,由外部中断1的中断服务程序读A/D转换结果,并启动ADC0809的下一次转换,外部中断1采用跳沿触发方式。
程序如下:
INT1: SETB INT1 ;外部中断1初始化编程
SETB EA ;CPU开中断
SETB EX1 ;选择外中断为跳沿触发方式
MOV DPTR, #7FF8H ;端口地址送DPTR
MOV A, #00H
MOVX @DPTR, A ;启动0809对IN0通道转换
„ ;完成其他工作
中断服务程序:
PINT1:MOV DPTR,
#7FF8H ;读取A/D结果送内部RAM单元30H
MOVX A, @DPTR MOV 30H, A
MOV A, #00H ;启动对IN0的转换
MOVX @DPTR,A
RETI
ADC0809与51单片机的第二种连接方式
ADC0809的数据线有一特点:只能出不能进。通常芯片的地址线只能进不能出。因此可以在把51单片机的8 位数据线接到ADC0809的8位数据线的同时,又把其中的3位直接接到ADC0809的3根地址线以确定通道号。如图2.4所示。通常把51单片机的8位数据线中的低3位D2、D1、D0直接接到ADC0809的3根地址线A2、A1、A0以确定通道号。采用这种连接方式明显可以省去一片74LS373。
编程概要:
MOV A , # 0F8H ; ADC0809 通道0 地址送到A
MOV DPTR , # 7FFFH ; DPTR 指向ADC0809
MOVX @DPTR ,A ;锁定通道0 并启动转换
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
MOVX A , @DPTR ;读取转换结果
ADC0809与51单片机的第三种连接方式
在很多应用场合,51单片机内部的硬件资源,例如AT89S51单片机内部有4kB闪存,128B内部RAM,一个串行口和4个8位并行口等,已经够用。从而不需要外扩RAM或I/O口。当51单片机没有外扩RAM和I/O口时,ADC0809就可以在概念上作为一个特殊的唯一的外扩RAM单元。因此也就没有地址编号,也就不需要任何地址线或者地址译码线。只要单片机往外部RAM写入,就写到ADC0809的地址寄存器中。单片机从外部RAM读取数据,就是读ADC0809的转换结果。基于这种外部RAM的唯一单元概念设计的AT89S51与ADC0809的连接电路如图2.5所示。
编程概要:
MOV A , #0F8H ; ADC0809 通道0 地址送到A
MOVX @R0 ,A ; 锁定通道0 并启动转换
-----
MOVX A , @R0 ; 读取转换结果
三种接口电路各有特点,第一种和第二种接口电路允许多片ADC0809与单片机连接。一般1片0809就能满足控制工程需要,在单片机没有外扩RAM和I/O接口时,第三种接口电路是优选方案。用2片或者更多ADC0809时,第二种接口电路是优选方案。第一种接口电路是在单片机系统有74LS373锁存器的基础上使用比较方便可行。