Protues8259A试验报告.docx
《Protues8259A试验报告.docx》由会员分享,可在线阅读,更多相关《Protues8259A试验报告.docx(12页珍藏版)》请在冰豆网上搜索。
![Protues8259A试验报告.docx](https://file1.bdocx.com/fileroot1/2022-12/17/fdcd82d7-b9c6-4cb1-b48b-770d9665017a/fdcd82d7-b9c6-4cb1-b48b-770d9665017a1.gif)
Protues8259A试验报告
华北电力大学
实验报告
实验名称8259A应用实验
课程名称微机原理及应用
老师
专业班级
姓名
学号
—实验要求
74LS273接8个指示灯,要求第一次中断LEDO亮.第二次中断LED1亮,以此重复,直到10次计数到为止。
【已知8259A采用上升沿触发,单片,全嵌套、非缓冲、普通中断结束方式,需要设置ICW4.中断类型号为80H-87H,在8259A的IR2端(INT2端)输入一个中断请求信号(该信号由开关提供),74LS273的输出接LED指示灯。
】二思路
1硬件
(1)74HC138译码电路如图所示,A25为1,E2、E3接地保证74HC238正常工作,此时?
5、石对应地址分别为8000H、9000Ho
U6
A14
3
A15
C
-C
T
A12
1
Y0Y1Y2Y3Y4Y5Y6Y7
74HC138
(2)8259的片选地址为9000H,所以免接?
1。
8086有16位数据总线,其低8位作为偶存储体来传输数据,8086
的A0要一直为0,所以8259的A0要接8086的A2
U7
E=L.
1°1
18
19
20
21
22
R9ZZ
WO蒼
R0R1R2R3R4R5R6R7
8259
(3)74LS273的片选地址为8000H.且需要向其写入LED灯的状态,则%和袄经或非门后接入CLKo
U8:
A
4JB33
HLT
?
R3
I0D
:
TEO>
D1
D8
LEWI
LEI-RED
KDD
3
HUI
4
胡2
7
HUJ
2
ftD<13
^17
亦12
11
1
•:
CLK
WR
MOT巧SO
KOT
NOT
im
:
TE-
R7w
:
TBT>
MOT6T5
RS
1QDcTEXI>
R5
cTE>
cTBCT
WcTECD
F;1
1QD
fEXT-
;TDD7
LB-
D5IED-R
2软件
(l)流程图
主程序
灯按要求亮灭
计数器减1
向8259A’发中断
结束命令字0CW2
中断返回
(2)8259A初始化(ICW)
据要求(上升沿触发、单片、全嵌套、非缓冲、普通中断结束方式、
需设置ICW4,中断类型号为80H-87H),初始化:
ICW1-13H(00010011B);写入偶地址端口9000H
ICW2-08H(00001000B);写入奇地址端口9002H
ICW4二01H(00000001B);写入奇地址端口9002H
(3)中断屏蔽字(0CW1)(写入奇地址端口9002H)
允许IR2中断0CW1与0FBHCL1M1022B)相与
禁止IR2中断0CW2与04H(00000100B)相或
(4)中断结束字(0CW2)(写入偶地址端口9000H)
三源程序
CODESEGMENT
ASSUMECS:
CODE
START:
CLI
MOVDX,9000H
MOVAL.13H
OUTDX,AL
MOVDX.9002H
MOVAL,80H
OUTDX.AL
MOVDX.9002H
MOVAL,01H
OUTDX.AL
MOVAX.O
MOVDS,AX
MOVBX,82H*4
MOVAX.OFFSETINTP
MOV[BX],AX
「CODE“逻辑段开始
;关中断
;8259初始化
;ICWl=13H(00010011B)
;ICW2=80H(10000000B)
;ICW3=01H(00000001B)
;非规范装入地址向量
INCBX
INCBX
MOVAX,SEGINTP
MOV[BX],AX
MOVDX,9002H;允许IRQ2中断
INAL.DX
ANDAL.OFBH
OUTDX.AL
MOVDX.8000H
MOVAL.OOH
OUTDX,AL
MOVBL,1
态:
LEDO亮
MOVCX.10
STI
L1:
MOVAL82H
;发光二极管初始化为全灭
:
BL中为LED灯亮的初始状
;设置中断次数为10
;Proteus中8086模型有问
题,它取得的中断号是最后发到总线上的数据,并不是由8259发岀的中断号
MOVDX.0B000H
OUTDX.AL;所以造成了要在这里执行
EOI的假相,地址使用没有用过的,如bOOOh,8259的地址是9000h
JMPL1
JZQUIT
;循环等待中断
;禁止IRQ2中断
;开中断
;为看到第10次中断结束后LED灯
;10次中断结束,LED灯全灭
:
中断服务子程序
;计数值减1
QUIT:
CLI
MOVDX.9002H
INAL,DX
ORAL,4
OUTDX.AL
STI
MOVCX,OFFFFH
L:
LOOPL
亮•需用延时
MOVDX.8000H
MOVAL,00H
OUTDX.AL
JMP$
INTPPROC
MOVAL,BL
MOVDX.8000H
OUTDX.AL
ROLBL,1
DECCX
MOVDX.9000H
OUTDX,AL
;发中断结束命令EOI
INTPENDP
CODEENDS
ENDSTART;汇编结束
四运行结果
第一次按开关执行第一次中断LEDO亮。
第二次按开关LED1亮
以此重复,LED灯依次亮灭,直到10次计数为止。
第十次按动开关LED1亮
最后LED灯全灭
五实验思考题
2、中断服务子程序是何时开始执行的?
将INTP的入口地址送入到IP和CS后。
2、中断类型号是何时送到数据总线上的?
INTA发出第二个负脉冲时