求大神帮我看看下面关于51单片机中AD转换,使用的是ADC0808,为什么显示不出来电压??? 5

#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitCLOCK=P3^4;sbitSTA... #include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit CLOCK=P3^4;
sbit START=P3^5;
sbit EOC=P3^6;
sbit OE=P3^7;
uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code duan[]={0x01,0x02,0x04,0x08};
uchar result;
uint bai,shi;
void delay(uchar i)
{
uint j;
for(;i>0;i--);
for(j=0;j<100;j++);
}
void AD()
{
OE=0;
START=0;
START=1;
START=0;
while(!EOC);
OE=1;
result=P1;
}
void display()
{
bai=result/51;//计算并得到最高位
shi=result%51;//计算并得到中间位
while(1)
{
uint z,wei;
for(z=2;z<4;z++)
{
P2=duan[z];
switch(z)
{
//case 1:wei=num[1];break;
case 2:wei=num[bai];break;
case 3:wei=num[shi];break;
}
P0=wei;
delay(5);
}
}
}
void main()
{
result=0;
TMOD=0x02;
TH0=0x216;
TL0=0x216;
IE=0x82;
TR0=1;
AD();
display();
}
void Timer0_INT()interrupt 1
{
CLOCK=!CLOCK;
}

仿真中ADC0808能输出数据,但P1口不知道为什么始终是0xff没变化。
展开
 我来答
朱可星
2014-05-06 · TA获得超过913个赞
知道小有建树答主
回答量:1860
采纳率:91%
帮助的人:338万
展开全部
端口预读必须先 全置 高电平,然后读 信号
追问
是不是加一条P1=0xff,结果也一样啊???
追答
这要看你端口连线是否正确了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2014-05-06 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:8318万
展开全部
ALE ,没有接上?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
回卜去的2009
2014-05-06 · 超过23用户采纳过TA的回答
知道答主
回答量:52
采纳率:100%
帮助的人:45.3万
展开全部
你程序死在void display()里的while(1)里了吧?break能出去么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式