单片机中断的IE和IP寄存器(摘抄)
CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的,IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址。AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,允许或禁止某个中断,当对IE的EA位清0时,屏蔽全部中断源。IE中各标志位功能如表1所示:

例:开放外部中断0
字节操作:MOV IE,#81H 或 MOV 0A8H,#81H
位操作:SETB EA SETB EX0
二、AT89S52的优先级寄存器IP
AT89S52单片机的中断系统提供两个中断优先级,对于每一个中断请求源都可以编程为高优先级中断源或低优先级中断源,以便实现两级中断嵌套。中断优先级是由片内的中断优先级寄存器IP(特殊功能寄存器)控制的。IP寄存器字节地址位B8H,可以位寻址。IP各标志位的功能如表2所示:

AT89S52中断系统具有两级优先级(由IP寄存器把各个中断源的优先级分为高优先级和低优先级),它们遵循下列两条基本规则:
(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任何中断源所中断;
(2)一种中断源(不管是高优先级或低优先级)一旦得到响应,与它同级的中断源不能再中断它。
为了实现上述两条规则,中断系统内部包含两个不可寻址的优先级状态触发器。其中一个用来指示某个高优先级的中断源正在得到服务,并阻止所有其它中断的响应;另一个触发器则指出某低优先级的中断源正得到服务,所有同级的中断都被阻止,但不阻止高优先级中断源。当同时收到几个同一优先级的中断时,响应哪一个中断源取决于内部查询顺序。其优先级排列如表3。

单片机中断的IE和IP寄存器(摘抄)的更多相关文章
- 51单片机中断interrupt……using……
51单片机中断细节的一些问题. interrupt0:外部中断0interrupt1:定时器中断0interrupt2:外部中断interrupt3:定时器中断1interrupt4:串口 using ...
- ET 与RETI 基于51单片机中断跳出指令“RETI”浅议
最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...
- STM32-NVIC中断管理实现[直接操作寄存器]
源:stm32 NVIC中断管理实现[直接操作寄存器] cortex-m3支持256个中端,其中包含了16个内核中断,240个外部中断.stm32只有84个中断,包括16个内核中断和68个可屏 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h> void main(void) { EA=1; //开放总中断 E ...
- CPU结合CS、IP寄存器进行执行程序
上一篇介绍了CS.IP两个寄存器内容,当我们运行一个可执行文件时,我们需要另外一个程序来将这个可执行文件加载到内存当中,关于这个加载可执行文件的程序,我们在这里不管他,点一下即可,一般是通过操作系统的 ...
- 【C51】单片机中断
引言 其实人的一生和单片机的运行很类似.就拿人的一生来说:有些事只需要做一次,比如得了水痘以后,体内产生免疫,以后就不会再生这个病了.有些事需要反复做,比如反复读书,反复工作,反复与困苦打交道,反复地 ...
- c语言单片机中断服务程序
#include <reg52.h> #define uchar unsigned char #define uint unsigned int uint count; void dela ...
- 【C语言】关于单片机中断详解
什么是中断?就是打断当前要做的事,转而去执行别的事情.比如小七我现在正在电脑前写帖子,突然老妈叫我帮她下楼拿点东西,于是我就收到了老妈给我的一个中断(可以叫做外部中断),当我去拿东西时,突然尿急(内部 ...
- CS 寄存器 和 IP 寄存器
下面将要介绍的是一组非常非常重要的寄存器,即 CS:IP . CS:IP 两个寄存器指示了 CPU 当前将要读取的指令的地址,其中 CS 为代码段寄存器,而 IP 为指令指针寄存器 . 什么叫做 ...
随机推荐
- 1、C#入门第一课
C# 读作C Sharp,所以程序文件的扩展名为.cs 新建项目-窗体应用程序 所谓的Visual C#就是指的可视化编程,主要在设计窗口布置好自己的控件(一些具有一定功能的小部件,例如如可以点击的按 ...
- cdr创建样式与样式集的方法
样式是一组定义对象属性的格式化属性,如轮廓或填充.例如,要定义轮廓样式,您可以指定轮廓宽度.颜色和线条类型等属性.要定义字符样式,您可以指定字体类型.字体样式和大小.文本颜色和背景色.字符位置.大写等 ...
- Python 特殊语法:filter、map、reduce、lambda
Python内置了一些特殊函数,这些函数很具python特性.可以让代码更加简洁. 可以看例子: 1 filter(function, sequence): str = ['a', 'b','c', ...
- Linux(Debian)+Apache+Django 配置
配置Apache和Django连接的过程可谓是一波三折,在此记录. 零.基本的安装 软件环境 l Linux-3.2.0-4-amd64-x86_64-with-debian-7.7 l py ...
- <mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题
<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题 在做项目的时候,我希望静态资源由WEB服务器默认的 ...
- HTC Vive开发笔记之手柄控制
怎么安装设备,配置环境我就不说了,自行百度,教程很多也很简单.接下来说下Vive手柄的控制. 手柄是HTC Vive的重要交互手段,我们通过第一个图片应该对其有一个直观的了解了,总共是九个按钮: 第一 ...
- 15. Linked List Cycle && Linked List Cycle II
Linked List Cycle Given a linked list, determine if it has a cycle in it. Follow up: Can you solve i ...
- ArchLinux KDE安装中文输入法
From: http://www.linuxdiyf.com/viewarticle.php?id=53375 1.安装中文输入法#pacman -S scim-pinyin #拼音输入法#pacma ...
- MVC 项目中为什么会有两个web.config
我们对MVC 并不陌生, 在创建MVC项目时,总会发现,在工程目录 中有两个 web.config 文件,一个是在工程的根目录下,一是在 views 下,两个web.config 中的内容也不尽相同, ...
- Linux kill 杀死指定进程
一 杀死指定进程 现知道有一个php线程正在运行,需要杀死 root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/php /var/www/html/r ...