本帖最后由 yueyinji1989 于 2013-3-11 23:16 编辑
想请教个简单问题!
做AD实验的时候,发现数码管的第三位(个位)数在不停闪烁。
改变了显示刷新频率,输入模拟值大小,AD转换等待时间,都是这样现象。请问是什么回事呢?
AD转换代码:
uchar ad_init()
{
//开启AD,并返回转换后数值
uchar adval;
adwr=1;
_nop_();
adwr=0;
_nop_();
adwr=1;
delay(30);//延时30ms
P1=0xff;
adrd=1;
_nop_();
adrd=0;
_nop_();//取值
adval=P1;
adrd=1;
return adval;}
数码管显示代码:
void display(uchar num)
{
//数码管显示
uchar bai,ge,shi;
bai=num/100;
shi=num%100/10;
ge =num%100%10;
//百位
dula=1;
P0=table[bai];
dula=0;
P0=0xff;
wela=1;
P0=0x7e;
wela=0;
delay(5);//延时5ms
//十位
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
wela=1;
P0=0x7d;
wela=0;
delay(5);
//个位
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0x7b;
wela=0;
delay(3);
}
|