可编程并行接口实验(8255a方式1).docx
- 文档编号:147849
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:5
- 大小:20.13KB
可编程并行接口实验(8255a方式1).docx
《可编程并行接口实验(8255a方式1).docx》由会员分享,可在线阅读,更多相关《可编程并行接口实验(8255a方式1).docx(5页珍藏版)》请在冰豆网上搜索。
可编程并行接口实验(8255A方式1)
实验目的
掌握8255A工作方式1的使用方法;进一步掌握编写中断服务程序的方法。
实验内容
1.8255A选通行输出实验,具体要求:
(1)设置8255A的A口工作在方式1输出;
(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;
(3)设计中断服务程序:
依次输出01H,02H,04H,08H,10H,20H,40H,80H。
使L0—L7依次发光。
2.8255A选通行输入实验,具体要求:
(1)设置8255A的A口工作在方式1输入;
(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;
(3)设计中断服务程序:
读取开关表示的ASCII码,在屏幕上显示其对应的字符。
实验连线
1实验内容1连线
(1)8255A芯片的A口PA7~PA0连发光二极管L7~L0;
(2)PC3连接IRQ;
(3)PC6连接单脉冲发生器。
2实验内容2连线
(1)8255A芯片的A口PA7~PA0连逻辑开关K7~K0;
(2)PC3连接IRQ;
(3)PC4连接单脉冲发生。
流程图
中断开始
开关断
发出EOI结束中断
输出字符
开中断
寄存器进栈
寄存器出栈
中断结束
开始
N
按任意键
Y
Y
结束
设置TPC卡中断关闭
恢复中断屏蔽寄存器
恢复中断使能
设置中断屏蔽寄存器
设置新中断使能
得到原中断向量并保存
设置TPC卡中断使能
开中断
关中断
这是试验2的流程图,实验1相似
实验代码
试验2的代码是在试验1的代码基础上稍作改动,这里只列出试验2的代码:
ASSUME CS:
CODE,DS:
DATA
DATA SEGMENT ;数据段定义IOPORT EQU 5400H-280H
IOPORT_CENT EQU 5000H ;9054芯片的I/O起始地址MASKZ EQU 0FBH ;8259A主片屏蔽码MASKC EQU 0F7H ;8259A从片屏蔽码
INTNUM DW 0 ;保存ES的定义量
INTNUMSE DW 0 ;保存BX的定义量
DATA ENDS
STACK1SEGMENTSTACK‘STACK1’DB 50 DUP(?
)
STACK1ENDS
CODE SEGMENT ;代码段定义START:
MOV DX,IOPORT+28BH ;根据实验连线,此次实验控制口为540BH
MOV AL,0B0H ;设置8255A的控制关键字(设置成方式1,端口A输入)OUT DX,AL
CLI ;关中断
MOV DX,IOPORT_CENT+68H ;设置9054芯片使能寄存器IN AX,DX
OR AX,0900H
OUT DX,AX
;得到原中断向量并保存
MOV AH,35H ;取中段向量
MOV AL,73H ;针对本台计算机查表得出中断类型号为73HINT 21H
MOV INTNUMSE,BX;保存BX
MOV AX,ES ;保存ES
MOV INTNUM,AX
;设置新中断向量
MOV AX,CS
MOV DS,AX
MOV DX,OFFSETINTPROC ;设置新的中断向量MOV AL,073H
MOV AH,25H
INT
21H
;设置中断屏蔽寄存器
IN
AND
AL,21H
AL,MASKZ
;8259A主片的中断屏蔽寄存器端口地址为21H
;中断屏蔽寄存器中主片相应位置1,本实验中第三位置
1
OUT
21H,AL
IN
AL,0A1H
;8259A从片的中断屏蔽寄存器端口地址为0A1H
AND
AL,MASKC
OUT
0A1H,AL
;中断屏蔽寄存器中从片相应位置1,本实验中第四位置
1
STI ;开中断
MOV AL,00001001B ;设置PC4为1MOV DX,IOPORT+28BH
OUT DX,AL
OUTER:
MOV AH,01H ;判断是否有任意键按下INT 16H
JZ OUTER ;没有键按下程序重复
MOV AX,INTNUM ;恢复原中断向量MOV DS,AX
MOV DX,INTNUMSE
MOV AL,073H
MOV AH,25H
INT 21H
;恢复中断屏蔽寄存器IN AL,21H
OR AL,04H
OUT 21H,AL
IN AL,0A1H
OR AL,08H
OUT 0A1H,AL
MOV DX,IOPORT_CENT+68H ;关闭9054IN AX,DX
OR AX,0F6FFH
OUT DX,AX
MOV AH,4CH ;有键按下,程序结束,返回DOS界面
;中断服务子程序INTPROC:
PUSH AX ;寄存器入栈保护PUSH BX
PUSH CX
PUSH DX
PUSH DS
STI ;开中断
MOV CX,0FFFFHH:
LOOP H
MOV DX,IOPORT+288H ;A口输入
IN AL,DX
MOV DL,AL ;输出开关所对应的字符MOV AH,02H
INT 21H
MOV AL,20H ;发出EOI结束中断
OUT 20H,AL
OUT 0A0H,AL
CLI ;关中断
POP DS ;寄存器出栈
POP DX
POP CX
POP BX
POP AX
IRET ;中断返回
CODE ENDS
END START
结果描述
试验1:
每按一次单脉冲,L0~L7依次发光。
试验2:
每按一次单脉冲,读取开关表示的ASCII码,在屏幕上显示其对应的字符。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 并行 接口 实验 8255 方式