8255接口电路设计实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六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 ;定义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

LOOP1: CALL DALLY

MOV AL,LA ;将A口起始数据右移再写入A口 ROR AL,1

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL

MOV AL,LB ;将B口起始数据左移再写入B口 ROL AL,1

MOV LB,AL

MOV DX,MY8255_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 ;将A口起始数据右移再写入A口 ROL AL,1

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL

MOV AL,LB ;将B口起始数据左移再写入B口 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 ;将A口起始数据右移再写入A口 ROR AL,1

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL

相关文档
最新文档