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