ADC_READ未达到最大值

时间:2017-02-24 15:18:34

标签: c microcontroller lcd adc mikroc

我在Proteus中运行带有集成ADC(10位输出)和LCD显示器的微控制器,但输入5V信号时,它只能显示高达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

1 个答案:

答案 0 :(得分:2)

显然我在使用公式时犯了一个错误,在分割时我对数字本身的准确度太高了。

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);;
            }
}