按键接口实验

按键接口实验
按键接口实验

单片机的键盘接口与编程一

键盘接口和数码管接口是构成单片机人机界面的主要方法,对于一个初学者来说,这部分的内容也是较难的,我们将用四节课的时间来学习这方面的知识。这一课先来讨论键盘的接口原理与编程方法。

键盘是单片机应用系统不可缺少的重要输入设备,主要负责向计算机传递信息,我们可以通过键盘向计算机输入各种指令、地址和数据。它一般由若干个按键组合成开关矩阵,按照其接线方式的不同可分为两种:一种是独立式接法,一种是矩阵式接法,这一课先来讲解独立式键盘的工作原理和编程方法。

一.独立式键盘的工作原理和编程方法

独立式键盘具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统中,那么它是如何来工作的呢?我们慢慢往下看:

1.独立式键盘的接线原理

独立式键盘是由若干个机械触点开关构成的,把它与单片机的I/O 口线连起来,通过读I/O 口的电平状态,即可识别出相应的按键是否被按下,如果按键不被按下,其端口就为高电平;如果相应的按键被按下,则端口就变为低电平。在这种键盘的连接方法中,我们通常采用上拉电阻接法,即各按键开关一端接低电平,另一端接单片机I/O 口线并通过上拉电阻与VCC 相连,如上图所示。这是为了保证在按键断开时,各I/O 口线有确定的高电平,当然,如果端口内部已经有上拉电阻,则外电路的上拉电阻可以省去,想想看,哪几个并行口内部是有上拉电阻的?

通常我们用来做键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的触点式微动开关。这种开关具有结构简单,使用可靠的优点,但当我们按下按键或释放按键的时候它有一个特点,就是会产生抖动,看上图的按键脉冲波形,这种抖动对于人来说是感觉不到的,但对单片机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级的,而机械抖动的时间至少是毫秒级,对计算机而言,

这已是一个很“漫长”的过程了。下面我们通过一个实验来验证一下,实验程序如下:

把这个程序下载到单片机,我们会发现,当按下相应的按键时,灯并不是想象中的按一下亮,再按一下就灭,而是有时灵,有时不灵,为什么会这样呢?原来,当你按了一次按键,可是单片机却早已执行了好多次,如果执行的次数正好是奇数次,那么结果正如您所料;如果执行的次数是偶数次,那结果就不对了。为了使CPU 能正确地读出端口的状态,对每一次按键只作一次响应,就必须考虑如何去除按键的抖动。

2.按键的去抖动原则和方法

常用的去抖动的方法有两种:硬件方法和软件方法。硬件去抖动的方法很多,好多书都有介绍,这不在我们的讨论范围。单片机中常用软件去抖动法,软件法其实很简单,就是在单片机获得端口为低电平的信息后,不是立即认定按键已被按下,而是延时10 毫秒或更长一些时间后再次检测该端口,如果仍为低,说明此键的确被按下了,这实际上是避开了按键按下时的抖动时间;而在检测到按键释放后(端口为高电平时)再延时5-10 毫秒,消除后沿的抖动,然后再对按键进行处理,不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足通常的要求。下面我们把前面的程序改一下,看看按键的去抖动是如何实现的。看下面的程序:

ORG 0000H ;

AJMP START ;

ORG 0030H ;

START:MOV SP,#5FH ;

MOV P1,#0FFH ;

MOV P3,#0FFH ;

L1:JB P3.4,L2 ;

P3.4 为“1”,不做处理,转P3.5

LCALL D10mS ; 调用延时程序

JB P3.4,L1 ;

P3.4 为“0”,说明此键确实被按下了

CPL P1.0 ; 去除抖动后取反P1.0

L3:JNB P3.4,L3 ;直到P3.4 释放后转去判断第二个键L2:JB P3.5,L1 ;P3.5 为“1”,返回去继续处理P3.4 LCALL D10mS ; 调用延时程序

JB P3.5,L2 ;

P3.5 为“0”,说明此键确实被按下了

CPL P1.1 ; 去除抖动后取反P1.1

L4:JNB P3.5,L4 ;直到P3.5 释放为止

LJMP L1 ;返回

D10mS:MOV R7,#50 ;延时的时间一般为10-20mS

D1:MOV R6,#200 ;

D2:DJNZ R6,D2 ;

把这段程序写入单片机,试试看,是不是行了,这就是独立式按键去抖动的基本方法。不过这个程序在实际应用中并没有多大的意义,因为如果按键数量比较多的话,程序就会变得很长,为什么会这样呢?因为这里我们采用了直接寻址的方式,如果我们把键值放入一个表格中,再通过查表程序来判断到底是哪个按键被按下了,再去处理相应的程序就会很简单,想想看,该怎么做?

二.独立式键盘的编程方法

我们刚才的程序演示了按键的去抖动原理和基本方法,接下来让我们做一个按键使用的实验来验证一下,我们的实验板上有4 个按键分别接到了P3 口的P3.3,P3.4,P3.5,P3.6 引脚上,现在我们用

P3.3,P3.4,P3.5 和P3.6 这四个按键来做一个实验。实验之前,先定义各个按键的功能:

A.P3.3 开始,按此键则灯开始流动(由左向右)

B.P3.4 停止,按此键则停止流动,所有灯为灭

C.P3.5 向左,按此键则灯反向流动(由右向左)

D.P3.6 向右,按此键则灯正向流动(由左向右)

实验程序如下:

UpDown EQU 00H ; 上下行标志

StartEnd EQU 01H; 起动及停止标志

LampCode EQU 21H; 存放流动的数据代码

ORG 0000H ; AJMP MAIN ;

ORG 30H ;

MAIN:MOV SP,#5FH ;

MOV P1,#0FFH ;

CLR UpDown ;启动时处于向上的状态

CLR StartEnd ;启动时处于停止状态

MOV LampCode,#0FEH;单灯流动的代码

LOOP:ACALL KEY ;调用键盘程序

JNB F0,LNEXT ;如果无键按下,则继续

ACALL KEYPROC ;否则调用键盘处理程序

LNEXT:ACALL LAMP ;调用灯显示程序

KEYPROC:MOV A,B ;从B 寄存器中获取键值

JB ACC.2,KeyStart ;分析键的代码,某位被按下,则该位为”1”(在键盘程序中已取反)JB ACC.3,KeyOver ;

JB ACC.4,KeyUp ;

JB ACC.5,KeyDown ;

AJMP KEY_RET ;

KeyStart:SETB StartEnd ;第一个键按下后的处理

AJMP KEY_RET ;

KeyOver:CLR StartEnd;第二个键按下后的处理 AJMP KEY_RET ;

KeyUp:SETB UpDown ;第三个键按下后的处理 AJMP KEY_RET ;

KeyDown:CLR UpDown ;第四个键按下后的处理

K_RET:ORL P3,#01111000B ;此处循环等待键的释放

MOV A,P3 ; ORL A,#10000111B ;

CPL A ; JZ K_RET1 ;直到读取的数据取反后为”0”说明键释放了,才从键盘处理程序返回AJMP K_RET ;

K_RET1:RET ;

D500mS: ;流水灯的延迟时间

PUSH PSW ;

SETB RS0 ;

MOV R7,#200 ;

D51:MOV R6,#250 ;

D52:

NOP

NOP

NOP

DJNZ R6,D52 ;

DJNZ R7,D51 ;

POP PSW ; RET ;

LAMP:JB StartEnd,LampStart ;如果StartEnd=1,则启动 MOV P1,#0FFH ; AJMP LAMPRET ;否则关闭所有显示,返回

LampStart:JB UpDown,LAMPUP ;如果UpDown=1,则向上流动

MOV A,LAMPCODE ;

RL A ;实际就是左移位

MOV LAMPCODE,A ;

MOV P1,A ;

LCALL D500mS ;

AJMP LAMPRET ;

LAMPUP:MOV A,LAMPCODE ;

RR A ;向下流动实际就是右移

MOV LAMPCODE,A ;

MOV P1,A ;

LCALL D500mS ;

LAMPRET:RET ;

这段程序是我们到目前为止最长的程序,相信大多数指令大家应该能看懂,开始三条,

UpDown EQU 00H;

StartEnd EQU 01H;

LampCode EQU 21H

给大家解释一下,EQU 叫做等值伪指令,它的功能是将一个常数或者特定的符号赋予规定的字符串。什么意思呢?举个例子:

ORG 200H;

ABC EQU R6;

MOV A,ABC;

这里将ABC 等值为寄存器R6,也就是说,在指令中,R6 这个寄存器可以用字符串ABC 来代替,

为什么要这样写呢?当然是为了增加程序的可读性,不过有一点大家要记住了,这里使用的字符串不是标号,不能用“:”来做分隔符,比如这样写ABC:LJMP START ;如果加上“:”汇编程序会出错;当然,用EQU 指令除了可以赋值数据地址外,还可以赋值直接地址或者直接当作一个立即数来使用,例如:ABC EQU 10H;

DELAY EQU 05AFH;

MOV A,ABC;

LCALL DELAY;

这里ABC 赋值以后被当作了直接地址使用;而DELAY 被赋值以后则成了一个16 位的地址,用作子程序的入口。

如此一来,上面的三条指令也就很清楚了。这里有一个问题大家需注意?:使用EQU 伪指令必须先赋值,

既然讲到了赋值伪指令,我们再讲一下另外三条赋值伪指令.

A.位地址定义伪指令BIT

它的功能是将一个可直接寻址的位地址赋予所规定的字符名称,例如:

ABC BIT P1.0;把P1.0 赋值给ABC,即字符串ABC 就是直接寻址位P1.0。

这里注意?:与EQU 不同的是,这条指令只能对位地址赋值,而不能对寄存器或直接地址和立即数赋值。相反,EQU 指令却可以用来定义位地址变量,不过这时所赋的值应当是具体的位地址值。比如P1.0 要用90H 来代替;P2.0 要用AOH 来代替等等。

B.内部RAM 定义伪指令DATA

它的功能是给一个8 位的内部RAM 起一个名称,例如:ABC DATA 20H;把内部RAM 的20H 定义为ABC。

C.外部RAM 定义伪指令XDADT

给一个8 位的外部RAM 起一个名称,例如:

ABC XDATA 0ACH ;由于89C51 的内部RAM 寻址范围为00H-FFH ,所以这个地址必然大于FFH 。讲了赋值伪指令,再回到上面的按键程序,这段程序的功能虽然很简单,但它演示了一个键盘处理程序的基本思路,程序本身很简单,也不很实用,实际工作中还会有好多要考虑的因素,比如主循环每次都调用了灯的循环程序,会造成按键反应“迟钝”;而如果一直按着键不放,则灯不会再流动,一直要到松开手为止,大家可以仔细考虑一下这些问题,想想有什么好的解决办法。

独立式键盘除了上面介绍的这种连接方法,我们还可以采用上图右边所示的连接方法,用一个“与非”门

把四个输入端连接起来,当有任何一个按键按下时,都会使“与非”门输出为低电平,从而引起单片机的中断,它的好处是不用在主程序中不断地循环查询了,如果有键按下,单片机就去作相应的处理。

矩阵键盘设计实验报告

南京林业大学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课程机电一体化设计基础 院系机械电子工程学院 班级 学号 姓名

指导老师杨雨图 2013年9月26日

一、实验目的 1、掌握键盘接口的基本特点,了解独立键盘和矩 阵键盘的应用方法。 2、掌握键盘接口的硬件设计方法,软件程序设计 和贴士排错能力。 3、掌握利用Keil51软件对程序进行编译。 4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。 5、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 二、实验要求 通过实训,学生应达到以下几方面的要求: 素质要求 1.以积极认真的态度对待本次实训,遵章守纪、团结协作。 2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立 工作能力。 能力要求 1.模拟电路的理论知识 2.脉冲与数字电路的理念知识 3.通过模拟、数字电路实验有一定的动手能力 4.能熟练的编写8951单片机汇编程序 5.能够熟练的运用仿真软件进行仿真 三、实验工具 1、软件:Proteus软件、keil51。 2、硬件:PC机,串口线,并口线,单片机开发板 四、实验内容

1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格 元器件的作用。 2、用keil51测试软件编写AT89C51单片机汇编程序 3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。 4、运用仿真软件对电路进行仿真。 五.实验基本步骤 1、用Proteus绘制“矩阵键盘扫描”电路原理图。 2、编写程序使数码管显示当前闭合按键的键值。 3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状 态和按键开关的对应关系。 4、用keil51软件编写程序,并生成HEX文件。 5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。 6、用通用编程器或ISP下载HEX程序到MCU。 7、检查验证结果。 六、实验具体内容 使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。 1、电路图

Windows命令接口实验报告

Windows命令接口实验 一.实验题目: 第29题——操作系统接口:Windows命令接口。(3人) 4分 二.实验任务: 1.设计要求: ●为Windows操作系统建立兼容的DOS命令接口,文件与目录命令; ●具体命令:DIR, RD,CD,MD, DEL,MOVE,REN, COPY, XCOPY, TIME, DATE,SORT,重定向命令>,<.,|,MORE,TYPE ,CLS,EXIT命令格式可参照Windows的CMD.EXE或MS-DOS提供的命令; ●设计命令的名称、参数等格式; ●可以字符形式接收命令,执行命令,然后显示命令执行结果. 2.设计目的: (1)DIR命令:能够正确显示一个目录里面的子目录和文件 (2)RD命令:能够删除一个空目录 (3)CD命令:能够打开一个存在的目录 (4)MD命令:能够建立一个空目录 (5)DEL命令:能够删除一个文件 (6)MOVE命令:能够移动一个目录或文件 (7)REN命令:能够重命名一个目录或文件 (8)XCOPY命令:能够拷贝整个目录 (8)TIME命令:显示系统的时间 (8)DATE命令:显示系统的日期 (8)SORT命令:对文本内容进行分类 (8)MORE命令:逐步分屏显示 (8)TYPE命令:显示文本内容 (8)CLS命令:清楚屏幕显示 (8)EXIT命令:退出 三:实验环境: 1.PC机一台386以上 2.Microsoft Visual Studio2010 软件 3.实现语言:C语言

四:原理及算法描述: 1.基本原理: 用户利用联机命令接口实现与机器的交互时,先在终端的键盘上打入所需的命令,由终端处理程序接受该命令,并将它显示在终端屏幕上。当一条命令输入完后,由命令解释程序对命令进行分析,然后执行相应命令的处理程序。 2.算法描述: (1)存贮输入的各命令参数 void store_parameter(char *buffer,char *parameter[10],int *para_num) 说明:将输入的命令一条一条存储parameter[10]中,最大允许的参数个数为10个。 算法描述:为buffer设置一个指针buffer_point,如果该指针向下移动,碰到空格,继续向下移动,直到遇到字符,读进各存储变量中parameter[10],最后如果遇到’\0’,则结束。 (2)浏览一个路径下的目录和文件 void my_dir(char *a[],int *num) 说明:该命令只能显示当前目录中的文件和子目录和当前目录中子目录中的文件和子目录。并无如Windows中命令参数如此丰富。主要是考虑其复杂性,予以简化了。 算法描述:如果只接受到mydir命令,后面并无其他参数时,显示当前目录下文件和子目录。如果接受到两个参数,如果第二个参数(表示当前目录中子目录)存在,则显示该目录下文件和子目录,如果不存在,则报错。 (3)删除一个存在的目录,如果不存在,删除失败! void my_rd(char *a[],int *num) 算法描述:如果该目录存在且为空目录,则删除,否则失败。 (4)打开一个存在的目录,如果不存在,打开失败! void my_cd(char *a[],int *num) 算法描述:如果接受到两个参数,第二个参数表示要打开的目录。如果该目录存在,则成功,否则失败。 (5)创建一个目录 void my_md(char *a[],int *num) 算法描述:如果接受到两个参数,第二个参数表示要建立的目录。如果存在该目录,失败,否则成功。 (6)删除一个存在的文件,如果不存在,删除文件失败! void my_del(char *a[],int *num) 算法描述:如果接受到两个参数,第二个参数表示要删除的文件。如果该文件存在,则删除成功,否则失败。 (7)移动一个存在的文件,否则,移动失败 void my_move(char *a[],int *num)

实验报告七-键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

电脑键盘接线图

电脑键盘接线图 判断键盘控制电路板上的四根线各起什么作用至关重要。将电路板翻过来后可以看到其背面已有明确的提示(图四):黄线Vcc为+5V高电平;红线为地线GND低电平;绿线为Keyboard DATA高电平;白线为Keyboard Clock低电平。不同的键盘连线颜色的定义可能也不同,因此如果不能根据提示正确识别的话可以用万用表测量一下或者参考图五中对于连线的定义(图五)。USB延长线中也是一组四根线,分

别为红、白、绿、黑四根。它们分别对应的是+5V电源、数据负线(DATA-)、数据正线(DATA+)及地线(GND)

电脑键盘的四根线如何接 罗技键盘,y-ss60 线的颜色:红,绿,白,黑 盼请解答,谢谢! 四根线分别是:电源,地,数据,时钟 你要把键盘拆出来,线的另一端焊在里面的电路板,上面标有v(电源),g(地),c(时钟),d(数据).再到网上找个键盘接口定义的图,对着另一端接上去就可以了 这是普通的ps/2的键盘接线图,图中是接口(ps/2插头)截面图。上面标的字母一般在键盘里的电路板上有印的,对照着焊就行了。如果没有标注字母,这个我就没办法了哈哈~多数键盘应该是按照dcgv的顺序排线的,没有写明的可优先考虑这个。 针脚定义如下: pinnamedirdescription 1n/cnotconnected 2data-keydata 3vccpower,+5vdc 4gndgnd 5n/cnotconnected 6clk-clock 键盘接线黄、红、白、绿对应的针脚如下 对应ps/2线对应ps/2针脚 黄3 红4 白6 绿2 对应的电线和针脚连接为: 对应ps/2线对应ps/2针脚 蓝3 白6 绿2 橙4 PS/2鼠标自己动手改USB接口 USB作为电脑外设的一种高速连接标准,目前已广泛应用到了各种外部设备上。电脑主机则在机箱上提供了前置USB接口,有的厂商甚至是在显示器与键盘都添加了USB接口,其目的就是为了能够让用户方便的进行连接鼠标、数码相机等耗电量小的USB外设而无须费力弯腰去机箱背后接插USB设备。键盘上这种体贴的设计让我等用户羡慕不已,我们能不能自己动手让普通键盘也能拥有一个USB接口呢? 答案当然是肯定的。由于键盘与USB同样提供的是5V电源,且同样有地线、

键盘实验报告

基于单片机4×4键盘的实现 成员:刘耀鹏、高攀、谢富田 2014年7月20日

理论分析 本实验是基于AT89C52单片机来实现4×4阵列键盘的输入,用七段数码管输出相应的键值,从而提供良好的人机接口。AT89C52单片机是一个8位的单片,与51系列单片机相比较,其最大的区别是多了一个计数定是中断。 采用12MHz的晶振,采用内接法,对电路提供一个时间基准,P1端口作为键盘的输入端口,P0端口为数据输出端口,P1端口输入的键值,在P0端口产生相应的输出。4×4键盘被抽象为16个开关按钮(每行4个共四行),那么久有4位行控制线,和列四位控制线,当开关接通时,则按键按下,数码管显示相应的键值,具体硬件电路如下: 电路中排阻限流作用,以达到对数码管保护作用,P2口作为位选端口,数码管8接P2.0端口,数码管7接P0.1端口。以达到位选

的作用,对于电路可编写一下程序: 2、程序如下: #include #include #define uint unsigned int #define uchar unsigned char //uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09}; uchar code table[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; /********************************************************** **** * 名称: Delay_1ms() * 功能: 延时子程序,延时时间为1ms * x * 输入: x (延时一毫秒的个数) * 输出: 无 *********************************************************** ****/ void Delay_1ms(uint x) { uint i; uchar j;

基于FPGA的键盘接口设计正文

基于FPGA的键盘接口设计 专业:电子信息科学与技术系作者:李先仙指导老师:刘强摘要:现场可编程逻辑门阵列FPGA (Field Programmalbe Gate Array)具有掩膜可编程门阵列的通用结构,由逻辑功能块排成阵列组成,并由可编程的互联资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。在电子产品中,键盘是最基本的输入设备,然而在应用中都采用通用的键盘扫描器件是不现实的,需要单独设计成专用的小键盘。随着电子技术和EDA (Electronic Design Automatic,电子设计自动化)技术的发展,大规模可编程逻辑器件PLD(Programmable Logic Device)、现场可编程门阵列FPGA完全可以取代大规模集成电路芯片,实现计算机可编程接口的功能,并可将若干接口电路的功能集成到一片PLD或FPGA芯片中。鉴于大规模PLD或FPGA的计算机接口电路不仅具有集成度高、体积小和功耗低等优点,而且还具有独特的用户可编程能力,从而实现计算机系统的功能重构。本文设计首先介绍行列式键盘的原理和应用,通过对其接口电路的详细分析;然后利用VHDL硬件描述语言和FPGA器件并采用模块化设计的方法完成了基于FPGA的行列式键盘接口电路的设计;最后通过计算机仿真,对本文设计的行列式键盘接口电路的正确性进行了验证。 关键词:键盘;仿真;VHDL语言;FPGA;模块化设计 Based on FPGA Keyboard Connection Design Major:Electronic Information Science and Technology Author: Li Xianxian Instructor: Liu Qiang Abstract: The Filed Programmmalbe Gate Array,shorted by FPGA,which has a mask-programmable gate array of generic structure and function blocks in the logic array of line,through a programmable logic of internet resources connecting these function blocks and the corresponding input/output modules to achieve different design.In electronic products,the keyboard is the most basic input device,however,it’s unrealistic of using general keyboard scanning device in the application ,we need for the separate designing of the small keyboard. With the development of Electronic and EDA(Electronic Design Automatic)technology,Large Scale Integration chips can be replaced by PLD(Programmable Logic Device)and FPGA ,which can realize the function of the Programmable Interface chips and feature a number of interface circuits integated into one of the PLD or FPGA chips.The computer interface circuit based on the technology of PLD and FPGA not only has the virtue of high integration,low volume and low power loss, but also has the unique programmable function,which can realize

键盘及LED显示实验

实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED 显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。 5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED显示器,学生可选用任一位LED显示器,只要按地址输出相应的数据,就可以显示所需数码。 六、实验原理图

P1口桥接。 八、实验参考流程图 1.主程序流程图

2.外中断服务程序流程图 外部中断0 外部中断1 定时器0中断程序,用于消抖动:

3.LED显示程序流程图 九、C51语言参考源程序 #include "reg52.h" unsigned char KeyResult; //存放键值 unsigned char buffer[8]; //显示缓冲区 bit bKey; //是否有键按下 xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口 xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口 xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口 xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口 code unsigned char SEG_TAB[] = { //段码 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0}; sbit bLine0 = P3^2; sbit bLine1 = P3^3; //延时1ms void Delay1ms() { unsigned char i;

运用8255设计的键盘及显示接口-实验报告(含接线图+源程序)

运用8255设计的键盘及显示接口 图中用并行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键。将键盘中的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C 口为输入口; PB0—PB7与七段代码显示器连接B口为输出。 程序执行过程如下:识别是否有键按下,方法是使PA0一PA3输出全0,读C 口(行值) 中只要有一位为0,就说明有键按下,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行显示七段代码显示器的程序,这时七段代码显示器就显示与该键相同的数值。 实验步骤 8255接口的应用键盘及显示接线图 注:圆圈处是要求接的连线。 (1)按图4接线。 (2)输入源程序,汇编、连接后装入系统。 (3)执行程序后,按一下键盘,7段代码就会显示相应的数字。

程序 STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,3000H MOV AL,00H MOV [SI],AL ;清空存放数据的缓冲区 MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV DI,3003H MOV AL,81H ;8255方式字定义选择0方式,A口为输出; OUT 63H,AL;B口为输出;C口为输入 BEGIN: CALL DIS ;显示七段代码管数据的子程序 CALL CLEAR ;七段代码管清0子程序 CALL CCSCAN ;检测是否有键按下子程序 JNZ INK1 ;

单片机 键盘接口实验

实验六键盘接口实验 一、实验目的 1、掌握Keil C51软件与Protues软件联合仿真调试的方法; 2、掌握单片机的键盘接口电路; 3、掌握单片机的键盘扫描原理; 4、掌握键盘的去抖原理及处理方法。 二、实验仪器与设备 1、微机一台 2、Keil C51集成开发环境 3、Protues仿真软件 三、实验内容 1、用Protues设计一矩阵键盘接口电路。要求利用P1口接一4×4矩阵键盘。串行口通过一74LS164接一共阴极数码管。用线反转法编写矩阵键盘识别程序,用中断方式,并将按键的键值0-F通过串行口输出,显示在数码管上。 2、将P1口矩阵键盘改成8个独立按键,重新编写识别和显示程序。 四、实验说明 矩阵键盘识别一般包括以下内容: ⑴判别有无键按下。 ⑵键盘扫描取得闭合键的行、列号。 ⑶用计算法或查表发的到键值; ⑷判断闭合键是否释放,如没释放则继续等待。 ⑸将闭合键的键值保存,同时转去执行该闭合键的功能。 五、实验步骤 1、用Protues设计键盘接口电路; 2、在Keil C51中编写键盘识别程序,编译通过后,与Protues联合调试; 3、按动任意键,观察键值是否能正确显示。 六、实验电路仿真图 矩阵键盘电路图见附录1。 独立按键电路图见附录2。 七、实验程序 实验程序见附录3、4。 八、实验总结 1、矩阵键盘常用的检测方法有线反转法、逐行扫描法。线反转法较简单且高效。在矩阵键盘的列线上接一与门,利用中断方式查询按键,可提高CPU的运行效率。 2、注意用线反转法扫描按键时,得到的键值不要再赋给temp,最好再设一新变量接收键值,否则再按下按键显示数字的过程中,再按按键会出现乱码。 3、学会常用与门、与非门的使用方法。 附录1:矩阵键盘实验电路图

键键盘管理芯片

在单片机应用系统中,存在多种形式的外部数据输入接口界面,例如RS-232C串行通信、键盘输入等[1,4]。其中利用键盘接口输入数据,是实现现象实时调试、数据调整和控制最常用的方法。单片机的外围键盘扩展电路有多种实现方式,例如直接利用I/O接口线或外接8255A接口芯片,配合适当的接口管理程序,就可以实现外围键盘扩展功能。但是,在这些方法中,键盘扩展电路需要占用单片机的资源对按键进行监控和处理,这对要求高实时性处理的单片机系统是不实现的。为了解决这一问题,可以使用专用键盘接口芯片(例如Intel8279)[2]来组建键盘子系统。而且,这类专用键盘接口芯片在使用灵活性方面尚有欠缺,尤其当用户需要实现某些特定功能时,其缺点更为明显。针对上述问题,本文提出一种利用复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)设计技术[3]实现专用键盘接口芯片的方案。 1 系统原理 图1是单片机系统中键盘子系统的构成原理框图。其中键盘接口芯片KB-CORE是该子系统的核心部分,它应具备如下功能:第一,产生按键扫描时序,并进行硬件去抖动。如果直按键按下,实现按键编码、中断处理等功能。第二,可以区分处理数字键和功能键。数字键钭由接口芯片暂存,而当功能键被按下时申请CPU中断处理;对多个按键同时按下,按一定的编码优先级处理。第三,提供与MCS-51系列单片机兼容的接口,单片机可以读取芯片中保存的数据或功能代码。第四,提供数据显示接口,可以直接驱动4位七段LED数码管,并进行动态扫描显示。

按键根据键盘子系统的服务对象拟设置子数字键(0~9)、功能键(ROW、COL、DAT)、清零键(CLR)共14个,排成4×4的矩阵,有两个未定义。 2 专用键盘接口芯片功能结构设计 根据上述专用键盘芯片KB-CORE的功能要求,图2示出本芯片内部应有的结构框图。 其工作原理如下:(1)键盘扫描控制及编码电路中内含一个环形计数器。该计数器计数输出至KSL[0~3]端作为键盘扫描信号。每当扫描信号发生变化时,键盘扫描控制器从KRL[0~3]端读入某一行按键的状态信号。如果没有按键被按下,则扫描下一行;如果有按键被按下,则控制器锁定被扫描行,并延迟约10ms去抖动,然后再次扫描被锁定行以确定按键是否误读。如果按键被证实按下,则一直等待直至用户松开该键。与此同时,数字键码将被保存到先进先出存储器,功能键则直接产生中断请求信号IRQ,通知CPU读取键码DBO[0~7]。(2)FIFORAM中数据容量为16位。每4位对应一个字形符,所以七段LED数码管需要4位。(3)扫描发生器一方面产生LED的位选信号DSL[0~3],另一方面产生扫描显示输出控制电路的位数据选通信号。扫描显示输出控制电路根据位数据选通信号读取FIFO RAM中相对应的数据,然后送七段译码电路输出DP[0~6]驱动LED显示屏的段选信号电极。(4)接口控制电路一方面用来识别CPU的读时序;另一方面用来对地址信号线A1A0译码,实现对输出数据的选择。若A0A1=“00”,则输出FIFO RAM中的低字节数据;若A0A1=“01”,

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

[实验四]定时器及键盘接口的应用 [实验目的] 了解定时器结构、功能及

[实验四]定时器及键盘接口的应用 [实验目的] 1.了解定时器结构、功能及应用。 2.熟悉基于状态机设计的软件设计方法和矩阵键盘的应用设计实现。 3.设计并实现一个改进型的电话拨号系统。 [实验内容]: 1.使用定时器的产生特定频率,输出到蜂鸣器上产生不同的音调。 2.用状态机设计的思想,设计键盘输入接口。 3.综合利用实验板上定时器,蜂鸣器,键盘,LED显示模块,设计一个电话拨号系统。 [实验步骤]: 1.参考第八章例8.7的硬件电路以及软件设计,利用AVR的16位T/C1的比较匹配功能, 发出不同频率的音调。 2.参考9. 3.2 定时扫描方式的键盘接口程序,以及图9-7的键盘部分硬件连线电路,实现 基于状态机思想的键盘扫描。 3.仔细思考例9.3,回答以下问题: ●本例中,在T/C0的中断服务中进行了LED的扫描,而读键盘和键盘处理是在主程序中 完成的。如果将读键盘和键盘处理也放在T/C0中断中完成是否可以?请深入分析这两种处理方式的优点和缺点,说明原因。 ●在read_keyboard()中,行线输出语句为什么重复2次? ●说明在read_keyboard()中,key_mask的作用,另外是否可以将变量key_line和 key_value定义成普通的局部动态变量?为什么? 4.在例9.3的基础上,改进实现一个电话拨号系统: 1)实验板上的矩阵键盘共包含有12个按键,其中10个作为数字“0,1,2….9”的数字输入,其他两个为功能键,一个是总清除键“#”,一个是修改键“*”。修改程 序,键盘上数字键功能不变,而“#”键的功能为总清除(即清除LED上的全部的 数字显示,显示复原为8个“-”),“*”键的功能为修改键(表示最后输入的数字 有误,LED显示全部右移一位,清除最后输入的数字,最左边一位补入“-”)。 2)系统上电时,8个LED数码管显示“--------”8条横线,每按下一个号码后,原8位LED数码管的显示内容向左移动一位,最右边一位则显示键盘上刚按下的数字。 3)将每个数字键与特定的音调相结合起来,比如数字1-2-3-4-5-6-7-8-9-0对应音阶Do-re-mi-fa-sol-la-ti-do-la-mi(后两个为高8度)。每当按下按键在LED上显示数字 后都能在蜂鸣器上发出相同节拍的对应音阶。 [思考题]: 1.当定时计数器工作在普通模式和CTC模式时,都可以产生一个固定的定时中断。如果要求精确的定时中断,采用那种模式比较好?为什么?

串行接口实验报告

课程实验报告实验名称:串行接口 专业班级: 学号: 姓名: 同组人员: 指导教师: 报告日期:

实验二 1. 实验目的 (3) 2. 实验内容 (3) 3. 实验原理 (3) 4. 程序代码 (6) 5. 实验体会 (13)

实验二 1.实验目的 1.熟悉串行接口芯片8251的工作原理 2.掌握串行通讯接收/发送程序的设计方法 2.实验内容 通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。具体过程如下: 1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。 2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。 3.实验原理 1.8251控制字说明 在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。 另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。 2.8251方式指令(端口地址2B9H)

3.8251工作指令(端口地址2B9H) 4.8251状态字(端口地址2B9H) 5.8253控制字(283H) 6.8253计数初值(283H) 计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz 波特率=1200 波特率因=16 计数初值= 1000000/1200*16=52

嵌入式ARM键盘接口和七段数码管的控制实验

实验三键盘接口和七段数码管的控制实验 一、实验目的 1. 学习4X4键盘的与CPU的接口原理 2. 掌握键盘芯片HD7279的使用,及8位数码管的显示方法; 二、实验内容 1. 通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。 三、实验设备 1.EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。 2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境, 仿真调试驱动程序。 四、实验原理 键盘和7段数码管的控制实验,是通过键盘的控制芯片HD7279A来完成的。它的信号线及控制线连接到S3C2410上,驱动线直接连到8位共阴的7段数码管上。由于其芯片的接口电压是5V的,而S3C2410的接口电压是3.3V,所以,HD7279A的信号、控制线经过CPLD 把电压转换到3.3V,然后送入CPU中。 HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片。该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。内部含有译码器可直接接受BCD码或16进制码并同时具有两种译码方式。此外还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等,具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。 HD7279在与S3C2410接口中,它使用了4根接口线。片选信号#CS(低电平有效),时钟信号CLK,数据收发信号DATA,中断信号#KEY(低电平送出),EL-ARM-830+实验箱与其的接口中,使用了三个通用I/O接口,和一个外部中断,实现了与HD7279A的连接,S3C2410的外部中断接HD7279的中断#KEY,三个I/O口分别与HD7279A的其他控制、数据信号线相连。HD7279的其他管脚分别接4X4按键和8位数码管。 当程序运行时,按下按键,平时为高电平的HD7279A的#KEY就会产生一个低电平,送给S3C2410的外部中断5请求脚,在CPU中断请求位打开的状态下,CPU会立即响应外部中断5的请求,PC指针就跳入中断异常向量地址处,进而跳入中断服务子程序中,由于外部中断4/5/6/7使用同一个中断控制器,所以,还必须判断一个状态寄存器,判断是否是外部中断5的中断请求,当判断出是外部中断5的中断请求,则程序继续执行,CPU 这时,通过发送#CS片选信号选中HD7279A,再发送时钟CLK信号和通过DATA线发送控制指令信号给HD7279A,HD7279A得到CPU发送的命令后,识别出该命令,然后,扫描按键,

键盘接口实验实验报告及程序

实验六键盘接口实验 姓名专业通信工程学号成绩 一、实验目的 1.掌握Keil C51软件与Protues软件联合仿真调试的方法; 掌握单片机的键盘接口电路; 掌握单片机键盘扫描原理; 掌握键盘的去抖原理及处理方法。 实验仪器与设备 1.微机1台C51集成开发环境3。Proteus仿真软件 实验内容 用Proteus设计一矩阵键盘接口电路。要求利用P1口接一4*4矩阵键盘。串行口通过一74LS164接一共阴极数码管。参考电路见后面。 用线反转法编写矩阵键盘识别程序,要求采用中断方式(列线通过4输入与门74LS20接/INT0),无按键按下时,数码管循环画“8”;有按键按下时产生中断并将按键的键值0~F通过串行口输出,在数码管上显示3秒钟后返回;返回后,数码管继续循环画“8”。 将P1口矩阵键盘改为8个独立按键(用中断方式设计),键盘通过74LS30(8输入与非门)和74LS04(六反相器)与/INT0相连,重新编写识别和显示程序。实验原理 矩阵键盘识别一般应包括以下内容: 判别有无键按下。 键盘扫描取得闭合键的行、列号。 用计算法火或查表法得到键值。 判断闭合键是否释放,如果没释放则继续等待。 将闭合键的键值保存,同时转去执行该闭合键的功能。 实验步骤 用Proteus设计键盘接口电路; 在Keil C51中编写键盘识别程序,编译通过后,与Proteus联合调试; 按动任意键,观察键值是否能正确显示。 电路设计及调试、程序 程序设计:矩阵键盘 #include<> #define uchar unsigned char #define uint unsigned int uchar code table1[]={0x00,0x01,0x21,0x61,0x65,0x6d,0x7d,0x7f}; uchar code key_table[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0 xd7,0xb7,0x77};

4x4键盘实验报告

单片机及DSP课程设计报告 专业: 班级: 姓名: 学号: 指导教师: 时间:

一、设计目的 为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。 1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与应用》《C 语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。 2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用 程序,并仿真运行,保证设计的正确性。 3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、 编程、调试、撰写报告等。 二、硬件电路方案设计 1、4X4键盘设计 4x4键盘工作原理: 每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电

阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 2、数码管显示电路设计 数码管显示原理: 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。 3、晶振和复位电路设计

键盘智能控制芯片HD7279A

3.2.5 键盘智能控制芯片HD7279A HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279A内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。 如图3.7所示为HD7279A芯片封装图,HD7279A共有28个引脚,在设计中使用的各个引脚功能如下: CS:片选输入端,此引脚为低电平时,可向芯片发 送指令及读取键盘数据; CLK:同步时钟输入端,向芯片发送数据及读取键 盘数据时,此引脚电平上升沿表示数据有效; DATA:串行数据输入/输出端,当芯片接收指令 时,此引脚为输入端;当读取键盘数据时,此引脚在‘读’ 指令最后一个时钟的下降沿变为输出端; KEY:按键有效输出端,平时为高电平,当检测到 有效按键时,此引脚变为低电平; DIG0~DIG7:数字0~数字7驱动输出;图3.7 HD7279A芯片封装图 RC:振荡器连接端,其中电阻的典型值为1.5k ,电容的典型值为15pF; HD7279A与微处理器仅需4条接口线,其中CS为片选信号(低电平有效)。DATA为串行数据端,当向HD7279A发送数据时,DATA为输入端;当HD7279A 输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,该端在无键按下时为高电平;而在有键按下时变为低电平,并一直保持到按键释放为止。 HD7279A采用串行方式与微处理器通讯,串行数据从DATA引脚送入芯片,并由CLK端同步。当片选信号变为低电平后,DATA引脚上的数据在CLK引脚上升沿被写入HD7279A的缓冲寄存器。HD7279A的选通端CS和CLK、DATA、KEY分别于DSP的SCITXD/IOPA0、SCIRXD/IOPA1、IOPF6、CLKOUT/IOPE0相连。 HD7279A与TMS320LF2407的输入输出逻辑电平不同。TMS320LF2407的I /O口输出有效电压为3.3 V,而HD7279A引脚输出有效电压则为5 V。需要解决5 V与3.3 V芯片连接时存在的逻辑电平问题,在这里采用稳压二极管钳位电路,HD7279A引脚输出电压钳位在3.3 V,进而解决不同逻辑电平的接口问题。HD7279A与TMS320LF2407A的接口电路如附录二所示。需要注意的是,图中8

8051硬件实验5 键盘接口实验

硬件实验5 键盘接口实验 1.实验目的 1)了解按键的相关基础知识以及抖动、连击、重键等的处理方法。 2)了解按键的几种工作方式与特点。 3)掌握键盘的硬件连接方式及程序设计方法。 2.预习要求 1)了解P0、P1、P2、P3口的准双向接口特点与应用特性。 2)了解独立式键盘的硬件连接方式与特点。 3)了解行列式键盘的硬件连接方式与特点,以及行扫描法和线路反转法两种按键扫描 方法。 4)预习本节实验内容,设计实验的硬件连接,编写实验程序。 3.实验说明 1)键盘的组织形式与工作原理 独立式键盘:当数量较少时(如5个以下),通常采用独立式按键方式,即一条口线连接一个按键;独立式键盘软件简单,定时读取这些口线的电平状态,即可判断按键是否按下,是哪个按键按下;但是当按键较多时,需要消耗的I/O口线多。 矩阵式(行列式)键盘:当按键数量较多时,为了节省I/O口资源,通常采用矩阵式键盘形式,对于n列、m行矩阵连接的n×m个按键,只需要n+m条口线。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。在需要的按键数量较多(如大于6个)时,通常采用矩阵法设计键盘接口。 2)矩阵式键盘的扫描方式 A.行扫描法 行扫描法又称为逐行扫描查询法,是一种最常用的按键识别方法,扫描步骤如下: ?按键判断:判断键盘中有无键按下,其过程为将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低 电平线与行线相交叉的按键之中。若所有列线均为高电平,表示无键按下。 ?按键识别:在确认有键按下后,则要确定所闭合按键的位置,即确定键值。其扫描过程为:依次将行线置为低电平并输出(逐行输出0),然后读取各列线的电平状 态,若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。通 过各行的扫描,可以检测到按下的按键。 B.线路反转法 ?第一步:行作为输出,列作为输入。行输出全为0,输入各列电平,如果列值全为

相关文档
最新文档