找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 28|回复: 0
打印 上一主题 下一主题
收起左侧

请教一下单片机代码读取P1.0 P1.1adc为啥读取不到数值

[复制链接]
跳转到指定楼层
楼主
ID:611626 发表于 2025-7-26 12:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <STC15F2K60S2.H>
void InitADC(void)
{
P1ASF = 0x03;
ADC_RES = 0;        
ADC_CONTR = 0x80;
_nop_();           // 等待ADC稳定
    _nop_();
    _nop_();
    _nop_();
        
}
unsigned int GetADCResult(unsigned char ch)
unsigned int result;
ADC_CONTR = (ADC_CONTR & 0xF8) | (ch & 0x07);
ADC_CONTR |= 0x08;
_nop_();
    _nop_();
while (!(ADC_CONTR & 0x10));
ADC_CONTR &= ~0x10;
result = (ADC_RES << 2) | (ADC_RESL & 0x03);
   
    return result;
}
void main(void)
{
    unsigned int voltage = 0;  //
    unsigned int current = 0;  //
while(1)
    {
                        // 采集电压值(通道0:P1.0)
        voltage = GetADCResult(0);
        // 电压转换.最大数3000
       voltage = (voltage * 3000) / 1023; //3000
   
                        //voltage = 2999;
                        // 采集电流值(通道1:P1.1)
       current = GetADCResult(1);
current = (current * 1000) / 1023;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表