这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 51单片机基础实验

共1条 1/1 1 跳转至

51单片机基础实验

助工
2008-08-15 09:58:31     打赏

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

 




关键词: 单片机     基础     实验     外部     中断     允许     优先级    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]