求助 仿真ADC转换电压,再发送到PC,虚拟终端显示值不正确

2019-07-18 09:11发布

本人小白,用protues仿真电压测量,PC显示的功能。电压2.5v,不应该对应7EH吗?哪里错了?程序:
#include "reg51.h"
#define uchar unsigned char
#define led P1
#define out P0
sbit start=P2^1;
sbit oe=P2^7;
sbit eoc=P2^3;
sbit add_a=P2^4;
sbit add_b=P2^5;
sbit add_c=P2^6;

void delay()
{
    uchar m,n;
        for(m=0;m<250;m++)
        for(n=0;n<250;n++)
        ;
}

void send(uchar dat)
{
    SBUF=dat;
        while(ti==0);
            ;
        TI=0;
}

void main(void)
{
    uchar temp;
        TMOD=0x20;
    SCON=0x40;
    PCON=0x00;
    TH1=0xfd;
    TL1=0xfd;
    TR1=1;
    add_a=0;add_b=0;add_c=0;  //选择ADC0808的通道0
    start=0;
    start=1;
    start=0;  //启动转换
    while(1){if(eoc==1)break;}//等待转换结束
    oe=1;                 //允许输出
        temp=P0;
    oe=0;          //关闭输出
        send(temp);
    delay();
}

N_D(Z)~QCAZ)C8KHK1]JZ1I.png
{VAHQSRQF2J4$HAI$U]@GRN.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。