找回密码
 立即注册
查看: 189|回复: 8

8G1K08A ADC中断进不去是什么原因 | 已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-25 09:47:49
已绑定手机

3

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-3-21 09:43:27 | 显示全部楼层 |阅读模式
#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;


unsigned int PW;

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;

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

    while(1);        

}

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

ADC中断void ADC_Isr() interrupt 5          没有进行中断是什么原因?  请大佬指点!



回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-21 09:48:00 | 显示全部楼层
针对STC8G1K08A ADC中断无法进入的问题,可能的原因如下:<br><br>1. ADC配置错误:请检查ADCCONTR和ADCCFG寄存器配置是否正确。确保ADC使能(ADCCONTR.7 = 1)和中断使能(ADCCONTR.5 = 1)已正确设置。<br><br>2. 中断优先级:检查中断优先级设置,确保ADC中断未被更高优先级的中断屏蔽。<br><br>3. 定时器配置:ADCTIM寄存器用于配置ADC采样时间,确保其值设置合理,避免采样时间过短或过长导致中断无法触发。<br><br>4. 中断向量表:确认中断服务程序(ISR)已正确映射到ADC中断向量(通常为ADCISR)。<br><br>5. 硬件连接:检查ADC输入引脚是否连接正常,确保信号源稳定。<br><br>6. 堆栈溢出:检查堆栈是否溢出,导致中断无法正常响应。<br><br>建议逐步排查以上问题,确保配置正确无误。若问题仍未解决,可提供更详细的代码和硬件连接信息以便进一步分析。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-25 09:47:49
已绑定手机

3

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-3-21 10:12:45 | 显示全部楼层
国芯人*** 发表于 2025-3-21 09:48
针对STC8G1K08A ADC中断无法进入的问题,可能的原因如下:1. ADC配置错误:请检查ADCCONTR和ADCCFG寄存器配 ...

我用的例程,设置都检查过了,发现不了什么问题!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-25 09:47:49
已绑定手机

3

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-3-21 10:17:23 | 显示全部楼层
国芯人*** 发表于 2025-3-21 09:48
针对STC8G1K08A ADC中断无法进入的问题,可能的原因如下:1. ADC配置错误:请检查ADCCONTR和ADCCFG寄存器配 ...

能发一个   STC8G1K08A  ADC中断  详细例程!全部设置好的!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:163
  • 最近打卡:2025-05-02 13:26:59
已绑定手机

56

主题

1319

回帖

2942

积分

荣誉版主

无情的代码机器

积分
2942
发表于 2025-3-21 10:34:26 | 显示全部楼层
手册里设置的是P1.0 为 ADC 口,P5.5你设置的有问题
截图202503211034227637.jpg
截图202503211032538556.jpg
截图202503211033474003.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-25 09:47:49
已绑定手机

3

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-3-21 12:18:05 | 显示全部楼层
erci*** 发表于 2025-3-21 10:34
手册里设置的是P1.0 为 ADC 口,P5.5你设置的有问题

更改过还是没有用!估计那里还有问题!

点评

测了下可以进中断,你是如何观察没进中断的呢?另外用的哪个板子,自己的板子电路图也可以贴一下看看  详情 回复 发表于 2025-3-21 14:01
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:163
  • 最近打卡:2025-05-02 13:26:59
已绑定手机

56

主题

1319

回帖

2942

积分

荣誉版主

无情的代码机器

积分
2942
发表于 2025-3-21 14:01:09 | 显示全部楼层
WZQ4*** 发表于 2025-3-21 12:18
更改过还是没有用!估计那里还有问题!

拿擎天柱板子测了下可以进中断,你是如何观察没进中断的呢?另外用的哪个板子,自己的板子电路图也可以贴一下看看

截图202503211408353974.jpg
  1. #include "Ai8051U.H"
  2. #include "intrins.h"
  3. unsigned char Led = 0x01;
  4. void main()
  5. {
  6.         P0M0 = 0x00;
  7.         P0M1 = 0x00;
  8.         P1M0 = 0x00;
  9.         P1M1 = 0x00;
  10.         P2M0 = 0x00;
  11.         P2M1 = 0x00;
  12.         P3M0 = 0x00;
  13.         P3M1 = 0x00;
  14.         P4M0 = 0x00;
  15.         P4M1 = 0x00;
  16.         P5M0 = 0x00;
  17.         P5M1 = 0x00;
  18.                 P2 = ~Led;
  19.                
  20.     P5M0 = 0x00;                                //设置P5.5为ADC口
  21.     P5M1 = 0x01;
  22.     P_SW2 |= 0x80;
  23.     ADCTIM = 0x3f;                              //设置ADC内部时序
  24.     P_SW2 &= 0x7f;
  25.     ADCCFG = 0x0f;                              //设置ADC时钟为系统时钟/2/16
  26.     ADC_CONTR = 0x85;                           //使能ADC模块  P5.5为ADC口
  27.     EADC = 1;                                   //使能ADC中断
  28.     EA = 1;
  29.     ADC_CONTR |= 0x40;                          //启动AD转换
  30.     while(1);        
  31. }
  32. void ADC_Isr() interrupt 5
  33. {
  34.           //清中断标志
  35.           ADC_CONTR &= ~0x20;                        
  36.           //读取 ADC 结果
  37.           //P2 = ADC_RES;
  38.                 Led =Led<< 2;
  39.                 if(Led==0){
  40.                         Led=0x01;                       
  41.                 }
  42.                 P2=~Led;
  43.                 //继续 AD 转换
  44.     ADC_CONTR |= 0x40;                          //继续AD转换
  45.    
  46. }
复制代码


三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-25 09:47:49
已绑定手机

3

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-3-22 18:19:22 | 显示全部楼层
谢谢各位大佬!问题解决了!就是把Keil   重新安装了几次 !反正可以进ADC中断了!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-25 09:47:49
已绑定手机

3

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-3-22 18:22:55 | 显示全部楼层
erci*** 发表于 2025-3-21 14:01
拿擎天柱板子测了下可以进中断,你是如何观察没进中断的呢?另外用的哪个板子,自己的板子电路图也可以贴 ...

谢谢!有了你的测试OK的程序!  只有其它原因了!重新安装Keil   终于可以进ADC中断了!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 17:29 , Processed in 0.142348 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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