求大神帮我看看下面关于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没变化。 展开
#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没变化。 展开
展开全部
端口预读必须先 全置 高电平,然后读 信号
追问
是不是加一条P1=0xff,结果也一样啊???
追答
这要看你端口连线是否正确了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ALE ,没有接上?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你程序死在void display()里的while(1)里了吧?break能出去么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询