打印

大家看看我的adc0816程序,xdata在这里用的对吗?

[复制链接]
2228|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ccjchen|  楼主 | 2007-9-13 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序仿真正确,但是程序中的uchar xdata *ad_adr;当我把 xdata 改为 data 时就会出错,而我用的单片机是AT89C52,外部扩展的数据存储器为flash的sst29sf040,根本就不能用xdata来直接定义外部数据的存储。但是为什么我用声明为xdata时就正确,声明成data型的就不正确呢?#include <absacc.h>#include <reg52.h>#define uchar unsigned char#define IN0   XBYTE[0x8000]void  ad0816(uchar idata *x);void  wait(uchar p,q);void main(){    static uchar idata ad[16];    ad0816(ad);}//adc0809  function...........................................................//void  ad0816(uchar idata *x){   uchar i;   uchar xdata *ad_adr;   ad_adr=&IN0;   for(i=0;i<16;i++)   {     *ad_adr=0;           //启动转换从0通道开始      wait(2,26);         //延时114us      x=*ad_adr;      ad_adr++;   }}void  wait(uchar p,q){   uchar  i,j;                //(2*j+3)*i+4   for (i=p;i>0;i--)      for (j=q;j>0;j--);}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

446

帖子

1

粉丝