实验四8259中断控制及中断服务实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四8259中断控制及中断服务实验

实验四 8259中断控制及中断服务实验 课程名称:微机原理 姓名:高玮芳 班级:计科11102班 学号:201117010236 日期:2014.05.09 成绩: 一、实验目的 1、掌握8259A的工作原理。 2、掌握编写中断服务程序方法。 3、掌握初始化中断向量的方法。 二、实验设备 MUT—型实验箱、8086CPU模块。 三、实验内容 四、实验原理介绍 本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。 五、实验步骤 1、实验接线 CS0--CS8259 CS1--CS273 O0~O7--LED1~LED8 K1~K8--IR0~IR7 INT--INTR INTA--QINTA 2、编译调试程序 3、全速运行程序,拨动某一电平开关,观察LED的情况。 六、实验提示 1、 8259的使用说明请详细阅读教科书。 2、8086的中断系统是向量中断方式。内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。 3、中断类型由8259通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序。请仔细研读8259的工作时序。 4、中断类型的高5位由8259寄存器ICW2决定,低3位由中断源IRx的编码自动填入。IR0~IR7的编码分别为000,001,010,011,100,101,110,111。 七、实验结果 全速运行程序,由上往下拨动开关时,相应位置的LED点亮,其余LED全灭。 八、实验程序框图(实验程序名:t8259.asm) 主程序中断服务 八、程序源代码清单 assume cs: code code segment public org 100h start: mov dx,04b0h mov al,0ffh out dx,al mov bl,00h mov ch,00h start1: cli push ax mov dx,04a0h mov ax,13h out dx,ax ;ICW1, ICW4 NEEDED mov dx,04a2h mov ax,80h out dx,ax ;ICW2 中断类型80h mov ax,01h;01 out dx,ax ;ICW4 mov ax,00h out dx,ax ;OCW1, 开放所有中断 nop ;以上为8259初始化 mov ax,0 mov ds,ax mov di,200h ;初始化中断向量表 mov ax,offset int0 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int1 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int2 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int3 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int4 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int5 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int6 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offset int7 mov ds:[di],ax add di,2 ;上述程序为芯片8259的初始化程序 mov ds:[di],100h pop ax main: sti ;开中断。 waiting: cmp bx,00h je waiting ;没发生中断,则等待 cmp bl,0feh je int0_s cmp bl,0fdh je int1_s cmp bl,0fbh je int2_s jmp start int0: cli ;关中断。以下类推。 mov ch,01h ;此两行为IR0的中断服务程序 mov bl,0feh ;用户可修改。 iret ;中断返回,以下类推。 int1: cli mov ch,01h ;此两行为IR1的中断服务程序, mov bl,0fdh ;用户可修改。 iret

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档