首页 理论教育 如何接口MCS-51单片机和ADC0809?

如何接口MCS-51单片机和ADC0809?

时间:2023-06-22 理论教育 版权反馈
【摘要】:ADC0809与MCS-51单片机的连接如图6.5所示。图6.5ADC0809与MCS-51单片机的连接图6.6ADC0809的部分信号连接图6.7有关信号的时间配合启动A/D转换只需要一条MOVX指令。例如,ADC0809转换时间为128 s,相当于6 MHz的MCS-51单片机共64个机器周期。2)查询方式A/D转换器有表明转换完成的状态信号,如ADC0809的EOC端。这里需要说明的是,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,如与D0~D2相连。

如何接口MCS-51单片机和ADC0809?

ADC0809与MCS-51单片机的连接如图6.5所示。电路连接主要涉及两个问题:一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。

1.8路模拟通道选择

如图6.6所示,模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2,即P0.0、P0.1、P0.2,而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H~0FEFFH,此外,通道地址选择以WR作写选通信号,这一部分电路连接如图6.5所示。从图6.5中可以看到,把ALE信号与START信号接在一起,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。图6.7所示为有关信号的时间配合。

图6.5 ADC0809与MCS-51单片机的连接

图6.6 ADC0809的部分信号连接

图6.7 有关信号的时间配合

启动A/D转换只需要一条MOVX指令。在此之前,要将P2.0清零并将最低三位与所选择的通道对应的口地址送入数据指针DPTR中。例如,要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:

MOV DPTR, #FE00H ;送入0809的口地址

MOVX @DPTR, A ;启动A/D转换(IN0)

注意:此处的A与A/D转换无关,可为任意值。

2.转换数据的传送

A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式:

1)定时传送方式

对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如,ADC0809转换时间为128 µs,相当于6 MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(www.xing528.com)

2)查询方式

A/D转换器有表明转换完成的状态信号,如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可知道转换是否完成,并接着进行数据传送。

3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以RD信号有效,OE信号即有效,把转换数据送上数据总线,供单片机接收。所用的指令为MOVX 读指令,仍以图6.4所示为例,则有

MOV DPTR,#FE00H

MOVX A,@DPTR

该指令在送出有效口地址的同时,发出有效信号RD,使0809的输出允许信号OE有效,从而打开三态门输出,使转换后的数据通过数据总线送入累加器A中。

这里需要说明的是,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,如与D0~D2相连。这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。例如,当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:

MOV DPTR,#FE00H ;送入0809的口地址

MOV A,#07H ;D2D1D0=111选择IN7通道

MOVX

@DPTR,A ;启动A/D转换

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈