实验58255并行接口键盘及显示实验.docx
《实验58255并行接口键盘及显示实验.docx》由会员分享,可在线阅读,更多相关《实验58255并行接口键盘及显示实验.docx(13页珍藏版)》请在冰豆网上搜索。
实验58255并行接口键盘及显示实验
8255接口键盘及显示综合设计实验
(曹建文2009年10月10日)
一、实验目的
1、掌握8255的工作方式及应用编程。
2、自行设计、制作和连接基于8255并行接口的键盘及显示实验电路。
3、实现扫描式矩阵键盘的功能和作用。
二、实验设备
PC机1台,TD-PIT实验台1台,实验元器件若干。
三、实验内容
1、使用8255实现键盘按键和七段LED数码显示管显示功能。
2、根据实验要求自行设计实验线路图,制作和焊接实验电路板和实验元器件。
3、按照实验要求和实验电路图编写实验程序,使得按下不同的数字按键后数码管显示相应的数字值(4位数码管)。
4、按照实验要求设计和编写实验程序,实现普通计算器的加/减法功能。
四、实验原理
1、8255结构及原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图-2所示。
图-1:
8255内部结构及引脚图
(a)工作方式控制字(b)c口按位置位/复位控制字
图-2:
8255控制字格式
(1)8255的内部结构
如图-1所示,8255的内部结构由以下4个部分组成:
(1)输入/输出端口A、B、C。
这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。
A口和B口是一个独立的8位I/O口。
C口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。
(2)A组和B组控制电路。
这是两组根据CPU命令控制8255工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255的工作方式,也可以根据编程命令来对C口的指定位进行置位/复位的操作。
A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。
(3)读/写控制逻辑。
它负责管理8255的数据传输过程,接收CS及RD、WR、RESET,还有来自系统地址总线的口地址选择信号A0和A1。
将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。
(4)数据总线缓冲器。
它是8位双向三态缓冲器,作为8255和CPU之间的数据接口,进行数据的输入/输出。
CPU的编程命令以及外设通过8255传送的工作状态等信息,都是通过它来传输的。
一般情况下数据总线缓冲器的8根数据线D7~D0是与8086CPU低8位数据线相连。
(2)8255的引脚信号
图-1所示为8255芯片引脚信号。
除了电源和接地以外,其他信号可以分为两组:
(1)和外设相连的:
PA7-PA0:
A组数据信号
PB7-PB0:
B组数据信号
PC7-PC0:
C组数据信号
(2)和CPU相连的:
RESET:
复位信号,低电平有效。
当RESET信号来到时,所有内部寄存器就被清除,同时,3个数据端口被自动设为输入端口。
D7-D0:
它们是8255的数据线,和系统数据总线相连。
CS:
芯片选择信号,低电平有效。
在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、A4、A3)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255的CS端输出一个低电平,于是8255被选中。
只有当CS有效时,读信号RD和写信号WR才对8255有效。
RD:
芯片读出信号,低电平有效。
WR:
芯片写入信号,低电平有效。
A1、A0:
端口选择信号。
8255内部有3个数据端口和一个控制端口,共四个端口。
规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
8255的几个控制信号和传输动作之间的关系如下表所示:
8255的控制信号与传输动作的对应关系
CS
A1
A0
RD
WR
传输说明
0
0
0
0
1
数据从端口A送数据总线
0
0
1
0
1
数据从端口B送数据总线
0
1
0
0
1
数据从端口C送数据总线
0
0
0
1
0
数据从数据总线送端口A
0
0
1
1
0
数据从数据总线送端口B
0
1
0
1
0
数据从数据总线送端口C
0
1
1
1
0
如果D7为1,则由数据总线往控制寄存器写入控制字;如果D7为0,则由数据总线输入的数据作为对C端口的置1、置0命令。
1
X
X
X
X
D7~D0进入高阻状态
0
1
1
0
1
非法的信号组合
0
X
X
1
1
D7~D0进入高阻状态
(3)8255的控制字
图-2为8255工作方式控制字和C口按位置位/复位控制字格式。
其中:
(1)工作方式控制字。
8255有三种工作方式:
方式0、方式1、方式2。
两组端口可分别指定不同的工作方式,每组端口在某种工作方式下,并不要求各信号同为输入或同为输出,而是可以分别指定。
(2)C口控制字。
C口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置1或置0。
这种操作用是通过向C口控制字寄存器送出C口控制字来实现的。
应用时注意:
C口控制字虽然是对端口C操作,但在写入控制字时应是对控制端口地址写入,而不是写入到C数据端口。
编程举例:
设A数据口地址为00E0H,B数据口地址为00E2H,C数据口地址为00E4H,控制口为00E6H
例1:
当要求端口A工作在方式0,输出;端口B工作在方式1,输入;端口C的高4位为输入,低4位为输出;则方式控制字为10001110B或8EH。
汇编指令如下:
MOVDX,00E4H
MOVAL,8EH
OUTDX,AL
例2:
当要求端口A工作在方式1,输入;端口B工作在方式0,输入;端口C的高4位为输出,低4位为输出;则方式控制字为10110010B或0B2H。
汇编指令如下:
MOVDX,00E4H
MOVAL,0B2H
OUTDX,AL
例3:
对C7置1,则控制字为00001111B或0FH。
汇编指令如下:
MOVDX,00E4H
MOVAL,0FH
OUTDX,AL
2、扫描键盘基本工作原理
3、LED数码管结构及工作原理
五、实验说明及主要步骤
本实验是利用可编程8255并行接口实现与扫描式矩阵键盘及数码管的连接,并显示按键的值,实现普通计算器加/减法功能。
具体内容:
(1)设计和制作基于8255并行接口的矩阵键盘及数码管连接电路,根据要求编写实验程序,扫描键盘输入(即按下不同键值),并将扫描键盘(按键)结果送数码管显示。
(2)按照普通计算器工作方式,将8个键盘按键分别定义为“1~4数字值”及“+”、“-”、“=”、“清零”等功能键,实现1~4以内数字的“1位加/减法”运算。
实验接线图如图-3所示(学生应设计画出详细的电路图,以便制作电路板)。
图中用并
行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键盘。
将键盘的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C口为输入口;PB0—PB7与七段数码显示管连接,B口为输出。
程序执行过程如下:
识别是否有键按下,方法是使PA0一PA3输出为全0,读C口值(行值),其中只要有一位为0,就说明有键按下 ,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行七段数码显示管显示程序,这时七段数码显示管就显示与该键相同的数值。
图-3:
8255接口键盘及显示原理图
主要实验步骤如下:
1、根据图-4所示的电路设计和画出具体的实验电路图,绘制和制作实验电路板,焊接实验元器件。
2、参考给定的程序流程图,编写实验程序,检查无误后进行汇编、连接,并生存可执行文件。
3、在TD-PIT实验台上,按图-5所示实验参考接线图连接好线路,打开实验台电源,运行执行文件,按动键盘,观察数码管显示结果是否正确。
4、上述实验正确完成后,将自制的实验电路板接入TD-PIT实验台中(注意应正确连接),重复步骤3的内容,观察是否得到正确的实验结果。
5、修改实验程序,重新定义实验板上的键盘按键,使键盘和显示能按照普通4位计算器方式工作,并能进行1~4以内数字的“1位加/减法”操作。
6、详细记录全部实验过程、步骤和实验结果。
六、实验报告及要求
本实验完成后按如下要求和格式撰写实验报告,并分别提交电子文档和纸质打印文档的实验报告各1份。
图-4:
8255并行接口键盘及显示电路图
图-5:
8255键盘及显示实验参考接线图
七、实验程序参考流程图
8255并行接口键盘及显示实验参考源程序:
MY8255_AEQU9C60H
MY8255_BEQU9C61H
MY8255_CEQU9C62H
MY8255_MODEEQU9C63H
DATASEGMENT
DTABLEDB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,3000H
MOVAL,00H
MOV[SI],AL
MOV[SI+1],AL
MOV[SI+2],AL
MOV[SI+3],AL
MOVDI,3003H
MOVDX,MY8255_MODE
MOVAL,81H
OUTDX,AL
BEGIN:
CALLDIS
CALLCLEAR
CALLCCSCAN
JNZINK1
CALLBREAK
JMPBEGIN
INK1:
CALLDIS
CALLDALLY
CALLDALLY
CALLCLEAR
CALLCCSCAN
JNZINK2
JMPBEGIN
INK2:
MOVCH,0FEH
KERR:
JMPBEGIN
CCSCAN:
MOVAL,00H
MOVDX,MY8255_A
OUTDX,AL
MOVDX,MY8255_C
INAL,DX
NOTAL
ANDAL,03H
RET
CLEAR:
MOVDX,MY8255_B
MOVAL,00H
OUTDX,AL