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

我想知道,STC32G12K128的外部中断标志位IE改变机制到底是怎么样的?

[复制链接]

8

主题

20

回帖

1868

积分

金牌会员

积分
1868
发表于 前天 12:58 | 显示全部楼层 |阅读模式
我在89C516RD+上写了一段程序,用来确定,当有按键按下时候,也就是中断源出现的时候,即使没有开启外部中断(EX0=0,EX1=0,EA=0),外部中断标志IE1和IE0依然可以置位,并且即使没有进入中断服务子程序,中断源撤销以后外部中断标志IE1和IE0都可以自动复位

  1.                              JNB IE1,$+7//three bytes
  2.                              SETB P0.3//two bytes
  3.                              SJMP $-5//two bytes
  4.                              CLR P0.3//two bytes
  5.                              SJMP $-9
复制代码


有按键按下时候,IE1置位,P0.3口连接的灯就熄灭,按键松开以后,IE1自动复位,与P0.3口连接的灯又重新亮起,平时的时候灯一直常亮,结果证明思路是完全正确的。

但是我将程序烧录到STC32G12K128上就无法通过了

没有按键按下时候,灯是亮的,按键按下后灯就熄灭了,并且即使按键松开以后,LED灯依然保持熄灭,就说明STC32G12K128的外部中断标志IE1在置位以后,如果没有进入中断程序,外部中断标志IE1和IE0在

撤销外部中断源之后,也是无法自动复位的

于是我又想到,用定时器1,在IE1置位之后1秒钟自动将IE1清零
  1. ;*********************利用定时器1中断清除外部中断标志IE1,@24MHZ*****************
  2.                             $include (address predefined.h)
  3.                              EAXFR EQU 0BAH.7
  4.                              ORG  0FF:0000H
  5.                              LJMP START
  6.                              ORG 0FF:001BH
  7.                              LJMP ISR_TIMER1
  8.                              ORG  0FF:0210H
  9.                        START:
  10.                              MOV SP,#60H
  11.                              SETB EAXFR//允许扩展RAM区特殊功能寄存器(XFR)的访问                                                
  12. ;==============================================================================
  13.                              CLR EX0//关闭外部中断
  14.                              CLR EX1
复制代码

我是在2023年版的屠龙刀开发板上做验证的,采用的是开发板上的按键P3.2和P3.3还有出厂焊接的P2口的LED灯,但是结果是按键松开后,灯会短暂亮起,然后又熄灭了
我主要使用的是传统的8051 MCU,对现在的STC32G12K128不是很了解,所以我想知道现在的外部中断标志位IE1和IE0在中断源存在和中断源撤销的改变机制到底是怎么样的?
回复

使用道具 举报 送花

8

主题

20

回帖

1868

积分

金牌会员

积分
1868
 楼主| 发表于 前天 13:03 | 显示全部楼层
添加代码文字怎么只能显示16行,后面的全部没有了?

                              SETB IT1
;==============================================================================
                             ANL TMOD,#00101111B//配置定时器/计数器1工作在模式2
                             ORL TMOD,#00100000B
                             SETB AUXR.6//定时器1采用1T模式
;==============================================================================
                             MOV WR16,#007EH//对定时器/计数器1进行24分频
                             MOV WR18,#0FEA1H
                             MOV R8,#23
                             MOV @DR16,R8
;=============================================================================
                             ANL P3M0,#11100011B//将p3.2和p3.3引脚
                             ANL P3M1,#11100011B//配置成准双向口
;=============================================================================
                             MOV P2M0,#00H//将p2端口配置成准双向口模式
                             MOV P2M1,#00H                                                 
;=============================================================================
                             MOV WR16,#WORD2(P3NCS)//给P3.2口和P3.3口
                             MOV WR18,#WORD0(P3NCS)//开启施密特触发器
                             MOV R8,#00001100B
                             MOV @WR16,R8

回复

使用道具 举报 送花

已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
发表于 前天 13:12 | 显示全部楼层
我也不懂,建议楼主对比一下二者手册中关于IT0的描述,看是不是这个不同导致的。
回复

使用道具 举报 送花

已绑定手机

2

主题

153

回帖

466

积分

中级会员

积分
466
发表于 前天 13:43 | 显示全部楼层
STC32G12K128下,
IE1和IE0 触发后为1,表示请求中断。
当CPU响应该中断时(即进入中断服务)由硬件清“0”; 在请求没处理前,一直保持1。
文档没有说,外部信号撤消了,这个标志会不会变0,
按理来说,不应该会变0(复位);  因为IEx是一个标志,表示有过信号触发,不代表外部此时此刻的电平。

如果撤消信号标志会复位,那么功能就乱了。没有意义了。

而且是边沿触发,是瞬间的事,如果有撤消,触发后,马上又复位了,相当于不可能中断了。
回复

使用道具 举报 送花

8

主题

20

回帖

1868

积分

金牌会员

积分
1868
 楼主| 发表于 前天 15:08 | 显示全部楼层
jrc*** 发表于 2026-11-5 13:43
STC32G12K128下,
IE1和IE0 触发后为1,表示请求中断。
当CPU响应该中断时(即进入中断服务)由硬件清“0” ...

确实有道理,如果触发以后又撤销,复位,中断就不可能被识别了,我验证的时候也确实是,只要标志位置1,不进入中断子程序中断标志就不会自动清零,我再检查一下是不是程序哪里出错了。
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17930
发表于 前天 17:38 | 显示全部楼层
外部中断,只要出现下降沿,就会置位中断标志,如果允许中断,进入中断会自动清除标志,如果没有允许中断,则标志会一直为1,直到进入中断自动清0,或者程序主动清0。
定时器中断也是一样的。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 10:17 , Processed in 0.071489 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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