定时器8253与中断控制器8259A实验.docxVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时器8253与中断控制器8259A实验 实验七 定时器8253与中断控制器8259A 实验 二、实验电路 五、实验项目 1.该实验用PC 机内部的中断控制器8259A ,中断源用TPC-H 实验箱上的8253来产生,电路如图1所示,将8253计数器0,计数器1分别设置为方式3和方式2,计数初值设为2000,使8253每隔4秒产生一次中断请求。 2.编写程序,要求每次主机响应外中断IRQ7时,显示THIS IS A 8259A INTERRUPT !,在键盘上敲任意一个键,程序退出。 3.修改电路和程序,直接用手动产生单个脉冲作为中断请求信号,要求每按一次开关产生一次中断,在屏幕上显示一次 THIS IS A 8259A INTERRUPT !,中断10次后程序退出。 六、编程提示 1.在TPC-H 实验系统的接口卡上有一个跳线开关(JP ),可以选择IRQ2、IRQ3、IRQ4、IRQ7引到试验箱上的IRQ 插孔,出厂设置的是IRQ7。 2.由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS 的环境中才能正常运行。 3.由于TPC 卡使用PCI 总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法如下:在纯DOS 环境下 C:\ASM\提示符下键入PORTR1后敲回车键,会得到: TPC PCI Card 9054 Chip I/O Base Adress :2000 TPC PCI Card I/O Base Adress :2400 TPC PCI Card Memory Base Adress :d2000000 TPC PCI Card Interrupt Line :0A 其中,2000为PCI 卡上9054芯片的基地址;2400为试验箱的基地址,2400/2407对应的是280/287H 插孔;0A 表示系统分配中断为IRQ10。 4.由于TPC 卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断功能,代码如下: mov dx,ioport_cent+68h ;设置tpc 卡中9054芯片io 口,使能中断 in ax,dx 280H ~287H 图1 8253与8259 实验电路图 实验七定时器8253与中断控制器8259A实验 or ax,0900h out dx,ax 其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址(TPC PCI Card 9054 Chip I/O Base Adress:2000),+68H的偏移是关于9054芯片中断使能的寄存器地址,设置含义如下: 设置INTCSR(68H)寄存器,中断模式设置: 其它位为零即可,更多内容参看9054芯片数据手册 程序退出前还要关闭9054的中断,代码如下: mov dx,ioport_cent+68h ;设置tpc 卡中9054芯片io口,关闭中断 in ax,dx and ax,0f7ffh out dx,ax 5. PC机中断控制器8259 的主片地址为20H、21H, 从片地址为A0H、A1H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务结束返回前要使用中断结束命令: MOV AL,20H OUT 20H,AL OUT 0A0H,AL 中断结束返回DOS时应将IMR对应位置1,以关闭中断。 ;手动产生单个脉冲作为中断请求信号对应程序 data segment int_offset dw ? int_seg dw ? ;旧中断向量保存空间 irq_times db 10 ; 中断计数 flag db 0 ; 中断标志 msg1 db 0dh,0ah, THIS IS A 8259A INTERRUPT !,0dh,0ah,$ data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax cli ; TPC PCI Card 9054 Chip I/O Base Adress:2000时 mov dx,2068h ;设置 tpc 卡中9054芯片io口,使能中断 in ax,dx or ax,900h out dx,ax push ds ; TPC PCI Card Interrupt Line:0A,分配中断为IRQ10时,中断类型号为72H mov ax,3572h int 21h ;保存原中断向量 mov int_seg,es mov int_offset,bx mov ax,seg int_proc ;设置新中断向量 mov ds,ax mov dx,offset int_proc

文档评论(0)

137****8896 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档