可编程并行接口实验(8255a方式1).docx

上传人:wj 文档编号:583175 上传时间:2023-04-29 格式:DOCX 页数:5 大小:20.13KB
下载 相关 举报
可编程并行接口实验(8255a方式1).docx_第1页
第1页 / 共5页
可编程并行接口实验(8255a方式1).docx_第2页
第2页 / 共5页
可编程并行接口实验(8255a方式1).docx_第3页
第3页 / 共5页
可编程并行接口实验(8255a方式1).docx_第4页
第4页 / 共5页
可编程并行接口实验(8255a方式1).docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

可编程并行接口实验(8255a方式1).docx

《可编程并行接口实验(8255a方式1).docx》由会员分享,可在线阅读,更多相关《可编程并行接口实验(8255a方式1).docx(5页珍藏版)》请在冰点文库上搜索。

可编程并行接口实验(8255a方式1).docx

可编程并行接口实验(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码,在屏幕上显示其对应的字符。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2