单个外部中断实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、 实验要求
在单片机的外中断输入引脚INT0————(或INT1————
),接一个按键开
关来产生外部中断请求,通过P1口连接的8个LED 发光二极管的状态,来反映外中断的作用。
中断未发生时,P1口连接的8个LED 为流水状态,当按键
开关按下,即外部中断请求产生时,8个LED 呈现闪烁状态。按键开关松开,8个LED 又为流水状态。
二、 实验目的
(1) 理解掌握外部中断源、中断请求、中断标志、中断入口
等概念。
(2) 掌握中断程序的设计方法。
程序如下:
ORG 0000H //程序入口
LJMP MAIN //跳入主程序入口MAIN
ORG 0003H
//INT0中断入口 LJMP INT0P
ORG 0030H
MAIN: SETB EA
//中断允许总开关控制位
SETB EX0 //允许外部中断0中断 SETB PX0 //外部中断0中断为高优先级
START:MOV R2,#8
MOV A,#0FEH //为点亮引脚发光二极管需写入P1口的点亮控制码 LOOP: MOV P1,A //点亮控制码写入P1口,点亮相应的LED
LCALL DELAY //调用延时子程序
RL A //点亮控制码循环左移,点亮下一位
DJNZ R2,LOOP //判断左移是否超过8位,未超过继续循环
LJMP START //左移循环已8次,再重新进行下一次循环点亮
INT0P: PUSH PSW //保护现场
PUSH Acc
NOLIG: JNB IE0,IT0R
MOV P1,#00H
LCALL DELAY
MOV P1,#0FFH
LCALL DELAY
LJMP NOLIG
IT0R:RETI
DELAY: MOV R5,#60 //延时子函数
D1: MOV R6,#20
D2: MOV R7,#248
D3: DJNZ R7,D3
DJNZ R6,D2
DJNZ R5,D1
RET
END
程序如图:
实验现象: