c - ADC_READ 未达到最大值

标签 c microcontroller lcd adc mikroc

我在 Proteus 中运行一个带有集成 ADC(10 位输出)和 LCD 显示器的微 Controller ,但是当输入 5V 信号时,它只会显示高达 4092mV, 尽管 LCD 非常好,因为我尝试输出其他字符。

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

关于c - ADC_READ 未达到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442174/

相关文章:

c - "Expected expression before ' { ' token"

c - 如何在 C 上设置 unsigned char 数组的值

c - 为什么 "noreturn"函数返回?

c - 如何使用串口控制Arduino板或独立AVR?

c - 微 Controller 编程 - 程序不退出循环

c - STM32F4 HAL I2C只发送地址

c - 转换为C代码时如何导入.h文件?

c++ - 我如何知道 USB 设备是否已在使用中?

C Atmega328P String 到 Int 转换 block RX 中断

c++ - "\x01"[0] 为什么字符串末尾存在[0]