- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 MCS-51的中断系统 图 中断嵌套流程 2、中断响应过程 CPU响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入堆栈,然后根据中断标记,将相应的中断入口地址送入PC,PC是程序指针,CPU取指令就根据PC中的值,PC中是什么值,就会到什么地方去取指令,所以程序就会转到中断入口处继续执行。这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了8个单元,如0003H-000BH,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了吗? 中断程序完成后,一定要执行一条RETI指令,执行这条指令后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行了。注意:CPU所做的保护工作是很有限的,只保护了一个地址,而其它的所有东西都不保护,所以如果你在主程序中用到了如A、PSW等,在中断程序中又要用它们,还要保证回到主程序后这里面的数据还是没执行中断以前的数据,就得自己保护起来。 ? 对强迫中断的服务程序具有随机性 ? 要考虑可能在程序的什么指令处发生, ? 要保护什么内容,才能保证返回断点后正常工作。 ? 对人为设置的软件中断与子程序调用的区别 ?返回指令不同 ? 子程序返回用RET ? 中断服务程序返回用RETI ? 处理内容不同,中断一般处理I/O操作。 MCS-51中断系统的初始化及应用 1、MCS-51中断系统的初始化 中断系统初始化步骤为: 1)CPU开中断或关中断; 2)某中断源中断请求的允许或禁止(屏蔽); 3)设定所用中断的中断优先级; 4)若为外部中断,则应规定低电平还是负边沿 的中断触发方式。 解: (1)采用位操作指令 SETB EA ;CPU开中断 SETB EX1 ;开/INT1中断 SETB PX1 ;令/INT1为高优先级 CLR IT1 ;令/INT1为电平触发 (2)采用字节型指令 MOV IE,#84H ;开/INT1中断 ORL IP,#04H ;令/INT1为高优先级 ANL TCON,#OFBH ;令/INT1为电平触发 IT1=0 [例]请写出/INT1为低电平触发的中断系统初始化程序 解: 采用位操作指令 SETB EA ;CPU开中断 SETB EX1 ;开/INT1中断 SETB PX1 ;令/INT1为高优先级 SETB IT1 ;令/INT1为电平触发 课堂作业: 请写出外中断1为跳沿触发的中断系统初始化程序 (1)主程序 主程序除了用来对MCS-51本身中断系统初始化外,还经常用来对具有中断功能的外部扩展的可编程I/O接口、可编程内部定时器/计数器T0、T1和可编程内部串行口等初始化,程序如下: ORG 0000H AJMP MAIN ┆ MAIN: ; MAIN为主程序首地址 ┆ 复位后,其PC的内容被强迫置成0000H 上电启动,CPU就执行0000H单元的指令 必须在0000H单元放一条跳转到主程序的跳转指令, 实现了上电自动转向主程序 2、程序设计方法 (2)中断服务程序 中断服务程序是一种具有特定功能的独立程序段,它为中断源的特定要求服务,其一般低级中断源程序编写格式如下: ORG ZDRK AJMP INTVS ┆ INTVS:CLR EA PUSH ACC PUSH 01H ┆
文档评论(0)