实验四中断控制及计数..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及计数/定时器8253的工作原理,掌握其使用方法。 二、实验准备 1. 复习8259及8253的工作原理及应用。 2. 自学附录中TC_USB通用微机接口实验系统介绍及集成软件开发环境的相关内容。 3. 按实验内容要求编写汇编语言源程序。 三、实验原理补充 1. 16位以上微型计算机的中断源 PC/AT及286以上的微型计算机,主板上有两片8259中断控制器,各中断源如下所列:中断源 中断类型号 中断功能 IRQ0 08H 时钟 IRQ1 09H 键盘 IRQ2 0AH 级连从片8259电路 IRQ3 0BH 串行口2IRQ4 0CH 串行口1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘 IRQ7 0FH 并行打印机 IRQ8 070H 实时时钟 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 073H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15 077H 保留 在以后的升级中,将中断控制集成到多功能I/O接口芯片中,但在实模式下的使用仍和两片8259芯片的情况兼容。 PC机中断控制器8259(主片)的地址为20H、21H,第二片8259的地址为A0H,A1H。编程时要根据中断类型号设置中断矢量,中断屏蔽寄存器对应位要清零(打开屏蔽,允许中断)。由于采用了两片级连8259,清除中断源屏蔽需要对两片分别进行清零设置。当中断为0~7时,对第一片8259相应位清零,第二片保留原设置;当中断为8~15时,对第一片8259的第二位IRQ2清零,第二片8259相应位清零。例如中断9时,第一片8259的中断掩码 (第二位IRQ2清零),第二片8259的中断掩码为011111101b (IRQ9清零)* 对IRQ2清零时需要保持其它位不变。 IN AL, 21H MOV KEEP_IRQ, AL ;KEEP_IRQ用来保存原中断屏蔽 AND AL, ;使用AND命令对相应位IRQ2清零,其它位保持不变 OUT 21H, AL * 程序结束时恢复对应中断源的屏蔽。MOV AL, KEEP_IRQ OUT 21H, AL * 中断服务程序结束前,给8259写中断结束命令EOI,才可中断返回。 MOV AL, 20H OUT 20H, AL 2. TPC实验上的中断编程 四、实验内容 1. 8259中断管理电路 TPC实验台面板右上角的总线信号区中有一个IRQ插孔,另外,实验台面板正中的下方还有一个单脉冲按键,每按一下其信号输出端(Ω)将发出一个正脉冲。实验要求用一根导线将单脉冲信号引至IRQ插孔,按一下按键,通过程序在屏幕上显示一行提示信息,10次之后退回DOS两次按键之间要有0.5s时间间隔。 DOS已对此片8259完成了初始化编程及工作编程。为了不影响系统工作,用户不宜重新再对8259初始化,但可以重写一次中断屏蔽字,以清除对IRQ的屏蔽。在用户程序结束时最好再恢复对IRQ的屏蔽。 做中断实验,须将用户中断服务程序的入口地址安装到中断矢量表里相应处,这可以通过功能号AH=25H的DOS调用INT 21H实现。更规范的做法是在修改中断矢量表之前,用功能号AH=35H的INT 21H将系统原来的中断矢量内容读出,并保存在数据区中,然后修改中断矢量表为用户所用,最后在退出用户程序前再用功能号AH=25H的DOS调用恢复中断矢量表原来的内容。 用户的程序应分成主程序和中断服务程序两部分。下列程序流程图可供编程时参考。 2. 8253计数电路 在实验台左端找到8253芯片,再从实验台右上方找到I/O地址译码信号的引出插孔Y0~Y7,每个译码信号都是低电位有效,各占8个I/O地址。从中选择一个用导线引至8253的片选端CS,于是这片8253电路在计算机中的I/O地址就确定了。 实验要求将8253的CNT0和CNT1串起来实现106分频,即将实验台上的1MHz时钟信号接CNT0的时钟输入端CLK0,其输出端OUT0再接CNT1的CLK1,GATE0和GATE1都接+5V,CNT0和CNT1全工作于方式3,由OUT1输出1Hz的方波,请独立完成对8253的实验接线及编程。 思考本次实验为什么要将8253的两个计数器串起来(这种连接方式又称级连)使用,只用一个计数器可以实现106分频吗? OUT1输出信号接至LED灯,LED灯以1Hz的频率闪烁。 代码如下: code segment assume cs:code start: mov dx,283h ;这里使用283开始的地址 mov

文档评论(0)

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

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

1亿VIP精品文档

相关文档