8255并口控制器应用实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HUNAN UNIVERSITY 课程实验报告
实验名称8255并口控制器应用实验学生姓名
学生学号
专业班级
指导老师
2014-12-10
实验二8255并口控制器应用实验
一、实验目的
1.掌握8255的工作方式及应用编程;
2.掌握8255的典型应用电路接法。
二、实验内容
1.流水灯显示实验。编写程序,使8255的A口和B口均为输出,实现16
位数据灯的相对循环显示;
2.基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,
完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示
就改变。
三、实验原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
图1 8255内部结构及引脚图
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、
B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示。
图2 8255控制字
四、实验步骤及结果
1、流水灯显示实验
图3 流水灯显示程序流程图
首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。参考实验程序流程如图3所示。
图4 流水灯显示接线图
a)实验接线图如图4所示,按图连接实验线路图,连接好的实物图如
图5所示。
图5 8255连接实物图
b)运行Tdpit集成操作软件,根据实验内容,编写实验程序,编译、
链接,代码如下:
IOY0 EQU 3000H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址
MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DA TA SEGMENT
LA DB ? ;定义数据变量
LB DB ?
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_MODE ;定义8255工作方式
MOV AL,89H ;工作方式0,A口和B口为输出
OUT DX,AL
MOV DX,MY8255_A ;写A口发出的起始数据
MOV AL,01H
OUT DX,AL
MOV LA,AL
MOV DX,MY8255_B ;写B口发出的起始数据
MOV AL,80H
OUT DX,AL
MOV LB,AL
LOOP1: CALL DALL Y
MOV AL,LA ;将A口起始数据右移再写入A口
ROL AL,1
MOV LA,AL
MOV DX,MY8255_A
OUT DX,AL
MOV AL,LB ;将B口起始数据左移再写入B口
ROR AL,1
MOV LB,AL
MOV DX,MY8255_B
OUT DX,AL
MOV AH,1 ;判断是否有按键按下
INT 16H
JZ LOOP1 ;无按键则跳回继续循环,有则退出
QUIT: MOV AX,4C00H ;结束程序退出
INT 21H
DALL Y PROC NEAR ;软件延时子程序
PUSH CX
PUSH AX
MOV CX,0FFFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALL Y ENDP
CODE ENDS
END START
c)运行程序,观察LED灯的显示,验证程序功能程序结果。程序下载
后,运行效果为左、右的流水灯各自向右、左移动,如图6所示。
图6 流水灯效果图图 6
2、方式1输入输出实验
本实验是在上一个实验基础上改造而成。实验使8255端口A、B工作在方式0并作为输出口,端口C为输入口。在左右流水灯流动的时候,不断检测端口C输入是否为0,不为0则显示在A口,B口停止流水显示。具体步骤如下:(1)电路图在图4上进行改动,改动时参考了图7(改动只是添加了线连接PB[7…0]和K[7…0],实物图参考图5)。
图7 8255输入线路图
(2)运行Tdpit集成操作软件,根据实验内容,编写实验程序,编译、链接,实验代码也在上一个实验基础上改动,代码如下(改动部分标为红
色);
IOY0 EQU 3000H ;片选IOY0对应的端口始地址
MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址
MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
LA DB ? ;定义数据变量
LB DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA