微机接口原理第七章中断技术.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*例:电脑IBM—PC/XT上使用的8259A介绍电脑IBM—PC/XT的主机板上有一个以8259A为中心组成的外部中断控制逻辑。下表为外部中断源的分配表。电脑在上电初始化期间,BIOS中有三段与8259A有关的程序,见下页返回46页第31页,共38页,2024年2月25日,星期天*8259A初始化MOVAX,13H ;ICW1:边沿触发、单片8259A、要送ICW4OUT20H,AL ;8259A接口的偶地址为20HMOVAL,8 ;ICW2:装中断类型码,从08H开始0UT21H,AL ;8259A接口的奇地址为21HMOVAL,9 ;装ICW4:缓冲方式,8086/8088CPUOUT21H,ALMOVAL,0FFH;装0CWl:屏蔽全部中断OUT21H,AL第32页,共38页,2024年2月25日,星期天*例:编写中断处理程序,要求主程序运行时,每10秒响铃一次,同时屏幕上显示信息“Thebellisring!”。(小自动化程序)解:此问题的解决用VB或VC的控件很容易,但通过底层汇编语言更能看出解决问题的实质。两不同:前者是利用了系统,后者是修改了系统!分析:1、每10秒响铃一次可用电脑中的定时器中断实现,其中断号为08H。2、响铃用并行接口8255所控制的电脑扬声器实现。3、显示信息“Thebellisring!”用软件中断调用INT21H实现。定时中断使用分析:电脑中定时时间为:1/18.2秒(约55ms),即每隔55ms便进入08H号中断服务程序中(执行完立马返回),此程序的主要任务是:实时修改“秒”“分”“时”“天”等参数,在中断返回之前,有一个软件调用指令:INT1CH;在系统BIOS中,1CH的处理程序只有一条IRET指令,仅为用户提供一个中断类型号。所以可以利用中断类型1CH设计一些动态功能。在本例中,因为题目要求每10秒处理一次,而8号中断执行182次才够10秒,即每中断182次响铃一次,同时屏幕上显示信息“Thebellisring!”设计任务:利用系统BIOS提供的中断号1CH,编写一个完成任务的中断服务程序即可。(既编写一段程序,程序的入口地址放入由1CH所指定的中断表里)在编写程序时,除了功能实现外,还必须做两个方面的工作:1、在主程序初始化部分,先保存当前中断向量表里由1CH所指定中断向量,再置新的中断向量;2、在主程序结束部分恢复原保存的1CH中断向量。第33页,共38页,2024年2月25日,星期天*主程序1.设置定时中断次数:1822.获得原1CH中断号处的中断向量并保存之。中断服务子程序1.保护现场.2.判断定时中断的次数是否够182次.不够则中断返回;若够则完成下列任务:(1)响铃(2)显示:Thebellisring恢复现场中断返回在1CH中断号处创建新的中断向量。设置8259A的中断屏蔽字。在1CH中断号处恢复原中断向量。主程序结束。程序设计框图每隔55ms执行1次延时第34页,共38页,2024年2月25日,星期天*DATASEGMENT ;数据段COUNT DW 182 ;定时次数MESS DB ‘Thebellisring!’,0AH,0DH,‘$’;显示内容DATAENDSSTACKSEGMENT;堆栈段DB100DUP(?)STACKENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATAMOVDS,AXMOV AX,STACKMOV SS,AX;各段地址初始化完毕MOV AL,1CH ;得到原中断向量MOV AH,35HINT 21H

文档评论(0)

xiaolan118 + 关注
实名认证
内容提供者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档