ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
AD0809 的逻辑结构ADC0809 是8 位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁存器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。和偏文章主要就是说ADC0808/0809与8031单片机接口的三种方式,一起来了解一下。
ADC0808/0809与8031单片机接口设计
ADC0808/0809与8031单片机的硬件接口有三种方式,查询方式,中断方式和等待延时方式。究竟采用何种方式,应视具体情况,按总体要求而选择。这里我们主要谈谈延时方式和中断方式。
1.延时方式
ADC0809编程模式
在软件编写时,应令p2.7=A15=0;A0,A1,A2给出被选择的模拟通道的地址; 执行一条输出指令,启动A/D转换; 执行一条输入指令,读取A/D转换结果。 通道地址:7FF8H~7FFFH
下面的程序是采用延时的方法,分别对8路模拟信号轮流采样一次,并依次把结果转存到数据存储区的采样转换程序。
START:
MOV R1, #50H 置数据区首地址
MOV DPTR, #7FF8H P2.7=0且指向通道0
MOV R7, #08H 置通道数
NEXT: MOVX @DPTR,A 启动A/D转换
MOV R6, #0AH 软件延时
DLAY: NOP
NOP
NOP
DJNZ R6, DLAY
MOVX A, @DPTR 读取转换结果
MOV @ R1, A 存储数据
INC DPTR 指向下一个通道
INC R1 修改数据区指针
DJNZ R7, NEXT 8个通道全采样完了吗
2.中断方式
将ADC0808/0809作为一个外部扩展的并行I/O口,直接由8031的P2.0和脉冲进行启动。通道地址为FEF8H~FEFFH
用中断方式读取转换结果的数字量,模拟量输入通路选择端A,B,C分别与8031的P0.0,P0.1,P0.2(经74LS373)相连, CLK由8031的ALE提供。
INTADC:SETB IT1 选择为边沿触发方式
SETB EA 开中断
SETB EX1
MOV DPTR, #0FEF8H 通道地址送DPTR
MOVX @DPTR,A 启动A/D转换
PINT1:
MOV DPTR, #0FEF8H 通道地址送DPTR
MOVX A, @ DPTR;读取从IN0输入的转换结果存入
MOV 50H, A 50H单元
MOVX @DPTR,A 启动A/D转换
RETI中断返回