protues仿真 AD转换的问题

2019-07-18 13:35发布

AD转换原理图

这是仿真原理图


#include <AT89X51.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dxla=P2^0;
sbit wxla=P2^1;
sbit cs=P3^0;
sbit rd=P3^1;
sbit wr=P3^2;
uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,
                    0x6d,0x7d,0x07,0x7f,0x6f,
                                                0x77,0x7c,0x39,0x5e,0x79,0x71};


void delay(uint ms)   //延时程序
{
        uint i;
        for(;ms>0;ms--)
                {
                for(i=125;i>0;i--)
                        {;}
                }
}


void display(uchar numb)        //三位 数码管显示部分的程序
{
        uchar bai,shi,ge;
        bai=numb/100;
        shi=numb%100/10;
        ge=numb%10;

        wxla=1;
   P0=0xfe;
        wxla=0;
        P0=0x00;                                                   //消影
        dxla=1;
        P0=num[bai];
        dxla=0;
        P0=0xff;
   delay(5);

        wxla=1;
        P0=0xfd;
        wxla=0;
        P0=0x00;
   dxla=1;
        P0=num[shi];
        dxla=0;
        P0=0xff;
        delay(5);

        wxla=1;
        P0=0xfb;
        wxla=0;
   P0=0x00;
        dxla=1;
        P0=num[ge];
        dxla=0;
        P0=0xff;
        delay(5);
}




void main()
{  
        char numb;
        uchar a;
        cs=0;        //cs位片选段  直接将cs拉低即可
        while(1)
   {
                wr=1;
                _nop_();
                wr=0;                                               
                _nop_();                                //启动AD转换       
                wr=1;
                for(a=15;a>0;a--)
                        {
                                display(numb);
                        }                                                //显示数码管 也是延时作用
                P1=0xff;                                           //p1口读前置一       
           rd=1;
           _nop_();
           rd=0;
      _nop_();
           numb=P1;                                //读出P1口到numb
      rd=1;
        }

}   

上面是程序  
要实现的功能是AD转换 在数码管上显示数值   AD芯片是adc0804
用protues仿真时数码管开始可以显示数值 但调节滑动变阻器改变电压后数码管显示没有变化   求大神指点!!!!!




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
tim4146
2019-07-18 18:25
大半夜的,我也没多看。我怀疑你的参考电压那边有问题,图上参考电压使用了二分之一的VCC,然后电位器连接电压输入端的电压范围却是0~vcc。一般来说,输入的电压最大就只有参考电压的样子吧。你这里貌似ADC的数字电路和模拟电路都没分开来,不知道做成硬件会不会出问题哦,干扰挺大的。

一周热门 更多>