- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串行口控制寄存器SCON中的中断标志位 SCON 中的标志位含义 中断标志位的总结 中断标志位的置 1 和清 0 自动置 1 IP 中的位含义 中断请求标志位的撤除 外部中断源触发信号的撤除 中断服务程序完成的工作: 保护现场 PSW、工作寄存器和SFR等 中断服务 恢复现场 中断返回:执行RETI指令 用查询方式扩展中断源 5.6 外部中断的响应时间 响应时间----从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。 (1)最快响应时间 以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器周 期: 1个周期(查询)+2个周期(长调用LCALL) (2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下 一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)+4 个周期乘除指令+2个周期长调用=8个周期。 5.7 外部中断的触发方式选择 5.7.1 电平触发方式 若外部中断定义为电平触发方式,外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化,这能提高CPU对外部中断请求的响应速度。当外部中断被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。 所以,电平触发方式适合于外部中断以低电平输入而且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。 5.7 外部中断的触发方式选择 5.7.2 跳沿触发方式 若外部中断定义为跳沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断请求标志也不会丢失。 在这种方式里,如果相继连续两次采样,一个机器周期采样到外部中断输入为高,一个机器周期采样为低,则置1中断申请触发器,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持12个时钟周期(若晶振频率为6MHz,则为2us),才能被CPU采样到。 所以,外部中断的跳沿触发方式适合于以负脉冲形式输入的外部中断请求。 5.8 中断请求的撤销 对 /INT0、/INT1 中断 对 T0、T1 中断 对串行口中断 中断响应后硬件自动对 IE0、IE1撤除 中断响应后硬件自动对 TF0、TF1撤除 中断响应后需软件手动对 TI、RI 撤除 注:撤除即清 0 负脉冲触发方式 低电平触发方式 在中服程序中基本不会再产生中断请求 在中服程序中可能会保持中断请求 解决方法 选用负脉冲触发方式 减小低电平宽度或强制改为高电平 在中服程序入口处关中断 5.9 服务程序的设计 中断返回 在中断服务程序中,最后一条指令必须为中断返回指令RETI。CPU执行此指令时,一方面清除中断响应时所置位的“优先级生效”触发器,一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序。 在中断服务程序中,PUSH指令与POP指令必须成对使用,否则不能正确返回断点。 MCS-51中断系统初始化 外部中断 /INT0、/INT1 的初始化 确定外部中断源的触发方式 对 TCON 寄存器中 IT0、IT1 进行位操作 中断优先级确定 对 IP 寄存器中 PX0、PX1 进行位操作 对 IE 寄存器中 EA、EX0、EX1 进行位操作 中断允许确定(开中断) 注:初始化即对相关寄存器编程 编写中断服务程序时应注意 ① 在中断矢量地址单元处放一条无条件转移指令(如 LJMP ××××H),使中断服务程序可灵活地安 排在64KB程序存储器的任何空间。 ② 在中断服务程序中,用户应注意用软件保护现场, 以免中断返回后丢失原寄存器、累加器中的信息。 ③ 若要在执行当前中断程序时禁止更高优先级中断, 可以先用软件关闭CPU中断或禁止某中断源中断, 在中断返回前再开放中断。 有中断的完整程序结构 中断入口表程序 主程序 中断服务程序 (其它子程序) 源程序汇编结束伪指令 入口表程序 ORG 0000H LJMP MAIN ; 跳到主程序入口 ORG 0003H LJMP RINT0 ; 跳到 /INT0 中服程序入口 ORG 000BH LJMP
文档评论(0)