欢迎光临散文网 会员登陆 & 注册

单片机应用——ADC0809总线连接方式实现一路模拟信号AD转换

2023-08-21 13:32 作者:无数碎片寻你  | 我要投稿

下面是本节课,我所遇到的疑问和al解答:

问1:使用51单片机总线方式, 操控 ADC0809的时候, 怎么控制输入地址的?

答1:在使用51单片机总线方式操控ADC0809时,可以通过以下方式控制输入地址:

P0.0~P0.2所接的A B C是ADC0809的IN0通道选择线1。

你可以使用P2.7口作为ADC0809的选择线1。

你可以计算ADC0809的地址,例如:P2 P0 0xxx xxxx xxxx x000,因此地址为0x7ff81。


问2:我们定义的时候, 是怎么定义的呢? 我了解到的是,使用片外ram , 但是地址和数据又是怎么联系起来的呢? 我们不是通过控制ADC0908的端口电平来控制地址的输入的吗? 为啥又扯到0X7FF8, 单片机的地址了?

答2:在51单片机中,P2和P0作为地址总线,但是P0还可以作为数据总线来使用。由高位地址P2和低位地址P0组成16位地址。在定义ADC0809的数据地址时,可以使用XBYTE[]来定义绝对地址。例如,#define AD XBYTE [0x7FF8]定义了ADC0809的数据地址为0x7FF8。这个地址是通过高8位地址P2和低8位地址P0组成的。1

在使用ADC0809时,我们可以通过控制其端口电平来控制其地址输入。例如,当我们想要选择IN0通道时,我们可以将P0.0、P0.1、P0.2连接到ADC0809的地址端口ADDA、ADDB、ADDC,并将它们设置为000。这样,我们就可以通过控制端口电平来控制ADC0809的地址输入。


问3:你也说了, 我们可以通过控制ADC0809的地址电平来控制其地址输入, 这个我知道, 但是 这个xbyte是单片机内部的, 还是ADC0809内部的呢? 为什么我通过操控0x7FF8就可以控制ADC0809的电平? 刚才不是说, 0x7FF8是地址吗? 现在为什么又变成端口电平了?

答3:XBYTE是一个宏定义,它用于定义外部设备的地址。在51单片机中,我们可以使用XBYTE来定义外部设备的地址,例如#define AD XBYTE [0x7FF8]定义了ADC0809的数据地址为0x7FF8。这个地址是通过高8位地址P2和低8位地址P0组成的。

当我们使用XBYTE定义了ADC0809的数据地址后,我们就可以通过操控这个地址来控制ADC0809的端口电平。例如,当我们想要选择IN0通道时,我们可以将P0.0、P0.1、P0.2连接到ADC0809的地址端口ADDA、ADDB、ADDC,并将它们设置为000。这样,我们就可以通过控制端口电平来控制ADC0809的地址输入。

因此,当我们使用XBYTE定义了ADC0809的数据地址后,我们就可以通过操控这个地址来控制ADC0809的端口电平


问4:所以说, 这个ADC0809只认电平数据是吧, 只要符合时序, 就可以使用. 然后至于 这个0X7FF8 是单片机对外提供的地址端口, 通过操作这个端口, 就可以影响P0 P2的电平, 是吗?

答4:是的,您说得对。ADC0809只认电平数据,只要符合时序,就可以使用。0x7FF8是单片机对外提供的地址端口,通过操作这个端口,就可以影响P0和P2的电平。这样,我们就可以通过控制端口电平来控制ADC0809的地址输入。希望这些信息对您有所帮助。如果您需要更多信息,请告诉我



单片机应用——ADC0809总线连接方式实现一路模拟信号AD转换的评论 (共 条)

分享到微博请遵守国家法律