单片机之键盘工作原理
- 格式:ppt
- 大小:1.60 MB
- 文档页数:31
优选文档§键盘接口技术一、键盘输入应解决的问题键盘是一组按键的会集,它是最常用的单片机输入设备.操作人员可以经过键盘输入数据或命令,实现简单的人机通讯。
键是一种常开型按钮开关,平时 ( 常态 ) 键的二个触点处于断开状态,按下键时它们才闭合(短路 ) 。
键盘分编码键盘和非编码键盘。
键盘上闭合键的鉴别由专用的硬件译码器实现并产生编号或键值的称为编码键盘,如: ASCⅡ码键盘、 BCD码键盘等;靠软件识其余称为非编码键盘。
在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。
本节重视议论非编码键盘的原理、接口技术和程序设计。
键盘中每个按键都是—个常开关电路,以以下列图。
11.按键的确认: P1.7=1 无按键;P1.7=0 有按键;2.去抖动去抖动的方法:①硬件去抖动采用RS触发器:优点 :速度快,实时,缺点 :增加了硬件成本② 软件去抖动采用延时方法延时 5—10ms延时5—10ms P1.7=0确认P1.7=0P1.7=1( 去前沿抖动 )(去后沿抖动) 二、独立式键盘每个 I/O 口接一个按, S1S2⋯⋯⋯⋯⋯⋯⋯⋯⋯ .S8件:START: MOV P1 ,#0FFH ;置 P1 口高平JNB P1.0, RS1 ; S1 按下 , 程序去行 RS1JNB P1.1, RS2 ; S2 按下 , 程序去行 RS2JNB P1.2, RS3 ; S3 按下 , 程序去行 RS3JNB P1.3, RS4 ; S4 按下 , 程序去行 RS4JNB P1.4, RS5 ; S5 按下 , 程序去行 RS5JNB P1.5, RS6 ; S6 按下 , 程序去行 RS6JNB P1.6, RS7 ; S7 按下 , 程序去行 RS7JNB P1.7, RS8 ; S8 按下 , 程序去行 RS8AJMP START ; 描按⋯⋯⋯⋯ .RS1: AJMP PK1 ;RS2: AJMP PK2 ;RS3: AJMP PK3 ;RS4: AJMP PK4 ;RS5: AJMP PK5 ;RS6: AJMP PK6 ;RS7: AJMP PK7 ;RS8: AJMP PK8 ;AJMP START ; 无按下 , 描⋯⋯⋯⋯⋯⋯⋯PK1:⋯⋯⋯ ..;按S1功能理程序AJMP START;理S1按后,描PK2:⋯⋯⋯ ..;按S2功能理程序AJMP START⋯⋯⋯⋯⋯⋯⋯ .PK8:⋯⋯⋯⋯⋯⋯;按S8功能理程序AJMP START;理S8按后,描点 :, 程序简单 .缺点 :太浪源适用于按少、 I/O 口空的合。
单片机c语言程序设计---矩阵式键盘实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称:矩阵式键盘实验一、实验目的和要求1.掌握矩阵式键盘结构2.掌握矩阵式键盘工作原理3.掌握矩阵式键盘的两种常用编程方法,即扫描法和反转法二、实验内容和原理实验1.矩阵式键盘实验功能:用数码管显示4*4矩阵式键盘的按键值,当K1按下后,数码管显示数字0,当K2按下后,显示为1,以此类推,当按下K16,显示F。
(1)硬件设计电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
操作方完成矩阵式键盘实验。
具体包括绘制仿真电路图、编写c源程序(反转法和扫描法)、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。
完成思考题。
三、实验方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。
2.在keil上进行编译后生成“xxx.hex”文件。
3.编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
四、实验结果与分析void Scan_line()//扫描行{Delay(10);//消抖switch ( P1 ){case 0x0e: i=1;break;case 0x0d: i=2;break;case 0x0b: i=3;break;case 0x07: i=4;break;default: i=0;//未按下break;}}void Scan_list()//扫描列{Delay(10);//消抖switch ( P1 ){case 0x70: j=1;break;case 0xb0: j=2;break;case 0xd0: j=3;break;case 0xe0: j=4;break;default: j=0;//未按下break;}}void Show_Key(){if( i != 0 && j != 0 ) P0=table[ ( i - 1 ) * 4 + j - 1 ];else P0=0xff;}五、讨论和心得。
基于单片机的键盘和LED数码管工作原理摘要:键盘和显示器是微机最常见的输入输出设备。
本文介绍键盘和LED显示器的基本工作原理,并给出在8051基础上的电路结构及C语言代码。
关键字:键盘,LED,单片机键盘是微型计算机系统中最基本、最常见的输入设备。
在各种工业过程的计算机控制和监视系统中,广泛应用发光二极管向用户提供提示。
由发光二极管可以构成7段/8段LED显示器,用于显示工作状态、参数数值和故障位置。
一.键盘的工作原理键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。
(一)键盘的基本介绍1.键盘的功能键盘接口必须具有4个基本功能:1.去抖动2.防串键3.识别被按键并产生与之对应的键码4.释放键而键码产生后如何去实现按键的特定功能,是操作系统和应用程序的任务2.键盘的分类根据按键开关的排列方式,键盘可分为线性键盘和矩阵键盘。
线性键盘:硬件连接和接口程序都很简单,只适用于按键少的场合,因为线性键盘有多少按键,就需要有多少根连线与微机输入端口相连。
矩阵键盘:将按键排成n行m列,每个按键占据行列的一个交点,需要的外连接线数目是m+n,而容许的最大按键数是m*n,显然可以减少微机接口的连线,是一般微机常采用的键盘结构。
3.键盘与单片机的连接方式矩阵键盘的连接方法有多种。
可直接连接于单片机的I/O口线;可利用扩展的并行I/O口连接;也可利用可编程的键盘、显示接口芯片(如8297)进行连接等等。
其中,利用扩展的并行I/O口连接方便灵活,在单片机应用系统中比较常用。
下图就是通过8255A芯片扩展的并行I/O口连接的矩阵键盘。
图 1 微处理器和键盘接口接线示意(二)键盘的工作过程被按键的识别和键码的产生是键盘接口要解决的主要问题,可以通过软硬结合的方法来解决。
通常识别被按键有两种方法:行扫描法和线反转法。
实际微型计算机系统中以行扫描法应用最广,其基本思想是:由程序对键盘进行逐行扫描,通过检测到的列状态来确定闭合键,需要输出端口、输入端口各1个。
单片机按键原理
单片机按键原理是利用按键的机械接触来完成开关动作。
当按下按键时,按键的触点会接通按键两端的电路,形成通路,从而使电流得以流动。
与此同时,可以通过单片机的IO口进行
监测,通过读取IO口的电平状态可以判断按键是否被按下。
在单片机按键电路中,通常需要加入上拉电阻或下拉电阻来确保按键在未被按下时具有一个确定的电平状态。
当按键未被按下时,上拉电阻或下拉电阻会将按键上或下的电平拉高或拉低,并且可以减小电路中的干扰。
当按键被按下时,IO口所连接的引脚的电平状态会发生改变,单片机可以通过检测到引脚电平状态的变化来判断按键被按下的动作。
为了避免按键的抖动问题(由于机械接触而导致的短时间内多次的接通和断开),可以在软件中增加延时或采用其他滤波方法来解决。
通过单片机按键原理,可以实现诸如控制、输入、菜单选择等功能。
在工程实践中,常常需要考虑到按键的稳定性、响应速度、布局等因素,以提高整个系统的可靠性和用户体验。
键盘电路在单片机应用系统中,除了复位按键外,可能还需要其他按键,如键盘按键,以便控制系统的运行状态或向系统输入运行参数。
键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向系统输入数据的数字键组合)以及键盘扫描程序等部分组成。
1、按键结构及其电压波形在单片机控制系统中广泛使用的机械键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,按键两个引脚连通,接触电阻大小与按键触点面积及材料有关,一般在数十欧姆以下;松手后,复位弹簧将动片弹开,使动片触点与静片触点脱离接触,两引脚返回断开状态。
可见,机械键盘或按扭的基本工作原理就是利用动片触点和静片触点的接触和断开来实现键盘或按钮两引脚的通、断。
在如图所示的键盘电路中,按键没有被按下时,P1口内部上拉电阻将P1.3-P1.0引脚置为高电平,而当S3-S0之一被按下时,相应按键两引脚连通,P1口对应引脚接地。
在理想状态下,按键引脚电压变化如图6-29(a)所示。
但实际上,在按键被按下或释放的瞬间,由于机械触点弹跳现象,实际按键电压波形如图6-29(b)所示,即机械按键在按下和释放瞬间存在抖动现象。
抖动时间的长短与按键的机械特性有关,一般在5~10ms之间,而按键稳定闭合期的长短与按键时间有关,从数百毫秒到数秒不等。
为了保证按键由按下到松开之间仅视为一次或数次输入(对于具有重复输入功能的按键),必须在按键或软件上采取去抖动措施,避免一次按键输入一串数码。
硬件上,可利用单稳态电路或RS触发器消除按键抖动现象,但在单片机应用系统中最常采用的方法是利用软件延迟方式消除按键抖动问题,这样可以不增加硬件成本。
因此,在单片机系统中按键识别过程是:通过随机扫描、定时中断扫描或中断监控方式发现按键被按下后,延时10~20ms(因为机械按键由按下到稳定闭合的时间为5~10ms)再去判断按键是否处于按下状态,并确定是哪个按键被按下。
对于每按一次仅视为一次输入的按键设定来说,在按键稳定闭合后对按键进行扫描,读出按键的编码(或称为键号),执行相应操作;对于具有重复输入功能的按键设定来说,在按键稳定闭合期内,每个特定时间,如250ms或500ms 对按键进行检测,当发现按键仍处于按下状态时,就输入该键,直到按键被释放。
单片机8x8矩阵键盘原理说明
单片机8x8矩阵键盘原理说明
基于单片机接矩阵键盘原理单片机与矩阵键盘连接如下图:
此图用P1口P1.0---P1.3接4行P1.4--P1.7接4列
矩阵键盘工作原理:由于按键没有接地,4行4列正好占用8个I/O如果4行我们送P3.0到P3.3送入0111然后去读取4列的值,如果P3.0的按键按下那么P3.4---P3.7的值等于0111,假如是第2个键按下的话那么读回来的值是1011,如果第3个键按下去读回来的值是1101,如果第4个键按下去读回来的值是1110,如果没有键按下去读回来就是1111。
所以我们就根据读回来的值来判断按下去的是那个键。
当然这是对P3.0这一行,因为矩阵键盘是扫描的,所以下次把P3.0给1P3.1给0对第2行,陆续的第3行第4行,0111101111011110而每次都去从新扫描一遍列值列有4个值,以确定是那个键按下。
无论何时任何一个时间有一个按键被按下就跳出循环。
当然不可能有2个键刚好一起按下你的手没有这么好的力度,就算有2个键一起按键,程序也有先后检测的顺序,只能检测一个后面的检测不到。
P3=0XFE;//第一行给0
temp;定义个变量
temp=P3;读回来由于读需要先写1因为P3=FE已经把高4位给1了所以能读了temp">
启动后的原来图,还没有按键按下:
再来一张,有按键按下的情况:
代码如下:
#include《reg52.h》
#defineucharunsignedchar。
矩阵式键盘的连接方法和工作原理什么是矩阵式键盘?当键盘中按键数量较多时,为了减少I/O 口线的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样做有什么好处呢?大家看下面的电路图,一个并行口可以构成4*4=16 个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别就越明显。
比如再多加一条线就可以构成20 键的键盘,而直接用端口线则只能多出一个键(9 键)。
由此可见,在需要的按键数量比较多时,采用矩阵法来连接键盘是非常合理的。
矩阵式结构的键盘显然比独立式键盘复杂一些,识别也要复杂一些,在上图中,列线通过电阻接电源,并将行线所接的单片机4 个I/O 口作为输出端,而列线所接的I/O 口则作为输入端。
这样,当按键没有被按下时,所有的输出端都是高电平,代表无键按下,行线输出是低电平;一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了,具体的识别及编程方法如下所述:二.矩阵式键盘的按键识别方法确定矩阵式键盘上任何一个键被按下通常采用“行扫描法”或者“行反转法”。
行扫描法又称为逐行(或列)扫描查询法,它是一种最常用的多按键识别方法。
因此我们就以“行扫描法”为例介绍矩阵式键盘的工作原理:1.判断键盘中有无键按下将全部行线X0-X3 置低电平,然后检测列线的状态,只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4 根行线相交叉的4 个按键之中;若所有列线均为高电平,则表示键盘中无键按下。
2.判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:依次将行线置为低电平(即在置某根行线为低电平时,其它线为高电平),当确定某根行线为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
下面给出一个具体的例子:单片机的P1 口用作键盘I/O 口,键盘的列线接到P1 口的低4 位,键盘的行线接到P1 口的高4位,也就是把列线P1.0-P1.3 分别接4 个上拉电阻到电源,把列线P1.0-P1.3 设置为输入线,行线P1.4-P1.7 设置为输出线,4 根行线和4 根列线形成16 个相交点,如上图所示。
单片机按键工作原理
单片机按键的工作原理如下:
1. 按键的接线:按键通常由两个引脚组成,一个引脚连接到单片机的某个I/O口(一般被配置为输入模式),另一个引脚与
单片机的地(GND)相连。
2. 按键的触发方式:按下按键时,按键与地(GND)短接,
形成一个低电平信号。
松开按键时,按键与地(GND)断开,形成一个高电平信号。
3. 单片机的读取:单片机通过I/O口读取按键状态。
在读取之前,需要对I/O口进行配置,以确定其作为输入模式。
4. 按键的消抖处理:由于按键的物理性质,松开按键时可能会出现抖动(也就是开关接通和断开之间多次切换),这会使单片机读取到多个状态变化。
为了避免误操作,需要对按键进行消抖处理。
有多种消抖方法,如软件消抖(通过延时)和硬件消抖(使用电容、电阻等元件)。
5. 单片机的判断:单片机读取到按键状态后,可以进行相应的判断,例如检测按键是否按下,并执行相应的操作,例如触发某个事件、修改某个参数等。
6. 可选的外部电路:根据具体需求,还可以在按键与单片机之间添加外部电路,例如上拉电阻、下拉电阻、滤波电容等,以提供更稳定的按键信号和更好的抗干扰能力。
总结起来,单片机按键的工作原理是基于按键的触发方式和单片机的输入读取能力,通过配置I/O口、消抖等操作,将按键状态转换为单片机可识别的信号,并在单片机内部进行相应的判断和处理。
51单片机学习之5-独立按键和矩阵键盘
第14集
键盘的原理
键盘分编码键盘(例如电脑键盘)和非编码键盘(自己用程序去识别)。
非编码键盘分:独立式非编码键盘(独立按键)、行列式非编码键盘(4*4阵列键盘)
独立键盘的电路图。
因为51单片机的IO口不是双向口而是准双向口,要让IO口具备输入功能,必须将IO口置1,置1之后当按键按下时IO口的电平会被拉低,即被置0。
当检测到IO口为0时即可判断该按键已经按下。
按键按下时会有一个抖动的
过程(弹片会抖动),由于单片机检测IO口速度非常快,超过弹片抖动的频率,所以当单片机检测到IO口为0时需延时一小段时间再检测IO是否为0,如果仍为0就确认该按钮被按下。
因为IO口里面有上拉电阻,所以当松开按钮时,IO口又被拉高。
例程:
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitKey=P3;//按键
sbitLed=P1;//Led灯
voiddelay(uintz);
/********主函数********/
voidmain()。
单片机键盘原理
单片机键盘原理在于通过按键开关的闭合和断开来实现输入信号的检测和解码。
键盘通常由一个矩阵型的按键组成,每个按键都有一个独立的开关。
按键可以分为行和列,行和列之间采用交叉连续的方式进行连接。
在初始化过程中,单片机会将所有的列设置为输出引脚,行设置为输入引脚,并且设置为上拉输入。
当按键没有被按下时,所有行引脚都会被上拉电阻拉高。
当有某个按键按下时,对应按键的行引脚会被连接到低电平,通过检测行引脚的低电平可以知道是否有按键按下。
接着,单片机会将所有列引脚一一设置为输出低电平,并检测行引脚的电平状态。
如果行引脚的电平为低,则表示对应的按键被按下,并且可以根据所在的行和列来确定具体的按键编码。
通过这种方式,单片机可以实现对键盘输入信号的检测和解码,从而获取用户的输入。
在实际应用中,可以根据按键的编码来执行相应的操作,比如控制显示、控制器件等。
单片机基础:键盘接口原理详解按键根据结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
前者造价低,后者寿命长。
目前,微机系统中最频繁的是触点式开关按键。
2.输入原理在应用系统中,除了复位按键有特地的复位及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。
当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构疏远相关的过程。
对于一组键或一个键盘,总有一个接口电路与CPU相连。
CPU可以采纳查询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转命令转入执行该键的功能程序,执行完后再返回主程序3.按键结构与特点微机键盘通常用法机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的规律关系。
也就是说,它能提供标准的TTL规律电平,以便与通用数字系统的规律电平相容。
机械式按键再按下或释放时,因为机械弹性作用的影响,通常陪同有一定时光的触点机械颤动,然后其触点才稳定下来。
其颤动过程如下图所示,颤动时光的长短与开关的机械特性有关,普通为5~10 ms。
在触点颤动期间检测按键的通与断状态,可能导致推断出错,即按键一次按下或释放被错误地认为是多次操作,这种状况是不允许浮现的。
为了克服按键触点机械颤动所致的检测误判,必需实行去颤动措施。
这一点可从硬件、软件两方面予以考虑。
在键数较少时,可采纳硬件去抖,而当键数较多时,采纳软件去抖。
4. 按键编码一组按键或键盘都要通过I/O口线查询按键的开关状态。
按照键盘结第1页共4页。
单片机矩阵按键原理
单片机矩阵按键的原理主要是通过行列结构来识别按键。
具体来说,它使用4条I/O线作为行线,4条I/O线作为列线,形成了一个4x4的矩阵。
在行线和列线的每个交叉点上,设置一个按键。
当某个按键被按下时,对应的行线和列线会被连通,导致行线和列线的电平发生变化。
单片机通过逐行扫描或逐列扫描的方式,读取I/O口的电平变化,从而确定哪个按键被按下。
具体来说,在行列扫描中,单片机先从P1口的高四位(四个行)输出高电平,低四位(四个列)输出低电平,如果有按键按下,从P1口的高四位读取键盘状态,判断高四位的四行哪一行变成了低电平,就知道是第几行。
然后从P1口的低四位(四个列)输出高电平,高四位(四个行)输出低电平,从P1口的低四位读取键盘状态,判断低四位的四列哪一行变成了低电平,就知道是第几列。
将两次读取结果组合起来就可以得到当前按键的特征编码。
使用这种行列结构能够有效地提高单片机系统中I/O口的利用率,节约单片机的资源。
以上内容仅供参考,建议查阅关于单片机矩阵按键的书籍或者咨询专业技术人员获取更准确的信息。