2.1 需填写结果。表1:INT0、INT1 优先级相同时的操作记录结论1:上电复位时,INT0、INT1 保持默认“低优先级”状态时:(1)当同时请求同级中断时,CPU 按“自然优先级”响应,即 INT0 T0 INT1 T1 ES。(2)一旦响应一个中断(无论优先级如何,同级中断都不能再次中断它。(3)每次中断都是在下降沿或低电平有效(由 TCON 设定)。注:主程序:状态2,INT_0:状态0,INT_1:状态1。2、将INT1 设置为高优先级(INT0 保持低优先级)运行实验:利用程序中的指令将INT1 设置为“高优先级”状态,根据表
3.填入2的结果。将INT1设为高优先级(INT0保持低优先级: (1)低优先级的中断响应在执行过程中可以被高优先级中断打断。 (2)高优先级的中断响应在执行过程中不能被高优先级中断打断。 (3)当均未请求中断时,程序正常执行主程序。 (4)每次中断都是在下降沿或低电平有效(由TCON设置)。 3.实验算法及程序清单 ORG 8000HLJMP START ORG 8003H LJMP INT_0 ORG 8013H LJMP INT_1 ORG 8100H START: MOV SP,#60H SETB EX0SETB EX1SETB PX1SETB EAMOV TCON,#
4. 00H MOV IP,04H MOV A,#00H LOOP: MOV P1,A CPL ALCALL 延时 SJMP LOOPINT_0: PUSH PSW PUSH ACC LCALL 延时 MOV A,#03H CPL ACHR: RR AMOV P1,A LCALL 延时 JNB P3.2,CHR LCALL 延时 POP PSWPOP ACC RETIINT_1: PUSH PSW PUSH ACC LCALL 延时 MOV A,#01H CPL ACHL: RL AMOV P1,A LCALL 延时 JNB P3.3,CHL LCALL 延时
5、Y POP PSWPOP ACC RETIDELAY: PUSH 01HPUSH 02HMOV R1,#00H DELAY1: MOV R2,#00H DJNZ R2,$DJNZ R1,DELAY1 POP 02HPOP 01HRETEND 四、实验电路 五、实验流程图 六、实验结果与分析 本次中断实验共有四大模块。 第一:主程序完成所有LED灯亮灭的循环显示; 第二:INT_0中断程序实现两个小灯持续亮,只要不取消中断,没有更高优先级的中断,就不断左移,循环显示; 第三:INT_1中断程序实现只有一个小灯亮,只要不取消中断,就不断右移,循环显示; 第四:延时子程序用于防止前面的
6、后抖动和小彩灯闪烁速度太快,人眼无法识别。只要在主程序执行过程中有中断,就会执行中断程序。另外程序中考虑到INT1设置为高优先级中断,可以通过INT1中断来中断INT0中断,改变小彩灯的显示形式。这样操作就完成了实验所需的各项指标。七、实验心得与建议本次实验在老师的指导下,还算比较顺利,不过实验过程中也犯了一些比较低级的错误。刚开始写中断服务程序的时候,感觉分析的没错,但是就是进不去中断服务程序,检查了一段时间后发现忘了写最重要的两个中断语句,分别是SETB EX0、SETB EX1、SETB EA。这就要求我做实验的时候要非常认真,出现问题就从问题入手,分析可能的错误然后改正,这样才能尽快保质的完成任务。八、 主要仪器设备