资源描述:
《实验一基于并行接口的键盘控制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一基于并行接口的键盘控制本科实验报告实验一基于并行接口的键盘控制一、实验冃的1.掌握简单并行接口(8255)的工作原理及使用方法。2•了解小键盘的工作原理,学会设计小键盘的接口技术。3.利用8255并行接口芯片作为小键盘的接口电路,掌握它们之间的线路连接。二、实验内容与步骤1、接线PAO-PA3/8255接行0-行3/4X4矩阵键盘PB0-PB3/8255接列0-列3/4X4矩阵键盘CS/8255接Y1/I0地址2、编程实现在按下小键盘上的任意键后,在微机屏幕上显示相应字符。它们的对应关系如下:小键盘显示0——01——12——21——32——43——
2、5667——7889——9A——ABBC——CD——DE——EF——F三、实验原理1、可编程并行接口8255A芯片8255A是通用的可编程并行接口芯片,它可以将任一个与TTL兼容的I/O设备与CPU相连。8255A为40引脚双列直插芯片。它有三个相互独立的端口,分别成为A端口、B端口、C端口,每个端口有8根数据线,通过数据线,可以与I/O设备交换数据。8255A共有两类编程控制字:方式选择控制字和对C端口按位置位/复位控制字。这两个控制字都要写入控制寄存器。初始化时,把方式选择控制字写入控制寄存器用来选择端口的工作方式及端口功能。在8255AI作之后,把
3、“按位置位/复位控制字”写入控制字寄存器,可以把C端口的对应位单独地置1或置0。(1)方式选择控制字方式选择控制字的格式如下图所示:图1方式选择控制字各位的意义如下:D7位:方式选择控制字的特征位,必须为1,表示写入控制寄存器的控制字为方式选择控制字。D6/D5位:选择A组的工作方式,控制A端口及C端口的高4位工作方式。“00”:方式0;“01”:方式1;“lx”:方式2。D4位:D4二0,选择A端口的8条数据线PA7-PA0作为输出线;D4=l,选择A端口的8条数据线PA7-PA0作为输入线。D3位:D3=0,选择C端口的高4位数据线PC7-PC4作为
4、输岀线;D3=l,选择C端口的高4位数据线PC7-PC4作为输入线。D2位:选择B组的工作方式,控制B端口及C端口的低4位工作方式。D2二0,选择B组工作于方式0;D2二1选择B组工作于方式1。D1位:Dl=0,选择B端口的8条数据线PB7-PB0作为输出线;Dl=l,选择A端口的8条数据线PB7-PB0作为输入线。D0位:D0=0,选择C端口的低4位数据线PC3-PC0作为输出线;D0=l,选择C端口的低4位数据线PC3-PC0作为输入线。(2)C端口按位置位/复位控制字C端口按位置位/复位控制字的格式如下图所示:图2C端口按位置位/复位控制字各位的意
5、义如下:D7位:特征位,该位必须为0,表示写入控制寄存器的控制字为C端口按位置位/复位控制字。D6/D5/D4位:不用。D3/D2/D1位:C端口选择位,选择C端口中特定的某一位。“Ml”-“000”分别表示第7位■第0位。D0位:置位/复位。DO=1,表示选择的端口输出D0=0,表示选择的端口输岀‘0‘。2、4X4矩阵键盘矩阵键盘由8255芯片卡控制,并将行线连接到8255芯片的A□,将列线连接到B口,还需要连接8255芯片的片选到Y1/IO地址(280H)以使键盘阵列有8255芯片控制。8255A与4X4矩阵键盘接口线路如图3所示。图38255芯片与
6、矩阵键盘PA0-PA3分别连接矩阵键盘的4条行线,PB0-PB3分别连接矩阵键盘的四条列线。所有的行线、列线通过上拉电阻共与正电压源相连。因此当按键没有按下时,所有的端口读入的数据均为当有按键按下时,对应的行线与列线读入的数据应保持一致。皆为‘0’或皆为(1矩阵键盘的检测就是按照上述特性实现的。一共有两种检测方法:行扫描法、行反转法。(1)行扫描法行扫描法的原理如下,首先判断是否有按键按下。将所有的行线置成0电平,然后通过列线输入全部列值,如果读入的列值全是1,则说明没有任何一个键按下;反Z,如果读入的列值不全是1,这说明有键按下。也就是说,在键盘识别
7、的开始先进行全扫描。若有键按下,则必须判别是哪个按键被操作。第二部确定哪个键按下。一口发现有键按下,就转入采用逐行扫描的办法俩确定究竟是哪一个被按下。先扫描第一行,即使它输出为o电平,其余的行线为高电平1,然后读入列值。如果读入的列值中,其中有一位为低电平0,则说明在慈航的一个行、列交叉处有键被按下。如果读入的列值全是1,说明这一行所有按键都未被按下。接着扫描第二行。依此类推,逐行扫描,知道扫完全部的行线为止。若在扫描的过程屮,发现非全1的列值,就能找出被按下的键。图4行扫描法参考流程图(2)线路行反转法行反转法工作原理如下,首先向各行线上全部送低电平0
8、,然后读入列线的值,如果此时有某一键被按下,则必定会使某一列线为0,输入的列值其