找回密码
 立即注册
查看: 100|回复: 5

AI8H1K17 ADC检测

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-19 10:53:31
已绑定手机

1

主题

1

回帖

13

积分

新手上路

积分
13
发表于 2025-6-17 09:53:35 | 显示全部楼层 |阅读模式
AI8H1K17  P1.0(ADC0)采用官方例程检测1.3V电压实际输出ADC一直为0

/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{   P1M0 = 0x00;                                //设置P1.0为ADC口
    P1M1 = 0x01;
    P_SW2 |= 0x80;
    ADCTIM = 0x3f;                              //设置ADC内部时序
    P_SW2 &= 0x7f;
    ADCCFG = 0x2f;                              //设置ADC时钟为系统时钟/2/16
    ADC_CONTR = 0x80;                           //使能ADC模块
}
/*----------------------------
读取ADC结果
----------------------------*/
uint16 GetADCResult()
{         uint16 ADC_value;
                ADC_CONTR |= 0x40;                      //启动AD转换
                _nop_();
                _nop_();
                while (!(ADC_CONTR & 0x20));            //查询ADC完成标志
                ADC_CONTR &= ~0x20;                     //清完成标志
        ADC_value = ADC_RES;
        ADC_value= (ADC_value<<2)+ (ADC_RESL&0x03);
        return ADC_value;                 //返回ADC结果
}




回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:112
  • 最近打卡:2025-06-29 00:35:48

740

主题

1万

回帖

1万

积分

管理员

积分
17153
发表于 2025-6-17 10:22:20 | 显示全部楼层
截图202506171021064517.jpg


截图202506171021391699.jpg

截图202506171022169740.jpg


截图202506171024445662.jpg


#include "reg51.h"
#include "intrins.h"

sfr     ADC_CONTR   =   0xbc;
sfr     ADC_RES     =   0xbd;
sfr     ADC_RESL    =   0xbe;
sfr     ADCCFG      =   0xde;

sfr     P_SW2   =   0xba;
#define ADCTIM  (*(unsigned char volatile xdata *)0xfea8)

sbit    EADC    =   IE^5;

sfr     P0M1    =   0x93;
sfr     P0M0    =   0x94;
sfr     P1M1    =   0x91;
sfr     P1M0    =   0x92;
sfr     P2M1    =   0x95;
sfr     P2M0    =   0x96;
sfr     P3M1    =   0xb1;
sfr     P3M0    =   0xb2;
sfr     P4M1    =   0xb3;
sfr     P4M0    =   0xb4;
sfr     P5M1    =   0xc9;
sfr     P5M0    =   0xca;

void ADC_Isr() interrupt 5
{
    ADC_CONTR &= ~0x20;                         //清中断标志
    P2 = ADC_RES;                               //读取ADC结果
    ADC_CONTR |= 0x40;                          //继续AD转换
}

void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;

    P1M0 = 0x00;                                //设置P1.0为ADC口
    P1M1 = 0x01;
    P_SW2 |= 0x80;
    ADCTIM = 0x3f;                              //设置ADC内部时序
    P_SW2 &= 0x7f;
    ADCCFG = 0x0f;                              //设置ADC时钟为系统时钟/2/16
    ADC_CONTR = 0x80;                           //使能ADC模块
    EADC = 1;                                   //使能ADC中断
    EA = 1;
    ADC_CONTR |= 0x40;                          //启动AD转换

    while (1);
}


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:112
  • 最近打卡:2025-06-29 00:35:48

740

主题

1万

回帖

1万

积分

管理员

积分
17153
发表于 2025-6-17 10:27:07 | 显示全部楼层

截图202506171027038176.jpg

截图202506171026155395.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:106
  • 最近打卡:2025-06-28 00:08:16

75

主题

6163

回帖

1万

积分

超级版主

积分
12932
发表于 2025-6-17 10:54:29 | 显示全部楼层
用户请先别修改程序, 直接下载"100-STC8系列-ADC转换-串口1(P3.1)返回结果"里的"ADC.hex"测试. 下载时选择主频11.0592MHZ. 测试时, 电脑的串口助手设置115200,8,n,1.
本程序演示ADC查询采样,通过串口1(P3.1)发送给上位机,波特率115200,8,n,1.

本程序适用于10位或12位ADC。

下面为当输入为AVREF*1/4的电压时的测试结果截图,你也贴出你的测试结果截图看看。
未命名.PNG


100-STC8系列-ADC转换-串口1(P3.1)返回结果.rar (63.63 KB, 下载次数: 4)



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-19 10:53:31
已绑定手机

1

主题

1

回帖

13

积分

新手上路

积分
13
发表于 2025-6-19 10:53:31 | 显示全部楼层
这个芯片绝对的颠覆了我想像,既然用VCC做参考电压是要外接到vref的。

点评

这个芯片哪个功能颠覆了你的想像?这么厉害。 ADC参考电压是AVREF,这是固定的,不能改变。  详情 回复 发表于 2025-6-19 13:30
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:106
  • 最近打卡:2025-06-28 00:08:16

75

主题

6163

回帖

1万

积分

超级版主

积分
12932
发表于 2025-6-19 13:30:15 | 显示全部楼层
PB*** 发表于 2025-6-19 10:53
这个芯片绝对的颠覆了我想像,既然用VCC做参考电压是要外接到vref的。

这个芯片哪个功能颠覆了你的想像?这么厉害。
ADC参考电压是AVREF,这是固定的,不能改变。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-29 06:43 , Processed in 0.233172 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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