实验一 8255并口控制器应用实验
一、实验目的
1. 掌握 8255 的工作方式及应用编程。 2. 掌握 8255 典型应用电路接法。
二、实验内容
1. 基本输入输出实验。编写程序,使 8255 的 A 口为输出, B 口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。 2.流水灯显示实验。编写程序,使 8255 的 A 口和 B 口均为输出,实现 16 位数据灯的相对循环显示。
三、实验所用仪表及设备
1. 要PC微机一台。 2. TD-PIT实验系统一套。
?四、实验原理与步骤
1.8255简介
并行接口是以字节或字为单位与 I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递 8 位、 16 位、 32 位等。Intel公司的可编程通用并行 接口芯片8255具有 A 、B 、C 三个并行接口。提供以下三种工作方式:方式 0—基本输入/出方式、方式1—选通输入/出方式、方式2—双向选通方式。8255的引脚如图 10-1 所示,8255的工作方式控制字和 C 口按位置位/复位制字格式如图 10-2(a)和(b) 所示。
图10-1 8255的内部结构及引脚
D7 1 D6 D5 D4 0:端口D3 0:端口C高四位输出 1:端口C高四位输出 D2 D1 D0 0:端口C低四位输出 1:端口C低四位输出 00:端口A方式0 0:端口B0:端口方式0 B输出 1:端口B1:端口方式1 B输入 01:端口A方式1 A输出 1X:端口A方式2 1:端口A输入
图10-2(a)工作方式控制字
D7 0 D6 X D5 X D4 X D3 D2 D1 PC0:000 PC1:001 PC2:010 PC3:011 PC4:100 PC5:101 PC6:110 PC7:111 D0 0:复位 1:置位 图10-2(b)C口按位置位/复位控制字
2.基本输入输出实验
让8255的端口A作为输出口工作在方式0,端口 B 作为输入口工作在方式0。用一组开关信号接入端口 B ,端口A的输出线接至一组数据灯上,然后通过对 8255 芯片编程来实现输入输出功能。
XD7 XD6 XD5 D7 D6 D5 D4 D3 D2 D1 D0 8255单元 A1 A0 WR RD CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 K0 开 K1 关 K2 K3 K4 K5 K6 K7 D0 D1 D2 D3 D4 D5 D6 D7 及 LED 显 示 单 元 XD4 XD3 系 XD2 统 XD1 总 XD0 线 XA3 XA2 XIOW XIOR IOY0 图10-3 8255基本输入输出实验参考接线图
实验步骤如下:
1)确认从 PC 机引出的两根扁平电缆已经连接在实验平台上。 2)参考图 10-3 所示连接实验线路。
3)首先运行 CHECK 程序,查看I / O空间始地址。
4)利用查出的地址编写程序,编写或修改参考程序,编译链接。 5)运行程序,拨动开关,看数据灯显示是否正确。 参考程序如下:
;***************根据CHECK配置信息修改下列符号值***************** PCI_INTCSR EQU 0CC38H ;PCI卡中断控制寄存器地址 IOY0 EQU 0C400H
;***************************************************************** MY8255_A EQU IOY0+00H*4 ;8255计数器0端口地址 MY8255_B EQU IOY0+01H*4
;8255计数器1端口地址
MY8255_C EQU IOY0+02H*4 STACK1 SEGMENT STACK
DW 256 DUP(?) STACK1 ENDS
;8255计数器2端口地址
MY8255_MODE EQU IOY0+03H*4 ;8255控制寄存器端口地址
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,MY8255_MODE ;初始化8255工作方式
MOV AL,082H ;A口方式0输出,B口方式0输入 OUT DX,AL
WAIT1: MOV DX,MY8255_B ;从B口输入开关状态
IN DX, AL
MOV DX,MY8255_A ;把数据送A口显示 OUT DX, AL
MOV AH,1 ;判断是否有按键按下
INT 16H
JZ WAIT1 ;无按键则跳回继续等待,有则退出
MOV AX, 4C00H ;返回到DOS INT 21H
CODE ENDS
END START
3.流水灯显示实验
通过循环地向A口和B口送入不同的数据,实现实验平台上开关及LED显示器单元的两组小灯泡的流水显示。例如,先分别向 A 口和 B 口写入 80H 和 01H,然后分别将该数右移和左移一位,再送到端口上,如此环下去,实现流水灯的显示。参考实验程序流程如图 10-4 所示。
开始初始化8255控制寄存器写A口发出的起始数据80H写B口发出的起始数据01H将A口数据右移再写入A口将B口数据左移再写入B口有按键按下?是返回到DOS否结束
图10-4 流水灯显示参考程序流程图
实验步骤如下:
1)确认从 PC 机引出的两根扁平电缆己经连接在实脸平台上。 2)首先运行CHECK程序,查看I / O 空间始地址。 3)利用查出的地址,参考图10-4编写程序,然后编译链接。 4)参考图 10-5连接实验线路。 5)运行程序,看数据灯显示是否正确。
XD7 XD6 XD5 XD4 XD3 系 XD2 统 XD1 总 XD0 线 D7 D6 D5 D4 D3 D2 D1 D0 8255单元 A1 A0 WR RD CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 D0 开 D1 关 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 及 LED 显 示 单 元 XA3 XA2 XIOW XIOR IOY0 图10-5 流水灯显示参考接线图
五、思考题
1. 并口通信需要注意哪些问题? 2. 比较并口通信与串口通信的异同。
六、实验报告内容及要求
1. 按实验步骤列出实验中存在的问题,并给出解决问题的办法。
2. 自行设计能实现A口工作在方式一输入,B口工作在方式一输出的电路并完成程序的编制和在实验台上的验证。