[家电应用] 看看程序有什么问题 SH79F166A ADC模块 液晶显示电压

[复制链接]
2400|8
 楼主| 葱ccf 发表于 2018-6-14 14:27 | 显示全部楼层 |阅读模式
电压数据显示不正常,但改变电压,液晶数据有变化,液晶的代码就不放出来了,我就不知道adc模块初始化有没有问题




#include <SH79F166A.H>
unsigned int ADC_res;
void Init_ADC(void)  //adc初始化
{
        ADCON=0x8e;
        ADT=0X80;
        ADCH|=0X80;
        ADCON|= 0x01;
}
void main()
{
Init_ADC();
while(1)
{

        ADCON|= 0x01;
        while(ADCON & 0x01);
        ADC_res=((ADDH<<2)+ADDL);
        LCD_DisPlay(ADC_res);
}
}
langziwuliao 发表于 2018-6-14 20:17 | 显示全部楼层
没有看出问题来,因为看不懂
740071911 发表于 2018-7-3 10:37 | 显示全部楼层
肯定有问题啊,就没看到清adc标志位
桃花落满山前 发表于 2025-10-30 16:59 | 显示全部楼层
可能问题:1. ADC 初始化不全,未配置通道、参考电压或转换时钟;2. 未等待 ADC 转换完成就读数据(需查 ADIF 标志位);3. 液晶显示前未将 ADC 数值正确换算为电压(如结合参考电压和分辨率);4. 中断使能或优先级设置错误,导致转换异常。需对照手册补全初始化,加转换完成判断,修正数值换算逻辑。
野玫瑰 发表于 2025-11-3 14:10 | 显示全部楼层
程序可能存在的问题:1. ADC 初始化遗漏,如未使能 ADC 模块、未正确配置转换时钟或通道;2. 未等待转换完成标志(ADIF)就读取结果,导致数据错误;3. 电压换算公式错误(未结合参考电压和 AD 位数);4. 液晶显示时序与 ADC 读取冲突,或显示缓冲区未正确更新。需检查配置、等待标志、校准换算、同步时序。
水星限定 发表于 2025-11-12 16:14 | 显示全部楼层
可能问题:1.ADC 初始化不全,如未设正确时钟分频、采样通道或转换模式;2. 未等待 ADC 转换完成就读数据,导致值错误;3. 液晶显示前未将 ADC 值正确换算为电压(如参考电压校准);4. 中断优先级冲突,ADC 中断被屏蔽;5. 引脚复用配置错,ADC 通道未对应正确 IO。需逐项排查。
抱素 发表于 2025-11-13 16:11 | 显示全部楼层
程序可能存在的问题:ADC 初始化是否正确配置时钟源、通道和转换精度;是否等待转换完成再读数据;液晶显示前是否将 ADC 值正确换算为电压(需结合参考电压计算);可能未加软件滤波导致数据波动;或引脚复用配置错误,ADC 通道与液晶引脚冲突。
抱素 发表于 2025-11-13 16:12 | 显示全部楼层
程序可能问题:ADC 初始化是否正确配置通道、参考电压及时钟;是否等待转换完成标志再读数据;电压换算是否有误(需用 ADC 值 × 参考电压 / 满量程值);可能缺软件滤波导致数据跳变;液晶初始化或数据传输时序错误;ADC 引脚与液晶引脚复用冲突未处理。
抱素 发表于 2025-11-14 19:11 | 显示全部楼层
可能问题:ADC 初始化未正确配置时钟源或采样通道;未等待 ADC 转换完成就读取数据;液晶显示前未将 ADC 数值正确转换为电压值(忽略参考电压和位数换算);中断使能与主循环冲突;或未关闭 unused 通道减少干扰。检查转换公式(如电压 = AD 值 × 参考电压 / 4095)及等待转换标志位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部