- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章节_中断技术
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (2) 中断应用实例 * 【例5-15】已知某输入设备接口内有一个8位的数据端口 (地址200H) 和一个8位的状态端口(地址201H)。当数据端口中的数据有效时,状态端口的最高位为1,并且在STB引脚上产生一个脉冲信号。试设计一个微机系统,读取该接口内的有效数据,将之存入BUFFER单元中。 * 方法一:查询法 硬件电路设计 软件流程图设计 * L1:MOV DX,201H ; 读取状态端口 IN AL,DX TEST AL ; 测试其最高位 JZ L1 ; 无有效数据 MOV DX,200H ; 有有效数据,读数据端口 IN AL,DX MOV BUFFER,AL ; 保存数据到 BUFFER * 方法二:中断法 当接口中的数据有效时,会产生脉冲信号STB,该信号可作为中断请求信号,通过8259A向CPU发送中断请求。 一旦有数据到来,触发中断,进入中断服务程序。CPU在中断服务程序中将数据端口的内容读出。 当没有数据到来时 (STB信号不触发中断),CPU可运行其它程序。 * 硬件电路设计 * 软件程序设计 * 假设条件: STB信号连接到8259A的 IR3 端。 8259A的端口地址为 20H、21H,其IR0~IR7 中断类型号为08H~0FH。 中断服务子程序程序名为P1。 未发生中断时,CPU执行其它程序。这里假设CPU执行反复将CX加1的操作。 主程序设计 * DATA SEGMENT BUFFER DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;数据段段地址 MOV DS,AX PUSH DS CLI ;关中断 MOV AL ;ICW1: 边沿触发, 单片, 要ICW4 OUT 20H,AL MOV AL,08H ;ICW2: 中断类型号前5位 OUT 21H,AL * MOV AL ;ICW4: 普通全嵌套, 非缓冲 OUT 21H,AL ;非自动中断结束 MOV AX,0 ;设置中断向量表段基址为0 MOV DS,AX MOV AX,OFFSET P1 ;中断子程序偏移地址 MOV [002CH],AX ;IR3中断类型号为0BH, ;向量表中位置为4×0BH=2CH MOV AX,SEG P1 ;中断子程序段地址 MOV [002EH],AX ;4×0BH + 2 = 2EH POP DS STI ;开中断 L1:INC CX JMP L1 中断服务子程序设计 * P1 PROC ;中断服务子程序 PUSH CX ;保护现场 STI ;开中断 MOV DX,200H ;读数据端口 IN AL,DX MOV BUFFER,AL ;保存数据 CLI ;关中断 P
文档评论(0)