ADC0809的扩展方式是什么?
扫描二维码
随时随地手机看文章
8051单片机扩展ADC0809的两种典型方法如图5-53所示,其差别是确定ADC转换通道的方式不同。
(1)单片机地址总线低8位确定转换通道
在图5-53a中,单片机ALE引脚信号进行二分频后,作为ADC0809的CLK时钟信号。单片机P0口经过锁存器74HC373后的地址总线低8位的A2、A1和A0分别与ADC0809的地址线C、B和A相连,用于确定被转换的通道编号。
图5-53 8051单片机扩展ADC0809的电路原理图
a)单片机地址总线低8位确定转换通道b)单片机数据总线确定转换通道
启动ADC0809转换的指令是“MOVX@DPTR,A”或“MOVX@Ri,A”。例如,对于图5-53a,启动通道6转换的指令可以是:
其中,MOVX指令执行时,地址7FFEH的低8位(A7~A0)和高8位(A15~A8)分别出现在地址总线P0和P2上。由MOVX指令写总线时序(如图5-13所示)可知,单片机ALE的下降沿信号将驱动74HC373锁存P0传送的低8位地址(A7~A0,
其值为0FEH=11111110B),其中A2、A1和A0分别与ADC0809的C、B和A引脚连接,确定了被选中的通道编号是110B=6。另外,由于P2.7为低电平,单片机的WR被或非门取反,使得START和ALE引脚产生如图5-54所示的波形,从而启动ADC0809
转换。
图5-54 8051单片机启动ADC0809转换的引脚波形图
特别需要指出的是:
1)对于图5-53a所示的扩展连接方式向,在ADC0809的启动指令“MOVX@DPTR,A”中,累加器A的值对A-D转换本身没有任何影响,其值可以是任意的。
2)指令“MOVX@DPTR,A”中,与ADC0809通道选择无关的地址位可以是任意值,但推荐将其设置为1,如图5-53a中的单片引脚P2.6~P2.0和P0.7~P0.3。
转换结束后,读取转换结果的指令是“MOVX A,@DPTR”或“MOVX A,@Ri”。例如,对于图5-53a,读取通道6转换结果的指令可以是
由“MOVX A,@DPTR”指令时序(见图5-12)可知,该指令执行时地址7FFEH的高8位和低8位分别出现在P2口和P0口;单片机引脚ALE下降沿信号使74HC373锁存P0上的低8位地址;而P2.7为低电平,使单片机引脚RD的低电平被或非门取反,变成高电平,使ADC0809的OE引脚有效,允许ADC0809由其D7~D0引脚输出8位A-D转换结果;而ADC0809的D7~D0引脚与单片机的P0口相连,在单片机引脚RD为低电平时,P0作为数据线恰好可以将转换结果送入单片机的累加器A。另外,读取转换结果时,仅需要ADC0809的OE引脚高电平有效,地址引脚A、B和C没有任何作用,所以与地址引脚A、B和C对应的地址位可以是任意值,即在“MOVX A,@DPTR”指令中,DPTR的最低3位可以是任意值。
由上述分析可知,指令时序在单片机扩展外部I/O接口时具有重要作用,恰当地利用时序可以使单片机有效地完成对I/O接口的访问。
(2)单片机数据总线确定转换通道
在图5-53b中,没有使用地址锁存器锁存地址总线的低8位地址。在这种连接方式下,启动通道6转换的指令可以是
其中,“MOVX@DPTR,A”指令中累加器A的值决定了ADC0809被转换的通道编号。具体分析如下:
结合图5-13所示的“MOVX@DPTR,A”指令时序图和图5-54所示的ADC0809启动转换引脚波形图可知,ADC0809在其ALE引脚上升沿时锁存器地址引脚A、B和C上的地址信息,用以确定被转换的通道编号。而ADC0809的ALE引脚上升沿信号源于
单片机WR引脚的下降沿。在WR的下降沿时刻,单片机P0是数据线,并且传送的,该数据来自于“MOVX@DPTR,A”中的累加器A。即,对于图5-53c所示的扩展方式,ADC0809在其ALE引脚上升沿时锁存的地址信号来自于单片机的数据总线,因此“MOVX@DPTR,A”送上数据总线的数据(即累加器A中的数)决定了ADC0809转换的通道编号。
由以上分析可知,被“MOVX@DPTR,A”指令送入地址总线的7FFFH的最高位决定了P2.7的状态为0,使得单片机WR引脚的信号被取反后通过“或非”门,从而启动转ADC0809的A-D转换;而该指令送上数据总线的0FEH的最低3位110B对应于ADC0809的C、B和A引脚,在ADC0809的ALE上升沿时刻(单片机WR的下降沿时刻)被锁存以确定A/D转换通道编号。
读取通道6转换结果的指令如下: