实验六 8255接口电路设计实验
实验目的
(1) 掌握8255的工作方式级应用编程。 (2) 掌握8255的典型应用电路接法。 实验设备
PC微机一台、TD-PIT实验系统一套。 实验内容
(1)基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。
(2)流水灯显示实验。编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。 实验原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在一下三种方式下工作:方式0—基本输入/输出方式、方式2—选通输入/输出方式、方式2—双向选通工作方式。 实验说明
1、 基本输入输出实验
本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程实现输入输出功能。
8255并行接口应用实验接线图
程序流程图:
部分程序:MOV DX,MY8255_MODE ;初始化8255工作方式
MOV AL,82H ;工作方式0,A口输出,B口输入 OUT DX,AL
MOV DX,MY8255_B ;读B口
IN AL,DX
MOV DX,MY8255_A ;写A口 OUT DX,AL 2、流水灯显示实验
首先分别向A口和B口写入80H和01H,然后分别将该数左移和右移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。
8255并行应用实验接线图
程序流程图:
部分程序:DATA SEGMENT
LA DB ? ;LB DB ? DATA ENDS … …
MOV DX,MY8255_MODE ; MOV AL,80H ; OUT DX,AL
MOV DX,MY8255_A ; MOV AL,80H OUT DX,AL MOV LA,AL
MOV DX,MY8255_B ; MOV AL,01H OUT DX,AL MOV LB,AL
LOOP1: CALL DALLY
MOV AL,LA ; ROR AL,1 MOV LA,AL
MOV DX,MY8255_A OUT DX,AL
MOV AL,LB ; ROL AL,1 MOV LB,AL
MOV DX,MY8255_B
定义数据变量 定义8255工作方式 工作方式0,A口和B口为输出 写A口发出的起始数据 写B口发出的起始数据 将A口起始数据右移再写入A口将B口起始数据左移再写入B口
OUT DX,AL
用键盘控制实现流水灯的左循环、右循环、间隔闪烁程序:
;****************根据查看端口资源修改下列符号值******************* IOY0 EQU 0E400H ;片选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 ?
A0 DB 'shu ru ning de xuan ze:',0DH,0AH,'$' A1 DB 'press 1:zuo yi',0DH,0AH,'$' A2 DB 'press 2:you yi',0DH,0AH,'$'
A3 DB 'press 3:jian ge shang shuo',0DH,0AH,'$' DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX
MOV DX,MY8255_MODE ;定义8255工作方式 MOV AL,80H ;工作方式0,A口和B口为输出 OUT DX,AL
MOV DX,MY8255_A ;写A口发出的起始数据 MOV AL,80H OUT DX,AL MOV LA,AL
MOV DX,MY8255_B ;写B口发出的起始数据 MOV AL,01H OUT DX,AL MOV LB,AL
D0: MOV DX,OFFSET A0
MOV AH,09H INT 21H
MOV DX,OFFSET A1 INT 21H
MOV DX,OFFSET A2 INT 21H
MOV DX,OFFSET A3 INT 21H MOV AH,1 INT 21H CMP AL,'1' JE LOOP1 CMP AL,'2' JE LOOP2 CMP AL,'3' JE LOOP3 JMP D0
LOOP1: CALL DALLY
MOV AL,LA ; ROL AL,1 MOV LA,AL
MOV DX,MY8255_A OUT DX,AL
MOV AL,LB ; ROL AL,1 MOV LB,AL
MOV DX,MY8255_B OUT DX,AL
MOV AH,1 ; INT 16H JZ LOOP1
JNZ QUIT ;
LOOP2: CALL DALLY
MOV AL,LA ; ROR AL,1 MOV LA,AL
MOV DX,MY8255_A OUT DX,AL
将A口起始数据右移再写入A口 将B口起始数据左移再写入B口 判断是否有按键按下 无按键则跳回继续循环,有则退出将A口起始数据右移再写入A口
8255接口电路设计实验
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)