- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PINT1:PUSH A ;保护现场 MOV R3,#08H LOOP:MOV A,#0F0H MOV P1,A;4个LED亮灯 ACALL YANSHI MOV A,#0FH MOV P1,A;4个LED亮灯 ACALL YANSHI DJNZ R3,LOOP POP A ;恢复现场 RETI ORG 300h YANSHI:MOV R5,#200 DEL2:MOV R4,#123 DJNZ R4,$ Nop DJNZ R5, DEL2 RET 习题: 1,通过循环结构,编写一段延时0.5s的程序,时钟为12MHZ. 2,在此基础上通过调用延时子程序,使得P1.3发出高低电平各为0.5s的方波 3.在上题基础上,增加外部中断0中断,当该引脚出下降沿后进入中断,使得P1.3亮3s. 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 从中断请求发生直到被响应去执行中断服务程序,中断响应过程的时序如图5-4所示。 ?⒈ 中断采样 针对外部中断请求信号进行的,而内部中断请求都发生在芯片内部,可以直接置位TCON或SCON中的中断请求标志。 在每个机器周期的S5P2期间,各中断标志采样相应的中断源,并置入相应标志。 5.4 中断响应过程和响应时间 5.4.1中断的响应过程 图5–4 中断响应过程的时序 ⒉ 中断查询 若查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。 80C51的中断请求都汇集在TCON和SCON中。而CPU则在下一机器周期的S6期间按优先级的顺序查询各中断标志。 先查询高级中断,再查询低级中断。 同级中断按内部中断优先级序列查询。 如果查询到有中断标志位为“1” ,则表明有中断请求发生,接着从相邻的下一个机器周期的S1状态开始进行中断响应。 ⒊ 中断响应 ? 硬件自动生成长调用指令为LCALL addr16,而addr16就是各中断源的中断矢量地址(参见表5-1)。 ◆先将程序计数器PC的内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2。 ◆将对应中断源的中断矢量地址装入PC,去执行中断服务程序。 ◆中断服务程序由中断矢量地址开始执行,直至遇到RETI为止。 执行RETI,一是撤销中断申请,弹出断点地址进入PC,先弹出高位地址,后弹出低位地址,同时堆栈指针SP减2,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。 中断源 中断矢量地址 外部中断0(INT0) 0003H 定时器/计数器0(T0) 000BH 外部中断1(INT1) 0013H 定时器/计数器1(T1) 001BH 串行口(RI、TI) 0023H 定时器/计数器2 002BH 表5-1 中断矢量地址 中断响应是有条件的,在接受中断申请时,如遇下列情况之一时,硬件生成的长调用指令“LCALL”将被封锁: ⑴ CPU正在执行同级或高一级的中断服务程序中。因为当一个中断被响应时,其对应的中断优先级触发器被置“1”,封锁了同级和低级中断; ⑵ 查询中断请求的机器周期不是执行当前指令的最后一个周期。 ⑶ 当前正在执行RETI指令或执行对IE、IP的读/写操作指令。80C51中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。 中断的执行过程与调用子程序相似点: ⑴ 都是中断当前正在执行的程序,转去执行子程序或中断服务程序。 ⑵ 都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。 ⑶ 执行完子程序或中断服务程序后,都要通过软件完成现场恢复,并通过执行返回指令,重新返回到断点处,继续往下执行程序。 ⑷ 二者都可以实现嵌套,如中断嵌套和子程序嵌套。 中断的执行与调用子程序差别 ⑴ 中
文档评论(0)