Protues8259A试验报告文档格式.docx
《Protues8259A试验报告文档格式.docx》由会员分享,可在线阅读,更多相关《Protues8259A试验报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
-C
T
A12
1
Y0Y1Y2Y3Y4Y5Y6Y7
74HC138
<
TEXT;
-
(2)8259的片选地址为9000H,所以免接?
1。
8086有16位数据总线,其低8位作为偶存储体来传输数据,8086
的A0要一直为0,所以8259的A0要接8086的A2
U7
E=L.
1°
18
19
20
21
22
R9ZZ
WO蒼
R0R1R2R3R4R5R6R7
8259
TE>
(3)74LS273的片选地址为8000H.且需要向其写入LED灯的状态,则%和袄经或非门后接入CLKo
U8:
A
4JB33
HLT
?
icm
R3
I0D
:
TEO>
D1
D8
LEWI
LEI-RED
KDD
HUI
4
胡2
7
HUJ
2
ftD<
13
^17
亦12
11
•:
CLK
WR
MOT巧SO
KOT
NOT
im
TE-
R7w
TBT>
MOT6T5<
T>
RS
1QDcTEXI>
R5
cTE>
cTBCT
WcTECD
F;
1QD
fEXT-
;
TD<
n
D7
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);
(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
MOVAL,01H
MOVAX.O
MOVDS,AX
MOVBX,82H*4
MOVAX.OFFSETINTP
MOV[BX],AX
「CODE“逻辑段开始
;
关中断
8259初始化
ICWl=13H(00010011B)
ICW2=80H(10000000B)
ICW3=01H(00000001B)
非规范装入地址向量
INCBX
MOVAX,SEGINTP
MOVDX,9002H;
允许IRQ2中断
INAL.DX
ANDAL.OFBH
MOVDX.8000H
MOVAL.OOH
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:
INAL,DX
ORAL,4
MOVCX,OFFFFH
L:
LOOPL
亮•需用延时
MOVAL,00H
JMP$
INTPPROC
MOVAL,BL
ROLBL,1
DECCX
MOVDX.9000H
发中断结束命令EOI
INTPENDP
CODEENDS
ENDSTART;
汇编结束
四运行结果
第一次按开关执行第一次中断LEDO亮。
第二次按开关LED1亮
以此重复,LED灯依次亮灭,直到10次计数为止。
第十次按动开关LED1亮
最后LED灯全灭
五实验思考题
2、中断服务子程序是何时开始执行的?
将INTP的入口地址送入到IP和CS后。
2、中断类型号是何时送到数据总线上的?
INTA发出第二个负脉冲时