早教吧 育儿知识 作业答案 考试题库 百科 知识分享

谁帮我看下ad574芯片的程序,为什么低4位读不到低4位读不出来,关键函数写上,其他的省略uintad574(void){\x05uintADh,ADl;\x05rc=0;\x05A0=0;\x05CS=0;\x05while(adbusy==1);\x05rc=1;\x05A0=0;\x05CS=0;\x05ADh

题目详情
谁帮我看下 ad574 芯片的程序,为什么低4位读不到
低4位读不出来 ,关键函数写上,其他的省略
uint ad574(void)
{
\x05uint AD_h,AD_l;
\x05rc = 0;
\x05A0 = 0;
\x05CS = 0;
\x05while(adbusy==1);
\x05rc = 1;
\x05A0 = 0;
\x05CS = 0;
\x05AD_h = P0;
\x05rc = 1;
\x05A0 = 1;
\x05CS = 0;
\x05AD_l = P0;
\x05return ((uint)(AD_h4)); /* 返回12位A/D转换结果 */\x05
}
void main()
{
\x05while(1)
\x05{
\x05\x05PutCdotInGraph1(12,140,ad574()/10000,0); //LCD显示函数
\x05\x05PutCdotInGraph1(14,140,ad574()%10000/1000,0);
\x05\x05PutCdotInGraph1(16,140,ad574()%1000/100,0);
\x05\x05PutCdotInGraph1(18,140,ad574()%100/10,0);
\x05 PutCdotInGraph1(20,140,ad574()%10,0);\x05
\x05}
}





























▼优质解答
答案和解析
那个RC,A0,你也该注解一下让我们容易搞明白嘛!
我觉得可能是你的这3个信号的时序除了问题,貌似你对了ad-h后想读ad-l,可是重新对读写信号进行控制.
while(adbusy==1);
\x05rc = 1;
\x05A0 = 0;
\x05CS = 0;
\x05AD_h = P0;
rc = 0;
\x05A0 = 0;
\x05CS = 0;
\x05rc = 1;
\x05A0 = 1;
\x05CS = 0;
\x05AD_l = P0;
你改成这样看看行不!