本帖最后由 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);
- }
|