8255并口控制器应用实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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”。
实验步骤如下: