实验五基本IO扩展与中断实验Word下载.docx
《实验五基本IO扩展与中断实验Word下载.docx》由会员分享,可在线阅读,更多相关《实验五基本IO扩展与中断实验Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
![实验五基本IO扩展与中断实验Word下载.docx](https://file1.bdocx.com/fileroot1/2022-10/13/734a7022-e14d-4dd0-91fb-a0cf6bc57e64/734a7022-e14d-4dd0-91fb-a0cf6bc57e641.gif)
同时,
在不需增加其它电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管
理功能包括:
①记录各级中断源请求,②判别优先级,确定是否响应和响应哪一级中断,③响应中断
时,向CPU传送中断类型号。
8259A的内部结构和引脚如图3-2-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用
需要将初始化命令字ICW1~ICW4和操作命令字OCW1~OCW3分别写入初始化命令寄存器组和操作命令寄
存器组。
ICW1-ICW4各命令字格式如图3-2-2所示,OCW1-OCW3各命令字格式如图3-2-3所示,其中
OCW1用于设置中断屏蔽操作字,OCW2用语设置优先级循环方式和中断结束方式的操作命令字,OCW3
用语设置和撤消特殊屏蔽方式,设置中断查询方式以及设置对8259内部寄存器的读出命令。
10
QTH-*086B实验系统说明书
图28259内部结构和引脚图
A0
D7
D6
D5
D4
D3
D2
D1
D0
*
1
LTIM
ADI
S*GL
I*4
8086/88不用
8*86/88不用
特征位
0:
边沿触发
无效
单片使用
不需要ICW4
1:
电平触发
多片级联
图3(a)ICW1格式
*6
D*
*1
中断类型高5位
图3(b)ICW2格式
*5
**
*2
S*
S5
*4
S0
主片
不可用
*D2
ID1
ID0
从片
图3(c)*CW3格式
SFN*
B*F
*/S
AEOI
UPM
图3(d)ICW4格式
11
QTH-808*B实验系统说明书
图48259命令字格式
(2)8259寄存器及命令的控制访问
在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄
存器和命令字。
对寄存器和命令字的访问控制如表3-1所示。
表3-18259寄存器及命令的访问控制
读信号
写信号
片选
操作
读出*SR,IR*的内容
读出IMR的内容
写入OCW*
写入*CW3
X
写入ICW1
写入OCW1,ICW2,ICW3,I**4
(3)PC微机系统中8259A的应用
在现代PC微机系统中,系统中包含了两片82*9A中断控制器,经级连可以管理16级硬件中断,
其中部分中断源已经被系统硬件占用,具体使用情况如表3-2示。
两片8259A的端口地址为:
在020H-03FH,实际使用020H和021H两个端口;
从片在0A0H-0BFH范围,实际使用0A0H和0A1H两
个端口。
QTH-8086B实验系统说明书
表3-2PC微机系统中的硬件中断
中断源
功能
中断向量号
主8259AIRQ0
定时中断
08*
主8259AIR*8
实时钟
*0H
主8259AIRQ1
键盘中断
09H
主825*AIRQ9
保留
7*H
主*259AIRQ2
接从8259A
0AH
主8259A*RQ1*
72H
主8259AI*Q3
*OM2
0BH
主825*AIRQ11
73H
主*259AIR*4
*OM*
*CH
主8*5*A**Q12
74H
主*259*I**5
硬盘/并口2中断
0*H
主82*9*IRQ1*
写处理中断
75H
主8*59AIRQ6
软盘
0E*
主8**9AIRQ1*
硬盘控制器
76H
主82*9AIRQ7
打印机
**H
主*259AIRQ15
*7H
四、实验原理图
图17LS244与74LS273扩展I/O口原理图
五、实验内容
1.利用74LS244作为输入口,读取开关状态,并将此状态通过74LS27*驱动发光二极管显示出来。
2.用脉冲作为中断源,编写一实验程序,完成按键中断的响应,每产生一次按键中断,中断次数加1。
通过并行接口芯片8255,将中断号和中断次数分别从8255的A口和B口送两排8个LED灯分别显示出来,拨动开关KN09观察数码管的变化;
改变中断输入,观察显示变化。
六、实验步骤
1.基本I/O扩展
(1)实验连线:
244的CS——MCU主模块的地址A15,Y7~Y0——开关K01—K08。
273的CS——MCU主模块的地址A14,Q7~Q0——发光二极管L1—L8。
该模块的WR、RD分别连到MCU主模块的WR、RD。
该模块的数据(AD0~AD7)连到MCU主模块的数据(AD0~AD7)。
(2)运行程序:
IO.ASM
(3)拨动开关,观察发光二极管的变化
2.8259中断实验
(1)实验连线:
⏹8259模块选通线CS连到MCU主模块的地址A14。
⏹8259模块的WR、RD分别连到MCU主模块的WR、RD。
⏹8259模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
⏹8259模块的INTA接MCU主模块的的INTA,INT接MCU主模块的INTR,IRx(指IR0~IR7中的任一个)接信号源模块的1H。
⏹8255模块的WR、RD分别连到MCU主模块的WR、RD。
⏹8255模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
⏹8255模块选通线CE连到MCU主模块的地址A15。
⏹8255模块的A口PA0-PA7接发光二极管L9—L16;
B口PB0~PB7接发光二极管L1—L8。
(2)运行程序:
INTR.ASM。
七、实验报告要求:
1.给程序未加注释的语句加上注释;
2.分别写明两个实验中连线操作各步骤的目的和作用;
3.改变与各芯片CS连接的地址线,端口地址做何修改?
4.归纳总结LS244和LS273的作用及其编程方法;
4.归纳总结中断编程步骤;
5.总结比较I/O接口查询方式与中断方式的各自的特点。
七、源程序清单及其每句的注释
1、基本I/O扩展:
LS244EQU7000H;
定义LS244端口地址
LS273EQU0B000H;
定义LS273端口地址
datasegment;
数据段
adb20dup(0)
dataends
stacksegmentstack;
堆栈段
db100dup(0)
stackends
codesegment;
代码段
assumecs:
code,ss:
stack,ds:
data
ORG0100H;
段程序的起始地址
MAIN:
movAX,data
movds,ax;
设置数据段
movax,stack
movss,ax;
设置堆栈段
MOVSP,9000H
MOVDX,LS244;
LS244地址给DX,读取开关状态
INAL,DX;
输入开关状态到AL
MOVDX,LS273;
LS273地址给DX,读取二极管状态
OUTDX,AL;
AL内容送LED显示
JMPMAIN;
无条件跳转,循环main
codeends
endMAIN
2.INTR.ASM
;
数据线、地址线
8255读写信号接WR、RD,选通信号CE接A15,PA0-PA7接发光二极管L16—L9;
PB0~PB7接发光二极管L8—L1。
8259读写信号接WR、RD,选通信号CS接A14,INTA接INTA,INT接INTR,IR0接脉
冲电路的上升沿用
A82590EQU0B000H;
设8259A,A0端口地址是0B000H
A82591EQU0B001H;
设8259A,A1端口地址是0B001H
A8255EQU7000H;
设8255A0端口地址是7000H
B8255EQU7001H;
设8255B0端口地址是7001H
C8255EQU7002H;
设8255C0端口地址是7002H
D8255EQU7003H;
设8255D0端口地址是7003H
DATASEGMENT;
NUMDB?
;
中断类型为字节型
TIMESDB0;
设置中断次数初始值是0
DATAENDS
STACKSEGMENTSTACK;
定义堆栈段
DB40DUP(0);
堆栈段开40字节空间,初始化为0
STK_TPDB0;
栈顶指针地址赋值为0
STACKENDS
CODESEGMENT;
定义代码段
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES: