unsigned char xdata *ADC; //定义ADC0809端口指针
unsigned char data *ADCdata; //定义ADC0809数据缓冲器指针
ADC=0x7fff; //定义ADC0809
ADCdata=0x70; //定义数据缓冲器地址
----------------------------------------------------------------
第一:我从来没这样用过指针,这样的用法会降低代码的可移植性...这样用我也不知道会不会出问题
----------------------------------------------------------------
*ADC=i; //启动ADC0809
for(a=0; a<50000; a++); //延时一段时间
tmp=*ADC; //读取A/D转换结果
第二:这样延时来做转化结果很不可靠.
----------------------------------------------------------------
其它的问题再看看
printf("%d ",a);
记得这个打印变量最好是a是int、unsigned int的,如果直接用char,就会产生部分乱码。
改为:printf("%d\n",(unsigned int)(*(ADCdata+i)));
试试