8255并口控制器应用实验

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

8255并口控制器应用实验

一、实验目的

1. 掌握8255 的工作方式及应用编程。

2. 掌握8255 典型应用电路的接法。

二、实验内容

1. 基本输入输出实验。编写程序,使8255 的A 口为输出,B 口为输入,完

成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。

2.流水灯显示实验。编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正

相反,由右向左,每次仅点亮一个灯,循环显示。

四、实验原理与步骤

实验步骤

(1)基本输入输出实验

实验说明:

本实验使8255的端口A作为输出口工作在方式0,端口 B 作为输入口工作在方式0。用一组开关信号接入端口B,端口A 输出线接至一组数据灯上,然

后通过对8255 芯片编程来实现输入输出功能。

图3-2 8255基本输入输出实验参考接线图

实验步骤如下:

①实验接线图如图3-2所示,按图连接实验线路图。

②运行Tdpit 集成操作软件,根据实验内容,调用程序代码(T8255-1.ASM),

填写程序代码中的空缺处,编译、链接。

③运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。

实验代码如下:

IOY0 EQU 9860H ;片选IOY0对应的端口始地址

MY8255_A EQU 9860H ;8255的A口地址

MY8255_B EQU 9861H ;8255的B口地址

MY8255_C EQU 9862H ;8255的C口地址

MY8255_MODE EQU 9863H ;8255的控制寄存器地址

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV DX,MY8255_MODE ;初始化8255工作方式

MOV AL, 82H ;工作方式0,A口输出,B口输入

OUT DX,AL

LOOP1: MOV DX,MY8255_B ;读B口

IN AL,DX

MOV DX,MY8255_A ;写A口

OUT DX,AL

MOV AH,1 ;判断是否有按键按下

INT 16H

JZ LOOP1 ;无按键则跳回继续循环,有则退出

QUIT: MOV AX,4C00H ;结束程序退出

INT 21H

CODE ENDS

END START

(代码结束)

(2)流水灯显示实验

实验说明:

使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。参考实验程序流程如图3-3所示。

图3-3流水灯显示参考程序流程图

实验步骤如下:

①实验接线图如图3-4所示,按图连接实验线路图。

②运行Tdpit 集成操作软件,根据实验内容,调用程序代码(T8255-2.ASM),

填写程序代码中的空缺处,编译、链接。

③运行程序,观察LED 灯的显示,验证程序功能。

④自己设计流水灯的流动模式,编写程序并实现。

图3-4 8255流水灯显示参考接线图

实验代码如下:

IOY0 EQU 9860H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H ;8255的A口地址

MY8255_B EQU IOY0+01H ;8255的B口地址

MY8255_C EQU IOY0+02H ;8255的C口地址

MY8255_MODE EQU IOY0+03H ;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, 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 DALL Y

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

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

(代码结束)

8254定时/计数器应用实验内容

计数应用实验。编写程序,应用8254的计数功能,用开关模拟计数,使每当按动KKI+五次后,产生一次计数中断,并在屏幕上显示一个字符‘5’。

实验步骤

计数应用实验

实验说明:

编写程序,将8254的计数器0设置为方式0,计数值为5,用微动开关KKl+作为CLK0时钟,OUT0连接INTR,每当KKl+按动5次后产生中断请求,在屏幕上显示字符“5”。

实验步骤如下:

相关文档
最新文档