微机原理实验4_第1页
微机原理实验4_第2页
微机原理实验4_第3页
微机原理实验4_第4页
微机原理实验4_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1实验四、软中断、硬中断程序设计一、实验目的通过对软中断、可屏蔽硬中断程序的编写和调试,掌握IBM-PC机的软中断、可屏蔽硬中断程序的编写和调试,掌握IBMPC系列微机的中断系统及中断程序设计方法。2

二、实验任务1.编写一个类型为60H的中断程序,其功能发出一阵铃响, 在主程序中用中断INT60H调用该中断程序。2.可屏蔽硬中断程序设计

(1)改写键盘硬中断子程 每按下一个键,在屏幕上将该键对应的扫描码 以二进制形式显示出来。

(2)利用键盘控制定时显示功能

每隔1秒钟显示字符串’CanIhelpyou?’, 当按下一个键时,则停止定时显示功能, 再按下一键时,恢复定时显示功能。33.(选作)

用TPC-1型微机实验箱上单脉冲电路产生的正脉冲信号做中断源,

依次检测PC总线上的中断申请插孔IRQ2~IRQ7, 确定哪些未被微机系统占用。4三、实验说明关于任务1 (1)进行软中断程序设计最好使用DOS系统保留给用户应用的中断类型,否则处理不当,会引起意想不到的后果。

(2)用INT60H即可调用60H中断子程

60H属于系统保留给用户的软中断类型号, 只要在中断向量表0:460H单元中存放用户编写的60H中断程序入口地址,用INT60H即可调用60H中断子程。

52.关于任务2(1)

键盘中断类型号为09H,编写键盘硬中断程序要点是:(1) 键盘接口按下键和释放键都向8259A发出中断申请 若满足响应条件:

对键盘上的一个按键操作(包括按下键和释放键),

CPU将执行两次键盘中断(按下键一次,释放键一次)。(2) CPU响应键盘中断时

可从60H端口读取按下键的扫描码, 可据扫描码的最高位确定是按下键操作还是释放键操作,

最高位为1(扫描码为断码),则说明是释放键引起的中断; 最高位为0(扫描码为通码),则说明是按下键引起的中断。6(3) 若在IBMPC和XT上 在读取扫描码后,应置键盘应答信号,键盘接口才能 为接收下一个键做好准备。置键盘应答位的方法是: 先将61H端口的最高位置1, 再将61H的最高位置0。 原理可参看键盘接口有关资料。 若在AT及以上微机做实验, 在读取扫描码后,可不用键盘应答信号。7在PC和XT机上,键盘中断处理程序中置键盘应答和判断通码、断码的过程:

PUSH AX ;保存寄存器值(保存现场) IN AL,60H ;读扫描码

MOV AH,AL ;保存在AH中

IN AL,61H ;置键盘应答

OR AL,80H OUT 61h,AL ;使61H口最高位为1 AND AL,7FH OUT 61H,AL ;使61H口最高位为0 TEST AH,80H ;检查是按下键还是释放键,即是通码吗? JNZ release ;不是通码则转去作释放键处理

…… ;按下键处理release: ;释放键处理

…… MOV AL,20H ;发中断结束

OUT 20H,AL POP AX ;恢复寄存器值(恢复现场) IRET ;中断返回8在AT及以上微机,去掉键盘应答部分,键盘中断处理程序可简化为:

PUSH AX ;保存寄存器值(保存现场) IN AL,60H ;读扫描码

TEST AL,80H;检查是按下键还是释放键,即是通码吗? JNZ release ;不是通码则转去作释放键处理

…… ;按下键处理

release: ;释放键处理 …… MOV AL,20H ;发中断结束

OUT 20H,AL POP AX ;恢复寄存器值(恢复现场) IRET ;中断返回9(4) 在键盘中断处理程序的最后应发中断结束命令, 否则将屏蔽键盘中断。103. 关于任务2(2)

要用到定时和键盘两个中断源。 可在任务2(1)的基础上完成,

在键盘中断子程中,设置一个标志变量flag, 用以区分是奇数次按键还是偶数次按键。

对奇数次按键,可重置8259A的屏蔽字,屏蔽定时器中断,使CPU不再响应定时中断,从而停止了定时显示功能;

对偶数次按键,则清除对定时中断的屏蔽,以恢复定时显示的功能。11关于任务3(选做)

计算机上实际配置的外设不同,8259A的IR2~IR7的占用情况也就会不同。 利用PC总线上的中断申请插孔IRQ2~IRQ7,自编程序进行检测。

(1)IRQ2~IRQ7对应的中断类型号为0A~0FH。

(2)在中断子程中,显示字符串’InterruptisOK!’。

对可用的中断申请插孔,运行的结果是能够正常显示该字符串;

对于发生冲突的不可用中断申请插孔,运行的结果是不能够正常显示该字符串,甚至出现死机等异常情况。12有关8259A(1)IBMPC系列微机的可屏蔽中断系统由主板上的8259A控制。(2)8259A是一个可编程中断控制器

IBMPC和XT机使用1片8259A,可管理8个中断申请,

IBMPC/AT及以上微机使用2片8259A级连,可管理15个中断申请。主8259A的端口地址为20H和21H。(3)BIOS对主8259A的设置如下:边沿触发方式,当输入端IR0~IR7出现上升沿信号时,发出中断申请信号。中断向量初值为08H,IR0~IR7对应的中断类型号为08H~0FH。固定优先级,IR0优先级最高,IR7优先级最低。一般屏蔽方式,用中断屏蔽寄存器IMR控制各级中断的允许或屏蔽。一般全嵌套方式,中断服务结束时,需发中断结束命令EOI,清除ISR中的记录,否则屏蔽同级或低级的中断。13(4)每片8259A有8个中断申请输入端IR0~IR7

主8259A的连接情况如下:

IR0与主板上的8253计数器0相连,该计数器输出频率为18.2hz的方波。

IR1与键盘接口发出的中断申请相连。

IR2~IR7分配给其它外设,或未使用。在PC总线上可由插孔IRQ2~IRQ7引入中断申请信号。14(5)有关8259A的编程:

设置中断屏蔽字

中断屏蔽寄存器的端口地址为21H。 通过改变中断屏蔽寄存器各位的值实现:

某位为0,允许该级中断申请进入; 某位为1,禁止该级中断申请进入。例:新增允许IR2的中断申请

IN AL,21H ;读入原IMR的内容

AND AL,11111011B ;新增允许IR2的中断申请

OUT 21H,AL ;写入中断屏蔽寄存器IMR例:屏蔽IR7的中断申请

IN AL,21H ;读入原IMR的内容

OR AL,10000000B ;屏蔽IR7的中断申请

OUT 21H,AL ;写入中断屏蔽寄存器IMR15(6) 发中断结束命令EOI

通过往8259A的偶地址写入20H实现,

8259A的偶地址为20H,指令如下:

MOV AL,20H OUT 20H,AL16(7)可屏蔽硬中断程序的编写方法

保存原中断向量可用DOS的35H功能调用。设置新中断向量和恢复原中断向量可用DOS的25H功能调用。 中断向量的类型号由中断源与8259A的连接关系确定。 主程完成与中断有关的设置工作后, 即可进行其它工作的处理,通常此处可用一双重循环延时程序段,或用计数中断子程被执行次数,或用判断是否有按键动作等代替。在结束主程,返回DOS之前,应据中断源的不同情况做处理:或恢复原中断向量,或通过设置8259A的中断屏蔽字屏蔽对此级中断源 的反应。 中断子程中,处理中断源请求的任务,在中断返回前,应发中断结束命令EOI。图1和图2分别是可屏蔽硬中断的主程序和中断子程序流程图。17开始CLI关中断

保存原中断向量

设置新中断向量

设置8259A的中断屏蔽字

中断子程有关量的初始化STI开中断

主程其它工作处理

(可用双重循环延时代替)

恢复原中断向量返回DOS

图1主程序流程图开始

保存现场

完成中断源申请的任务

发中断结束命令EOI

恢复现场

IRET中断返回图2中断子程流程图18三、实验箱上相关电路

参看附3,了解TPC-1型微机实验系统,掌握实验箱上IBMPC/XT总线、单脉冲电路和8MHz脉冲电路。图3-1TPC-1型实验箱实物1、TPC-1型实验箱实物1960芯扁平电缆插槽

电源开关J6PC总线插槽1PC总线插槽2PC总线插孔排

DAC0832U18U16U42CSAOUTU11RAM6116A9A10A8A7A6A5A4A3A2A1A0U39DMAU14U20U43U13U15U381J41J31J2JSDRQADC0809IN0IN1IN2IN3IN4IN5IN6IN7EOC500kHzCS8253CLK1CLK2CLK3CSOUT1OUT2OUT3GATE1GATE2GATE3U37U1074LS138U44U27U28U32U26ABQ3Q2Q1Q0Q7Q6Q5Q474LS393Q11Q10Q9Q8Q15Q14Q13Q1274LS393200-207208-20F210-217218-21F220-227228-22F230-237238-23FPB3PB4PB5PB6PB73PC0PC1PC2PC3PC4PC5PC6PC7WGO48CXM159DYP26AESR37BFPB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0CS8251ARxRDYTxCRxCCSTxRDYTxE14881489RTSDTRGNDRxDTxDU45L2L1L3L4L5L6L7L8L9L10L11L12K2K1K3K4K5K6K7K8K9K10K11K12GND+5v+12v-5v-12v8MHz

可调电阻12个逻辑电平开关12个发光二极管RESU33CSU9U1U2U3U6U4U7U40U41U29U30U31U34

面包板8255A图3-2TPC-1型实验箱面板布置图2、实验箱面板布置图203、PC总线信号实验箱上有两个PC总线扩展插槽和一个PC总线信号引出插孔排。

B1A1B10A10B20A20B30A30图3-3-PC总线信号引脚I/OCH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论