预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章1单片机的中断系统第一节中断的基本概念2、中断源(可由硬件或软件引起):引起中断的事件IE------中断允许控制寄存器,TCON----定时控制寄存器,SCON----串行口控制寄存器。IP------中断优先级控制寄存器,(4)ES:串行中断允许控制位ES=0禁止串行中断ES=1允许串行中断2.定时器控制寄存器TCON寄存器地址为88H(3)TF0、TF1:定时器溢出中断请求标志位,相应溢出标志位TFX由硬件置“1”。两种使用方式:a.软件查询时,作为溢出标志位,查询有效后,用户软件清零。b.中断方式时,作为中断请求标志位,为“1”时,自动转向中断服务程序,再由硬件自动清零。4.中断优先级控制寄存器IP用户软件设置寄存器地址为B8H中断嵌套流程图自5.中断初始化和中断控制寄存器状态逻辑设置二、中断响应过程3.中断响应过程:如果满足中断响应条件且不存在中断封锁情况,则CPU进入中断响应周期。完成以下工作:a.将响应的优先级状态触发器置1。4.中断响应时间:从中断请求产生到CPU转到相应的中断服务程序的入口地址所需的时间。1、基本响应时间(3个机器周期)(1)查询中断标志:1个机器周期;(2)转去执行中断服务程序:2个机器周期结论:一般的中断响应时间都是3~8个机器周期。但是如果出现同级或是高级中断正在响应或是服务中,则响应时间无法计算。一般应用中,中断响应时间无需计算,只有在精确定时的应用场合,才需要计入中断响应时间,保证定时的精确。三中断服务程序中断都是在运行主程序时发生的,是主程序的随机事件,是否允许发生以及如何发生,都应该在主程序中预先设置,这就是中断初始化。中断服务程序:从入口地址开始执行一直到返回指令RETI为止。需注意的问题:ORG0000HLJMPMAINORG0013HLJMPEXINT1ORG0050HEXINT1:CLREA;关中断PUSHACCPUSHPSW;现场保护SETBEA;开中断中断服务程序CLREA;关中断POPPSWPOPACC;现场恢复SETBEA;开中断RETI;中断返回ORG0100HMAIN:…………………….3.中断返回中断处理程序后最后一条指令必须是中断返回指令RETI。执行该指令时:a.将“优先级状态触发器”复位为0;b.从堆栈栈顶弹出断点地址,装入PC,从而返回主程序。ORG0000HLJMPMAINORG0050HMAIN:……………….LCALLSUB……………….……………….SJMP$SUB:……………..RETI;能正确运行吗?四、中断请求的撤消串行中断软件撤消:一项内容:标志位清“0”,中断响应后,需要先分别测试TI和RI的状态(只有一个串行中断入口地址),判断完是接收操作还是发送操作后,再软件清“0”。第三节中断系统的应用例:硬件电路如图,通过8051单片机的P1口控制8个LED做左移和右移发光,当中断来时(按下/INT0),使8个LED闪烁5次.ORG0000HAJMPMAINORG0003HAJMPEXT0ORG0030HMAIN:SETBEX0;CPU开中断SETBEAMOVSP,#70H;重设堆栈指针LOOP:MOVA,#0FFH;左移初值CLRCMOVR2,#08H;设左移8次LP1:RLCAMOVP1,A;输出至P1口ACALLDELAY;延时0.2秒DJNZR2,LP1MOVR2,#07H;设右移7次DELAY:MOVR5,#20;延时0.2m子程序D1:MOVR6,#20D2:MOVR7,#248D3:DJNZR7,D3DJNZR6,D2DJNZR5,D1RETEND思考题