我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:全民彩票 > 多级中断 >

多级嵌套的中断试验

归档日期:07-16       文本归类:多级中断      文章编辑:爱尚语录

  了解可以响应中断请求的条件和时刻,响应中断的过程和实现方案;理解使用中断隐指令的必要性; 了解中断处理的完整过程,开中断,关中断操作的作用,保存现场信息和恢复现场信息必须确保完整完成的含义和可行措施; 掌握确定中断向量,设计中断处理程序的操作步骤和实现方法;二.实验原理 1.1 中断电路 TH-union 教学机中断电路的总体组成,如下图所示: 图中IRQ0—IRQ2 个中断请求源信号,分别对应实验箱上的三个中断请求按钮,实验时,按下某个按钮表示发出相应的中断请求信号。这三级中断的 优先次序从低到高为IRQ0 到IRQ2。 1.2 中断处理在教学机中的具体实现 教学机的中断线 片GAL、 个无锁按键、2片74LS374 个无锁按键,提供中断请求的源信号教学机支持3 级中断发,这3 个无锁按键作为3 个中断源,从右到左依次为 一、二、三级中断,对应的中断优先级编码P1、P0 依次为01、10、11,优先级 也依次升高。这3 个无锁按键的引脚作为INTS GAL 和INTP GAL 的输入。 (2)INTS GAL,接受并记忆通过无锁按键给出的中断请求源信号 该芯片的输入信号除了3 个引脚外,还有控制信号DC23、/GIR 及系统时钟CK1。输出信号只有 个分别表示取指时3个无锁按键是否被 按下,如果被按下,则相应的输出信号为高电平,否则为低电平。这3 个输出信 号被送至INTP GAL 该芯片实现的功能是,在每次取指前一拍(用DC2-3=1指示),将3 个输出 信号全部置零;在每次取指时(/GIR 信号指示),都检测是否有中断请求(即是 否有无锁按键被下),并用这 个输出信号都将保持不变。(3)INTP GAL,在条件成立时,向CPU 发出中断请求信号/INT(低电平 有效) 该芯片实现的功能是 1)对INTSGAL 送来的3 个信号进行中断优先级编码,得到新请求的中断 优先级,并与当前中断优先级P1、P0 比较; 2)设置中断允许位INTE,该信号高电平表示允许中断,低电平表示禁止中 断。当控制信号DC12~DC10=110 时,INTE 被置为1;DC12~DC10=111 时,INTE 3)产生中断请求信号/INT,该信号低电平表示有(更高优先级)中断请求需要响应。 在中断允许位INTE=1 时,如果新的中断优先级比当前中断优先级高,则给出中 断请求信号/INT=0,否则/INT=1。 P1、P0 也是状态寄存器的 个输入信号,可随同状态标志(C、Z、V、S)压入/弹出栈。 P1、P0 也是 INTVTL74LS374 个输入信号,用来形成当前中断优先级在中断向量表中的首地址。 4)通过中断向量寄存器INTVTH 74LS374、INTVTL 74LS374 硬性设置的 中断向量分别为16 进制的2104、2108 和210C,对应的中断优先级分别是1、2、 三.实验内容及步骤1.实验内容 读懂教材中有关中断的概念,中断响应和中断处理的内容,了解这些功能在教学计算机中是如何实现的; 如果所用的教学计算机的基本指令集合中尚未实现中断隐指令,与处理中断有关的 EI,DI 和IRET 三条指令,则需要首先实现中断隐指令和扩 展这三条指令;如果在基本指令集中已经实现了上述内容,则直接跳过 这一实验步骤。 确定中断向量表地址。这个向量表是以XXX4 为首地址的一段内存区 (为每一个中断保留 个字的空间),用于存放对应每一个中断源的中断处理程序的首地址,要在中断隐指令中把这里的选定的一个地址传送 到程序计数器PC 中,之后就进入响应中断处理程序的执行过程。常用 的可行方案是在这里保存一条转移指令,实现依据不同的中断源转移到 不同的中断处理程序。教学机设置了3 个中断源并为每个中断源分配了 不同的优先级,则3 个终端程序入口地址分别为16 进制的XXX4,XXX8 和XXXC。 设计对应每一个中断的处理程序,例如显示对应各自中断优先级的一个数字符,重复显示80 或160 设计一个死循环程序并执行,例如反复先是大写字母M。在这个程序运行过程 中,通过按用作为中断请求源的3 个不同按钮,则屏幕上会显示不同的字符序列, 可以清楚的看到中断嵌套的运行情况。 2、实验步骤 (1)填写中断向量表 TH-union 教学机3 级中断的中断向量为2104H、2108H、210CH,填写中断表 的步骤如下: A2104 JR 2120 A2108 JR 2130 A210C JR 2140 (2)编写中断服务程序 A2420 PUSH R0 PUSH R3 MVRD R3,31 JR 2450 A2430 PUSH R0 PUSH R3 MVRD R3,32 JR 2450 A2440 PUSH R0 PUSH R3 MVRD R3,33 JR 2450 A2450 EI MVRD R0,0042 CALA 2200 MVRD R0,0049 CALA 2200 MVRR R0,R3 CALA 2200 81SHR R0 SHR R0 JRNC 245C 80MVRD R0,0045 CALA 2200 MVRD R0,0049 CALA 2200 MVRR R0,R3 CALA 2200 POP R3 POP R0 IRET A2200 PUSH R0 81SHR R0 JRNC 2201 POP R0 OUT 80 RET 注:各中断服务程序中,EI 与IRET 为扩展指令,不可用A 命令输入,只能用E 命令输入其机器码,即在输入中断服务程序时,遇到EI 与IRET 命令使,略过不 输入,在程序输入结束后,再执行如下命令: E2150 6E00 E216E EF00 (3)编写主程序 A2000 EI MVRD R0,0036 CALA 2200 MVRD R0,4000 DEC R0 JRNZ 2007 JR 2001 RET 注:主程序中的EI 指令的处理方法如上。 (4)运行主程序: 在命令行提示符状态下输入: G2000 屏幕将连续显示“6”。在程序执行过程中按下教学机右下放任意一个无 锁按键。此时,教学机转向执行本级中断服务程序,在屏幕上显示 BI 以及 按下的键对应的中断优先级。在按收键盘一个字符后,显示该字符并退出当 前级的中断服务程序,恢复中断现场,接着执行断点处的程序。若在接受字 符前,又有更高一级的中断请求,则教学机转向执行高一级的中断服务程序, 执行完后接着执行低级中断,然后退出执行主程序。需要注意的是若当前中 断为高级的中断,则不会响应低级中断。 指导教师签字:

本文链接:http://jomsell.com/duojizhongduan/385.html