我在Proteus中运行一个微控制器,它集成了ADC(10位输出)和LCD显示器,但是当输入5伏信号时,它最多只能显示4092mV,
虽然液晶显示器是完美的,因为我试图输出其他字符。
这是Proteus的代码和图片。

int tension;
int valeurnum;
char valeurchar[10];

void main() {
    ADCON1=14;
    TRISA=1;TRISB=0;
    Lcd_Init();
    while(1){
            tension=ADC_Read(0);
            valeurnum=(5000/1023)*tension;
            Lcd_Cmd(_LCD_CLEAR);
            Lcd_Cmd(_LCD_CURSOR_OFF);
            IntToStr(valeurnum,valeurchar);
            Lcd_Out(1,1,valeurchar);
            delay_ms(1000);;
            }
}

如果你们对我能做什么或检查有任何想法,或者如果你们需要更多的信息,请告诉我,非常感谢提前和有一个美好的一天!
Proteus Layout

最佳答案

显然我在公式上犯了个错误,在除法的时候,我对数字本身失去了太多的精确性。

float valeurnum;
char valeurchar[20];
void main() {
    ADCON1=14;
    TRISA=1;TRISB=0;
    Lcd_Init();
    while(1){
            valeurnum=ADC_Read(0);
            valeurnum=valeurnum*5000;
            valeurnum=valeurnum/1024;
            Lcd_Cmd(_LCD_CLEAR);
            Lcd_Cmd(_LCD_CURSOR_OFF);
            FloatToStr(valeurnum,valeurchar);
            Lcd_Out(1,1,valeurchar);
            delay_ms(1000);;
            }
}

09-11 19:27