8255并行接口应用实验
1、 实验目的
a) 掌握8255的工作方式及应用编程。
b) 掌握8255的典型应用电路接法。
c) 熟悉Tddebug调试环境和使用。
2、 实验设备
PC机一台,TD-PIT/B实验装置一套。
3、 关于8255并行应用程序的说明
a) 在PC/XT机中8255端口A的偏移地址为60H,端口B的偏移地址为61H,端口C的偏移地址为62H,控制寄存器的偏移地址为63H。
b) 本实验使用的是PCI板卡申请的第三个I/O空间,其基地址可以使用PCI_BIOS.EXE获取实验用PCI总线扩展卡分配的地址空间得到BASE2,和前面的偏移地址相加即可。
c) 运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序。
d) 使用Compile菜单中的bulidall完成汇编和链接。
e) 使用Rmrun菜单中的Run运行程序,观察运行结果,或使用Rmrun菜单中的Debug调试程序,观察调试过程中指令执行后各寄存器及数据区的内容。
f) 按任意键,结束程序。可调用以下过程程序指令:
BREAK PROC
MOV AH,06H
MOV DL,0FFH
INT 21H
JE RETURN
MOV AX,4C00H
INT 21H
RETURN: RET
BREAK ENDP
g) 流水灯实验中,需要控制间隔时间,可调用下面的程序实现延时:
DELAY PROC
PUSH AX
PUSH CX
MOV CX,3FFFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
RET
POP CX
POP AX
DELAY ENDP
4、 实验内容
a) 基本输入/输出实验。完成硬件电路设计,并编写程序,第一组同学使8255的A口为输出,B口为输入,第二组同学使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。
程序:
code segment
assume cs:code
main: mov al,99h
mov dx,0ea63h
out dx,al
again: mov dx,0ea60h
in al,dx
mov dx,0ea61h
out dx,al
call break
jmp again
break proc near
mov ah,06h
mov dl,0ffh
int 21h
je return
mov ax,4c00h
int 21h
return: ret
break endp
code ends
end main
b) LED显示实验。完成硬件电路设计,并编写程序,使8255的A口和B口均为输出,第一组同学实现16位数据灯的相对循环显示,第二组同学实现16位数据灯的交替闪烁显示。
程序:
code segment
assume cs:code
start:mov al,80h
mov dx,0ea63h
out dx,al
l: mov cx,08h
mov dx,0ea60h
mov al,0feh
l1:
out dx,al
call delay
rol al,1
loop l1
mov al,0ffh
out dx,al
call delay
mov cx,08h
mov dx,0ea61h
mov al,0feh
l2:
out dx,al
call delay
rol al,1
loop l2
mov al,0ffh
out dx,al
call delay
call break
jmp l
delay:push ax
push cx
mov cx,01fffh
d1:mov ax,02fffh
d2:dec ax
jnz d2
loop d1
pop cx
pop ax
ret
break proc near
mov ah,06h
mov dl,0ffh
int 21h
je return
mov ax,4c00h
int 21h
return:ret
break endp
code ends
end start
5、 基本输入/输出实验步骤
a) 设计实验线路图,将数据总线XD0~XD7连至8255的D0~D7,将地址总线XA0~XA1连至8255的A0~A1,读写控制信号XIOW和XIOR分别连至8255的WR和RD,片选信号IOY3连至CS。第一组同学完成PA口与LED的D0~D7相连,PB口与开关的K0~K7相连;第二组同学完成PB口与LED的D0~D7相连,PA口与开关的K0~K7相连。
b) 编写调试程序,无误完成汇编连接。
c) 打开实验箱电源,运行程序,拨动开关组,观察数据灯的显示。
6、 LED显示实验步骤
a) 设计实验线路图,将数据总线XD0~XD7连至8255的D0~D7,将地址总线XA0~XA1连至8255的A0~A1,读写控制信号XIOW和XIOR分别连至8255的WR和RD,片选信号IOY3连至CS。
b) 编写调试程序,无误完成汇编连接。
c) 打开实验箱电源,运行程序,观察数据灯的显示。
7、 第5章作业电路原理图和程序代码的验证
a) 完成p172课后习题的第7题和第8题的硬件电路设计和软件程序的编写与调试。
b) 将调试成功的电路图以及程序代码写入作业中。
c) 下周二上交第5章的所有作业。
8、 实验报告
将实验目的1、实验设备2以及实验内容的4的a)和b)所设计的电路图以及程序代码写入实验报告中。
9、 参考流程图如下:
第二篇:实验三8255并行接口实验
实验三8255并行接口实验
一、 实验目的
1、 学习并掌握8255的工作方式及其应用。
2、 掌握8255典型应用电路的接法。
3、 掌握程序固化及脱机运行程序的方法。
二、 实验设备
Pc机一台,TD-PITE实验装置一套。
三、 实验内容
1、 基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成波动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。
2、 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7-D0由左向右,每次仅亮一个灯,循环显示,D15-D8与D7-D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验原理:
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图3-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2所示。
图3-1 8255的内部结构和外部引脚
(a)工作方式控制字 (b)c口按位置位/复位控制字
图3-2 8255控制字格式
8255实验单元电路图如下图所示:
图3-3 8255实验单元电路图
实验步骤
1. 基本输入输出实验
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
实验步骤:
(1)实验接线图如图3-4所示,按图连接实验线路图;
图3-4 8255基本输入/输出实验接线图
实验程序
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK
START: MOV DX, 0646H
MOV AL, 90H
OUT DX, AL
AA1: MOV DX, 0640H
IN AL, DX
CALL DELAY
MOV DX, 0642H
OUT DX, AL
JMP AA1
DELAY: PUSH CX
MOV CX, 0F00H
AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
(2)编写实验程序,经编译、连接无误后装入系统;
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
(4)点机“调试”下拉菜单中的“固定程序”项,将程序固化到系统存储器中。
2. 流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4所示。
图3-5 8255流水灯实验接线图
实验步骤:
(1)按图3-5连接实验线路图;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,观察LED灯的显示,验证程序功能;
(4)自己改变流水灯的方式,编写程序。
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 0646H
MOV AL, 80H
OUT DX, AL
MOV BX, 8001H
AA1: MOV DX, 0640H
MOV AL, BH
OUT DX, AL
ROR BH, 1
MOV DX, 0642H
MOV AL, BL
OUT DX, AL
ROL BL, 1
CALL DELAY
CALL DELAY
JMP AA1
DELAY: PUSH CX
MOV CX, 0F000H
AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START