我想在数码管上显示ad采集回来的数据在数码管上显示出来,范围本来应该是0~255,可是最大值怎么只能显示出127,为什么uchar read_adc0832(uchar ch)
{
uchar i,a,b;
acs=0;
_nop_();
ack=0;
_nop_();
ad=1; //起始信号
_nop_();
ack=1;
_nop_();
ack=0;
_nop_();_nop_();
ad=1;
_nop_();_nop_();
ack=1;
ack=0;
_nop_();_nop_();
ad=ch;
ack=1;
ad=1;
_nop_();
for(i=0;i<8;i++)
{
ack=1;
_nop_();a=a<<1;
ack=0;
_nop_();
if(ad)
a++;
}
_nop_();_nop_();
for(i=0;i<8;i++)
{
b=b>>1;
if(ad)
b=b|0x80;
ack=1;
_nop_();
ack=0;
_nop_();
}
acs=1;
ack=1;
return a;
}
void display()
{
dat=read_adc0832(1)*500/256;
send_byte(3,dat/100);
delay(100);
send_byte(2,dat%100/10);
delay(100);
send_byte(1,dat%10);
delay(100);
}
呀?
|