51单片机基础实验----一个外部中断实验
实验内容及步骤:
在实验之前,我们先来复习下前面学过的中断的相关知识。
MCS-51是一个多中断源的单片机,以8051为例,有三类共五个中断源,分别是外部中断两个,定时器
中断两个和串行中断一个(其中断控制字在后面实验中详细讲到)。外部中断是由外部原因引起的,共
有两个中断源,既外部中断0和外部中断1。它们的中断请求信号分别由引脚 -(P3.2)和 (P3.3)
引入;外部中断请求信号有两种,既低电平有效方式和脉冲后沿负跳有效方式。
中断开放和屏蔽-IE寄存器
其作用是用来对各中断源进行开放或屏蔽的控制,各位定义如下:
位地址 AF AE AD AC AB AA A9 A8
位符号 EA / / ES ET1 EX1 ET0 EX0
EA—中断允许总控制位
EA=0 中断总禁止,禁止所有中断。
EA=1 中断总允许。
EX0(EX1)-- 外部中断允许控制位
EX0(EX1)=0 禁止外中断。
EX0(EX1)=1 允许外中断。
ET0(ET1)-- 定时/计数中断允许控制位
ET0(ET1)=0 禁止定时/计数中断。
ET0(ET1)=1 允许定时/计数中断。
ES – 串行中断允许控制位
ES=0 禁止串行中断。
ES=1允许串行中断。
中断优先级控制寄存器(IP)
地址为B8H,位地址为BFH-B8H,各位定义如下:
位地址 BF BE BD BC BB BA B9 B8
位符号 / / / PS PT1 PX1 PT0 PX0
PX0—外部中断0优先级设定位
PT0—定时中断0优先级设定位
PX1--外部中断1优先级设定位
PT1—定时中断1优先级设定位
PS—串行中断优先级设定位
为0的位优先级为低;为1的位优先级为高;
中断优先级是为中断嵌套服务的,MCS-51中断优先级的控制原则是:
(1)低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断
服务,从而实现中断嵌套。
(2)如果一个中断请求已被响应,则同级的其它中断响应将被禁止。
(3)如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。其查询次序
为:外部中断0—定时中断0—外部中断1—定时中断1—串行中断。
实验电路如下图,本实验为每次响应外部中断0时,P1口依次输出高电平,使8个发光二极管依次循
实验源程序如下:
环熄灭闪烁。
ORG 0000H
LJMP MAIN ;转主程序
ORG 0003H ;外部中断0入口地址
LJMP EXTER ;转中断程序
ORG 1000H
MAIN: SETB IT0 ;外部中断0后沿负跳有效
SETB EX0 ;外部中断0允许
SETB EA ;总中断允许
LOOP: AJMP LOOP ;等待中断
ORG 1050H ;中断程序入口
EXTER:MOV R2,#0FFH ;置循环次数
MOV A,#01H ;灯亮初值
FLASH:RR A ;右移一位
MOV R7 ,#0FFH
LOOP1:MOV R6 ,#0FFH
LOOP2:NOP
NOP ;软件延时
DJNZ R6,LOOP2
DJNZ R7,LOOP1
MOV P1,A ;灯灭
DJNZ R2,FLASH ;循环
RETI ;返回
END