单片机 实验 三 MCS-51单片机中断系统及外部中断INT0实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学实验报告
实验时间:2014 年7 月 1 日星期二时间:13 :10 ~ 15 :00
实验室(房间号):综420 实验台号码:班级:姓名:
指导教师签字:成绩:
实验三MCS-51单片机中断系统及外部中断/INT0实验
一、实验目的和要求
学习、掌握单片机的中断原理。正确理解中断矢量入口、中断返回的概念及物理过程。学习编写软件“防抖程序”,了解软件防抖原理。
二、实验内容及步骤
1.INT0、INT1同一优先级运行实验:
保持上电复位时INT0、INT1默认为“低优先级”的状态,且将SW1、SW2全部事先置于“0”电平(同时申请中断)后,再启动运行程序,按照表1要求填写结果。
结论一:保持上电复位时INT0、INT1默认为“低优先级”的状态时:(1)同级中断同时申请中
断时,CPU按“自然优先级”响应,即INT0→T0→INT1→T1→ES。(2)一个中断一旦得到响应(无论什么优先级),与它同级的中断则“不能”再中断它。(3)每个中断都是下降沿或者低电平有效(由TCON设定)。
注:主程序:状态2,INT_0:状态0,INT_1:状态1。
2.将 INT1设定为高优先级(INT0保持为低优先级)的运行实验:
在程序中使用指令将INT1设定为“高优先级”状态,按照表2内容填写结果。
结论二:将 INT1设定为高优先级(INT0保持为低优先级)时:(1)低优先级的中断响应在执
行时“可被”高优先级中断所中断。(2)高优先级的中断响应在执行时“不可被”高优先级中断所中断。(3)两个中断都没有申请时程序正常执行主程序。(4)每个中断都是下降沿或者低电平有效(由TCON设定)。
三、实验算法和程序清单
ORG 8000H
LJMP START
ORG 8003H
LJMP INT_0
ORG 8013H
LJMP INT_1
ORG 8100H START: MOV SP,#60H
SETB EX0
SETB EX1
SETB PX1
SETB EA
MOV TCON,#00H
MOV IP,04H
MOV A,#00H LOOP: MOV P1,A
CPL A
LCALL DELAY
SJMP LOOP
INT_0: PUSH PSW
PUSH ACC
LCALL DELAY
MOV A,#03H
CPL A CHR: RR A
MOV P1,A
LCALL DELAY
JNB P3.2,CHR
LCALL DELAY
POP PSW
POP ACC
RETI
INT_1: PUSH PSW
PUSH ACC
LCALL DELAY
MOV A,#01H
CPL A CHL: RL A
MOV P1,A
LCALL DELAY
JNB P3.3,CHL
LCALL DELAY
POP PSW
POP ACC
RETI
DELAY: PUSH 01H
PUSH 02H
MOV R1,#00H DELAY1: MOV R2,#00H
DJNZ R2,$
DJNZ R1,DELAY1
POP 02H
POP 01H
RET
END
四、实验电路
五、实验流程图
六、实验结果与分析
本次的中断实验共有四个大的模块。第一:主程序中完成LED灯全亮和全灭的循环显示;第二:INT_0中断程序中实现小灯连续俩个亮,并且只要中断没有撤销,且没有更高优先级中断打断就连续左移循环显示;第三:INT_1中断程序实现只有一个小灯亮,且只要中断没有撤销就连续右移循环显示;第四:延时子程序,用于防止前后抖动和小灯闪烁过快人眼无法识别。在主程序执行的任何时候只要有中断都会转去执行中断程序。另外,在程序中认为的设置了INT1为高优先级中断,在INT0中断是可以用INT1中断对其进行打断,改变小彩灯的显示形式,本次操作完成了实验要求的各种指标。
七、实验体会和建议
在老师的指导下,本次实验做得还是比较顺利,但是在实验过程中还是犯了一些比较低级的错误,在最开始编中断服务程序的时候,分析感觉都是正确的,但是就是无法进入中断服务程序,检查了一会才发现忘写了两句最重要的开中断语句即SETB EX0 、SETB EX1 、SETB EA,这就要求我在做实验的时候要非常认真,在出现问题时从问题出发,分析可能的错误然后加以改正,就能够以最快的速度保质的完成任务。
八、主要仪器设备