当前位置:文档之家› 实验三中断

实验三中断

大连理工大学实验报告
实验时间:2014 年7 月 1 日星期二时间:13:00 ~ 15 :05
实验室(房间号):420 实验台号码: 3 班级:电英1001 姓名:杜勇指导教师签字:成绩:
实验三MCS-51单片机中断系统及外部中断/INT0实验
一、实验目的和要求
1、学习掌握单片机中断原理,正确理解中断矢量入口、中断调用和中断返回的概念及物理
过程。

学习辨析“软件防抖”程序,了解“软件防抖”原理。

2、对/int0、/int1两个外部中断进行编程,其中:
主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2);
Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);
Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);
二、实验内容与步骤
1.INT0、INT1同一优先级运行实验:
保持上电复位时INT0、INT1默认为“低优先级”的状态,且将SW1、SW2全部事先置于“0”电平(同时申请中断)后,再启动运行程序,按照表1要求填写结果。

结论一: INT0和INT1处于同一优先级,同时产生中断时,按照自然顺序,程序响应中断INT1。

同时在一个中断进行时,另一个中断无法响应。

2.将 INT1设定为高优先级(INT0保持为低优先级)的运行实验:
在程序中使用指令将INT1设定为“高优先级”状态,按照表2内容填写结果。

表2:INT1为高优先级(int0保持为低优先级)时运行状态记录
结论二: INT0为低优先级,INT1为高优先级。

同时产生中断时,程序首先响应高优先级。

在低优先级中断进行时,高优先级中断可以打断该中断并进入高优先级中断。

反之则不能。

三、实验电路图
四、程序流程图
五、程序清单
ORH 8000H
LJMP START
ORG 8003H
LJMP INT_0
ORG 8013H
LJMP INT_1
ORG 8100H
START: MOV SP, #60H
SETB EX0 ;开中断INT0
SETB EX1 ;开中断INT1
SETB EA ;总使能
SETB PX1 ;设定INT1为高优先级,INT0默认低优先级
MOV TCON, #00H
MOV A,#00H
LOOP3:CPL A
MOV P1,A ;输出A
LCALL DELAY ;延时,使肉眼可以看见LED闪烁
SJMP LOOP3
INT_0:PUSH PSW
PUSH ACC
LCALL DELAY ;防前抖
MOV A, #0FCH ;赋初值0FCH,使最低的两个LED亮LOOP4: MOV P1,A
RL A
LCALL DELAY ;使肉眼可以看见LED闪烁
JNB P3.2,LOOP4 ;SW0=0时,在中断中循环,为1时跳出中断
LCALL DELAY ;防后抖
POP ACC
POP PSW
RETI
INT_1:PUSH PSW
PUSH ACC
LCALL DELAY
MOV A, #0FEH ;赋初值0FEH,最低LED亮
LOOP5: MOV P1,A
RR A
LCALL DELAY
JNB P3.3,LOOP5
LCALL DELAY
POP ACC
POP PSW
RETI
DELAY:PUSH 01H ;延时子程序
PUSH 02H
MOV R1,#00H
DELAY1:MOV R2,#00H
DJNZ R2,$
DJNZ R1,DELAY1
POP 02H
POP 01H
RET
END
六、实验结果与分析
实验结果:在实验台上调试之后,由第二部分实验内容与步骤可见,最终实验结果符合理论结果。

七、实验体会
本次实验主要部分是外部中断指令。

通过本次实验,学习了外部中断的进入方式以及程序的编写,收获很大,关于中断矢量也有了一个更深的理解,在下一次实验定时器与计数器的实验中,这些将会很有作用。

相关主题