单选题
1、在 AT89S51 的中断请求源中,需要外加电路实现中断撤销的是 ( )
A
电平方式的外部中断请求
B
跳变方式的外部中断请求
C
外部串行中断
D
定时中断
答案解析
正确答案:A
解析:
**解析:**
在 AT89S51(以及标准的 8051 系列)单片机中,不同的中断源其中断请求标志位的清除(即中断撤销)机制有所不同:
1. **电平方式的外部中断请求(选项 A)**:
* 当外部中断设置为低电平触发方式(ITx = 0)时,CPU 在每个机器周期采样外部中断引脚(INT0 或 INT1)。如果检测到有效低电平,硬件会自动置位中断请求标志位(IE0 或 IE1)。
* **关键点**:只要外部引脚保持低电平,中断请求标志位就会一直被置位。即使 CPU 响应了中断并进入中断服务程序,如果外部信号仍然是低电平,退出中断后硬件会再次置位该标志,导致**重复进入中断**,造成死循环。
* **解决方法**:因此,必须在**外加电路**中确保在中断服务程序结束前或响应中断后,将外部引脚的电平拉高(撤销低电平信号),或者通过软件配合外部硬件逻辑来清除请求。这就是题目中所指的“需要外加电路实现中断撤销”的情况。
2. **跳变方式的外部中断请求(选项 B)**:
* 当设置为下降沿触发方式(ITx = 1)时,CPU 检测到从高位到低位的跳变后,硬件会自动置位中断标志位。
* **撤销机制**:当 CPU 响应中断转向中断服务程序时,**硬件会自动清除**该中断标志位(IE0 或 IE1 由硬件清零)。不需要外加电路或软件干预来撤销请求。
3. **外部串行中断(选项 C)**:
* 串行口中断涉及发送中断(TI)和接收中断(RI)。
* **撤销机制**:这两个标志位**不会**由硬件自动清除,必须由**软件**在中断服务程序中手动清零(即执行 `CLR TI` 或 `CLR RI` 指令)。虽然需要软件处理,但题目强调的是“外加电路”,且通常“中断撤销”在经典考题语境下特指电平触发外部中断的硬件特性问题。不过严格来说,串口中断是靠软件撤销,而非外加电路。但在单选题对比中,A 选项是典型的必须依赖外部信号变化(往往涉及外部电路状态改变)才能彻底避免重入的场景,而电平触发的本质缺陷在于外部信号本身。*注:有些教材将“软件清除”也归类为一种撤销方式,但本题考点在于区分“硬件自动清除”、“软件清除”和“依赖外部信号/电路清除”。对于电平触发,若外部电路不恢复高电平,单靠内部操作无法撤销中断请求的物理源头。*
4. **定时中断(选项 D)**:
* 定时器/计数器溢出产生中断时,硬件置位溢出标志位(TF0 或 TF1)。
* **撤销机制**:当 CPU 响应中断转向中断服务程序时,**硬件会自动清除**该溢出标志位。不需要外加电路或软件干预。
**总结:**
* **硬件自动撤销**:跳沿触发的外部中断、定时中断。
* **软件撤销**:串行口中断。
* **需外加电路/外部信号配合撤销**:电平触发的外部中断。因为如果外部信号不撤除(保持低电平),中断标志会反复置位,必须依靠外部电路将电平拉高才能彻底撤销中断请求的物理条件。
因此,正确答案是 **A**。
相关知识点:
电平外中需外加电路撤中断
题目纠错
单片机
相关题目
单选题
5、全家变量可使用static关键字进行定义,由于全局变量一直存在,占用了大量的内存单元,且加大了程序的耦合性,不利于程序的移植或复用。
( )
单选题
4、全家变量是在某一函数中存在的变量,它只在该函数内部有效。 ( )
单选题
3、在C51语言编程中,编写中断服务函数时需要考虑如何进行现场保护、阻断其他中断、返回时自动恢复现场等处理的程序段的编写。 ( )
单选题
2、在C51语言中,函数是一个完成一定相关功能的执行代码段,它与另外两个名词“子程序”和“过程”用来描述同样的事情。 ( )
单选题
1、C51语言处理单片机的中断是由专门的中断函数来处理的。 ( )
单选题
6、C51用“*”和“&”运算符来提取指针变量的( )和指针变量的( )。
判断
单选题
5、对于SMALL存储模式,所有变量都默认位于8051单片机( )。
单选题
4、C51提供了存储类型来访问( )。
单选题
3、C51提供了两种不同的数据存储类型( )和( )来访问片外数据存储区。
单选题
2、C51语言头文件包括的内容有8051单片机( )、( ),以及( )的说明。
