我想在数码管上显示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);
- }
呀?
|