单片机键盘
- 格式:ppt
- 大小:243.00 KB
- 文档页数:10


单片机 矩阵键盘实验 实验报告
一、实验目的
本次实验的目的是掌握原理和方法,利用单片机识别矩阵键盘并编程实现键码转换功能,控制LED点亮显示。
二、实验原理
矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对应矩阵排列结构。它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书籍检索机器等方面。本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键码转化。从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。
三、实验方法
1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。
2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。
四、实验结果
经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成了按键编码输出与LED点亮的功能。实验完成后,数码管显示各种按键的编码,同时LED会点亮。
本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。
实验六 键盘接口实验
一、实验目的
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:矩阵键盘实验电路图
附录2:独立按键实验电路图
附录3:矩阵键盘实验程序
#include
char code
LED_TAB[]={0xc0,0xf9,0xa4,0xb0,
科技创新 2012 ̄4月(中)f科技创新与应用
单片机矩阵键盘接口设计
杨社鼎
(湖北工业大学,湖北武昌430068)
摘 要:本文针对单片机键盘接口的设计,重点讨论了键盘接口在使用时处理的内容、三种控制方式和一个典型键盘接口程序设计。 关键词:矩阵;键盘;键码;抖动
引言
在单片机应用系统中通常都要有人—机对话功能。人—机对话的 中间桥梁是键盘,键盘就是一组按键的集合,操作人员可以通过键盘输
入数据或命令,实现简单的人机通讯。键盘分编码键盘和非编码键盘,
键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称 为编码键盘,如:ASCⅡ码键盘、BCD码键盘等;靠软r牛识别的称为非编 码键盘。本文侧重讨论键盘接口处理的内容、三种控制方式和—个典型
矩阵键盘接口程序设计。 1键盘接口处理的内容 1.1按键扫描
键盘大都采用按行、列排列的矩阵开关结构,这种结构可以减少硬 件和连线。常用按键扫描识别方法有行扫描法(R r-Scanning) ̄
转法(Line-Reverse)。
1.1.1行扫描法是采用步进扫描方式,如图1,CPU通过输出口把一 个“步进的O”逐行加至键盘的行线上,然后通过输八口检查列线的状
态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所 处的行、列位置。
湃誊薷丽
图1 表1
R1 K13 K14 K15 K16
R2 K9 K10 K11 K12
R3 K5 K6 K7 K8
R4 K1 K2 K3 K4
C1 C2 C3 C4
表1为键位与行列线关系表列出了识别按键位置与各行之间的关
系。其中,R1、R2、R3、R4表示行,C1、c2、C3、C4表示列。当扫描第一行
时,RI=O,若读入的列值Cl=0,则表明按键K13被压下,如果C3=0,则 表明按键K15被压下。第一行扫描完毕后再扫描第二,亍,逐行扫描至最 后一行为止,即可识别出所有的按键。
1.1|2线反转法识别按键 线反转法第一步:让行线编程为输入线,列线编程为了输出线,使
51单片机键盘接口电路(含源程序)
键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。
按钮开关的抖动问题
组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。在下图中,当开
<键盘结构图>
图1
图2
关S未被按下时,P1。0输入为高电平,S闭合后,P1。0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1。0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。
为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。单片机中常用软件法,因此,对于硬件办法我们不介绍。软件法其实很简单,就是在单片机获得P1。0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间。而在检测到按钮释放后(P1。0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们常常不对按钮释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按钮的要求也是千差万别,要根据不一样的需要来编制处理程序,但以上是消除键抖动的原则。