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

STC8H第15路采样固定输出0X3FF

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2024-07-17 19:39:42

9

主题

22

回帖

199

积分

注册会员

积分
199
发表于 2023-5-29 23:36:56 | 显示全部楼层 |阅读模式
本帖最后由 liuyuhe 于 2023-5-29 23:40 编辑

MCU:STC8H1K08

工作频率:22.118
VCC:5V
ADC_VRef+:5V

  1. void GPIO_Init (void)     
  2. {
  3.     //设置IO端口模式
  4.     P0M0 = 0x00; P0M1 = 0x00;
  5.     P1M0 = 0x14; P1M1 = 0x03;
  6.     P2M0 = 0x00; P2M1 = 0x00;
  7.     P3M0 = 0x1c; P3M1 = 0x6c;
  8.     P4M0 = 0x00; P4M1 = 0x00;
  9.     P5M0 = 0x00; P5M1 = 0x00;
  10.     P6M0 = 0x00; P6M1 = 0x00;
  11.     P7M0 = 0x00; P7M1 = 0x00;
  12.     P1IE = 0xfc;
  13.     P3IE = 0x9f;
  14.     P_SW2 |= 0x80;                              //使能XFR
  15.     P_SW2 |= 0x30;                               //切换<i>I2C引脚</i>SCL_4/P3.2, SDA_4/P3.3
  16. }
复制代码
  1. void ADC_init(void)
复制代码
//串口这么用的采的是第15路 1.19V内置电压
TI = 1;        

printf("adc4:%d\n",GitADC(15));        
TI = 0;








仿真显示ADCbuff值为 0x3f,串口使用pintf()函数输出的是1024附近的值

原理图

原理图
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2024-07-17 19:39:42

9

主题

22

回帖

199

积分

注册会员

积分
199
发表于 2023-5-30 08:57:29 | 显示全部楼层
  1. int GitADC (unsigned char CH)
  2. {
  3.     int ADCbuff;
  4.         ADC_RES = 0;
  5.         ADC_RESL = 0;
  6.     CH &= 0xf0;
  7.     ADC_CONTR |= CH;
  8.     ADC_CONTR |=0x40;
  9.     Delay500us();
  10.     ADCbuff = ADC_RES<<8;
  11.     return ADCbuff |=ADC_RESL;
  12. }
复制代码

  1. void ADC_Init(void)
  2. {
  3.     ADCTIM = 0x2A;                              //����ADC�ڲ�ʱ��
  4.     ADCCFG = 0x20;                              //右对齐
  5.         ADC_RES = 0;
  6.         ADC_RESL = 0;
  7.     ADC_CONTR = 0xc0;                           //ʹ�ܲ�����ADCģ��
  8. }
复制代码

  1. void ADC_Isr() interrupt 5
  2. {
  3.     ADC_CONTR &= ~0x20;                         //���жϱ�־
  4. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2024-07-17 19:39:42

9

主题

22

回帖

199

积分

注册会员

积分
199
发表于 2023-5-30 08:59:45 | 显示全部楼层
  1.         TI = 1;
  2.         //printf("VREF:%d\n",GitADC(0));
  3.         //printf("RREF:%d\n",GitADC(1));
  4.         //printf("VOUT:%d\n",GitADC(14));
  5.         //printf("VIN:%d\n",GitADC(13));
  6.         printf("adc4:%d\n",GitADC(15));
  7.         TI = 0;
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-5-30 09:02:22 | 显示全部楼层
烧录附件例程到芯片里试试,串口1(P3.0,P3.1)打印采样结果,波特率115200,N,8,1。
烧录时, 选择IRC时钟 24MHz

16路ADC轮询-每路16次ADC转换取中间8次求平均值-串口1返回结果.zip

10.98 KB, 下载次数: 85

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2024-07-17 19:39:42

9

主题

22

回帖

199

积分

注册会员

积分
199
发表于 2023-5-30 09:25:03 | 显示全部楼层
乘风*** 发表于 2023-5-30 09:02
烧录附件例程到芯片里试试,串口1(P3.0,P3.1)打印采样结果,波特率115200,N,8,1。
烧录时, 选择IRC时钟  ...

[09:24:26.575]接收←STC8H系列ADC测试程序!
                    
[09:24:26.778]接收←ADC00=0216  
[09:24:26.981]接收←ADC01=0037  
[09:24:27.184]接收←ADC02=0000  
[09:24:27.387]接收←ADC03=0000  
[09:24:27.590]接收←ADC04=0000  
[09:24:27.793]接收←ADC05=0000  
[09:24:27.997]接收←ADC06=0000  
[09:24:28.200]接收←ADC07=0000  
                    
[09:24:28.403]接收←ADC08=1023  
[09:24:28.606]接收←ADC09=1023  
[09:24:28.809]接收←ADC10=1018  
[09:24:29.028]接收←ADC11=1018  
[09:24:29.231]接收←ADC12=1023  
[09:24:29.426]接收←ADC13=0084  
[09:24:29.629]接收←ADC14=0967  
[09:24:29.832]接收←Bandgap=0243
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-5-30 09:29:41 | 显示全部楼层
用例程测试没问题,内部参考电压根据15通道采样值计算出来差不多是1.19V左右:

1.png

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 08:14 , Processed in 0.432585 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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