A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后才能进行传送。为此可采用下述三种方式。
(1)定时传送方式。
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如,ADC0809转换时间为128μs,相当于6MHz的51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式。
A/D转换芯片有表明转换完成的状态信号,如ADC0809的EOC端,因此可以用查询方式测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式。
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确认转换完成,即可通过指令进行数据传送。首先送出口地址并作选通信号,信号有效时,OE信号即有效,再把转换数据送上数据总线,供单片机接收。
这里需要说明的是,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,如与D0~D2相连。
在图10-3中EOC信号经过反相器后送到单片机,因此可以采用查询该引脚或中断的方式进行转换后数据的传送。
ADC0809与51单片机的硬件接口最常用的是查询和中断方式。(www.xing528.com)
(1)查询方式。
查询方式下ADC0809与单片机的硬件接口如图10-6所示。
图10-6 查询方式下ACD0809与单片机的接口
ADC0809的时钟由ALE两分频后提供,其频率为500kHz。在编程时,令P2.5=0,A2A1A0给出被选择的模拟通道地址,地址为xx0xxxxxxxxxxA2A1A0B,执行一条外部数据存储器输出指令,锁存模拟通道地址,同时启动A/D转换。然后查询等待,当P1.0=EOC=1,表明A/D转换结束,再执行一条外部数据存储器输入指令,读取A/D转换结果。
(2)中断方式。
中断方式下ADC0809与单片机的硬件接口如图10-7所示。ADC0809的时钟由ALE两分频后提供,其频率为500kHz。使用A/D转换结束信号EOC作为中断请求信号,反相后接到单片机的外部中断请端。
图10-7 中断方式下ACD0809与单片机的接口
在编程时,令P2.5=0,A2A1A0给出被选择的模拟通道地址,地址为xx0xxxxxxxxxxA2A1A0B,执行一条外部数据存储器输出指令,锁存模拟通道地址,同时启动A/D转换。然后,当A/D转换结束时EOC=1,,向CPU申请中断,在中断服务程序中,执行一条外部数据存储器输入指令,读取A/D转换结果。同时可根据需要再次启动A/D转换。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。