- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章(中断系统)
* 1、分时操作 2、实时处理 中断是指CPU在正常执行程序的过程中,由于某种随机发生的事件使它暂停当前正在执行的程序,转而去执行另外的一段程序(中断服务程序),在这段程序完成后自动返回被打断的程序处继续执行的过程。 (1)中断申请 (2)中断响应 (3)中断处理 (4)中断返回 8031 的中断源 1、外中断:通过8031的INT0和INT1输入引脚,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式输入中断请求信号。 2、定时器溢出中断:定时器T0/T1在定时脉冲作用下从全“1”到“0”时可以自动向CPU提出溢出中断请求,以 表明定时器T0/T1的定时时间已到。 3、串行口中断:串行口中断分为发送中断和接收中断,每当串行口发送/接收完一组串行数据时,自动向CPU发出串行口中断请求 1.中断源 2.中断标志 中断标志寄存器 中断优先级 与中断有关的特殊功能寄存器 SCON(98H) RI TI IP(B8H) PX0 PT0 PX1 PT1 PS EX0 ET0 EX1 ET1 ES EA IE(A8H) TCON(88H) IT0 IE0 TF1 TF0 IE1 IT1 中断响应的条件 1.开中断 2.CPU未响应同级或更高优先级的中断 3.执行完毕正在执行的指令 4.RETI 或访问IE/IP的指令需再执行一条指令后才响应中断 中断入口地址表 MCS-51 对中断请求的撤除 定时器溢出中断:中断得到响应后,由硬件自动清除 串行口中断:需在中断服务程序中,软件清除 外部中断:负边沿触发由硬件自动清除,电平触发需由软件配合外部电路进行清除 中断系统初始化 1.开相应中断源的中断,开总中断(IE) 2.设置所用中断的中断优先级( IP) 3.若使用外部中断,需选择中断的触发方式(TCON的IT0或IT1) 例1: MAIN: MOV A,#01H MOV 30H,#03H 在此处中断 ADD A,30H ? ? LJMP MAIN 中断服务程序 AAA1: ? ? MOV A,#08H MOV 30H,#02H RETI 修改后中断服务程序 AAA1: PUSH A PUSH 30H ? ? MOV A,#08H MOV 30H,#02H POP 30H POP A RETI 中断服务程序的数据保护 第三章 中断系统 中断服务程序的数据保护 例2: MAIN: MOV A,#80H MOV 30H,#8FH ADD A,30H 在此处中断 JC LOOP1 MOV A,#04H LOOP1: MOV A,#02H ? ? LJMP MAIN 中断服务程序 AAA1: NOP MOV A,#03H MOV 30H,#08H ADD A,30H RET RETI 修改后中断服务程序 AAA1: PUSH PSW MOV A,#03H MOV 30H,#08H POP PSW RETI 中断服务程序的数据保护 规则: 1、若主程序和中断服务程序有对同一地址的数据的操作,中断服务程序可能改变这些地址中的内容,若想保持主程序中的数据不变,在中断服务程序中对这些数据进行保护。 2、若中断服务程序的指令可能影响PSW的标志位,可能影响主程序中的条件判断指令,应在中断服务程序中对PSW保护。 第三章 中断系统 中断程序的嵌套 中断嵌套:是指当CPU正在执行某一中断程序时,当有优先级高的中断发生后,停止当前的中断执行,去响应优先级别高的中断,当优先级别高的中断执行完后,接着相应低级中断的情况。 8031允许发生两级的中断嵌套(因为8031有高低两级中断优先级)。 若是同级中断是不能产生中断嵌套的。 中断应用举例: 统计脉冲信号的个数,累计到100个脉冲时使P1.0口的状态改变一次 INT0 8031 系统 P1.0 主程序与中断子程序的流程图: 开始 外部中断初始化 清0计数寄存器R3 P1.0初始化输出 等待 计数寄存器+1 是否计满100个数 取反P1.0 清0 R3 中断返回 Y N *
文档评论(0)