在书中看了一些问题,不太理解,求帮忙解答一下

2019-07-15 18:16发布

#include <absacc.h>
#include <reg52.h>
#define uchar unsigned char
#define IN0 XBYTE[0x7ff8]         /*设置AD0809的通道0地址*/ \不明白的地方1
sbit ad_busy = P3^3;                 /*即EOC状态*/

void ad0809(uchar idata * x)      /*采样结果放指针中的A/D采集函数*/
{
    uchar i;
    uchar xdata * ad_adr;
    ad_adr = &IN0;
    for(i=0;i<8;i++)                 /*处理8通道*/
    {   
        *ad_adr = 0;                 /*启动转换*/         //不明白的地方2
        i = i;                               /*延时等待EOC变低*/
        i = i;
        while(ad_busy == 0);    /*查询等待转换结束*/
        x = *ad_adr;            /*存转换结果*/
        ad_adr++;                  /*下一通道*/
    }
}

int main(void)
{
    static uchar idata ad[10];
    ad0809(ad);                   /*采样AD0809通道的值*/

    return 0;
}


问题:
不明白的地方1:为什么IN0的地址是这一个?
不明白的地方2:指针指向的是IN0的地址,*ad_adr指的是IN0这个地址的内容?具体指的是什么?为什                           么启动转换可以转化成这种形式?START的启动不是低电平—高电平—低电平吗?

电路图片:



捕获.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。