矩阵键盘了流程图

合集下载

矩阵键盘操作说明

矩阵键盘操作说明

矩阵键盘操作说明一、系统复位1按数字键0后,按MON键2输入99后,按NEXT键二、键盘视频选择首先是监视器选择然后是摄像机选择1、按键盘上的CLEAR键,清除键盘数字输入ENTER区中的数字显示2、输入所选择的监视器号,该数字在键盘数字输入ENTER区中显示3、按MON键,该监视器号在键盘监视器MONITOR区中显示4、同时系统主机将返回该监视器对应的图像号,在键盘的摄像机CAMERA区中显示。

5、输入选择的摄像机号,该数字在键盘数字输入ENTER区中显示6、按CAM键7、系统主机将返回该图像号,在键盘的摄像机CAMERA区中显示则选择的图像再选择的监视器上显示三、图像区域切换在指定的监视器上运行一个指定区域的图像切换,该功能可以在任何一个监视上浏览切换所有的图像操作步骤如下:1、按键盘上CLERA键,清除数字输入ENTER区中的数字显示2、输入所选择的监视器号,该数字在键盘数字输入ENTER区中显示3、按MON键,该监视器号在键盘监视器MONITOR区中显示4、输入区域切换中的开始图像号5、按ON键,确认开始区域的开始图像6、输入区域切换中的结束图像号7按OFF键确定区域切换的结束图像完成后则该监视器开始区域切换依次按照设定的图像号进行切换如要添加一个图像到切换序列中则:1和设置区域切换的步骤一样重复1-3步,选择一个监视器,该监视必须已存在一个切换队列2、输入所希望添加的摄像机图像好,该摄像机图像号必须在系统的最大允许摄像机图像号的范围内3、按组合键ENTER-ON,ENTER键必须在前面,确定添加的图像。

如要在切换队列中删除一个图像:1、和设置区域切换的步骤一样重复1-3步,选择一个监视器,该监视必须已存在一个切换队列2输入所希望添加的摄像机图像好,该摄像机图像号必须在这个序列切换范围内。

3、按组合键ENTER-OFF,ENTER必须在前面,确认删除图像。

四、报警设置单布防针对需要布防的防区一个一个的布防,防区布防后,根据监视器与防区触点权限表,自动将该防区分配到与之对应的监视器上。

4×5矩阵键盘驱动程序

4×5矩阵键盘驱动程序

4×5矩阵键盘驱动程序一、工作原理及接口电路4×5矩阵键盘有4条列线,5条行线共20个按键。

每个按键对应不同键值,键盘扫描采用外部中断扫描方式,本系统中键盘为无源结构,键盘工作时不依靠任何外部电源。

4×5矩阵键盘结构图如图2-10 所示。

图2-10 4×5矩阵键盘结构图1)4×5矩阵键盘结构及按键抖动消除当键盘中按键数量较多时为减少I/O口的占用,通常将按键排列成矩阵形式,如图2-12所示。

在矩阵式键盘中,每条行线和列线在交叉处不直接连通,而是通过一个机械弹性开关加以连接。

这样5条列线(R0~R4)和4条行线(L0~L3)就可以构成20个按键的矩阵键盘。

键盘采用了无源结构,工作是不依靠任何外部电源。

由于机械弹性开关的机械触点的弹性作用,一个按键开关在闭合时并不会马上稳定的闭合,在断开时也不会马上断开,因而机械开关在闭合及断开瞬间均伴有一连串的抖动,如图2-11所示。

图2-11 按键时的抖动抖动的时间长短由按键开关机械特性及按键的人为因素决定,一般为5ms~20ms。

按键抖动如果处理不当会引起一次按键被误处理多次,所以消除抖动是必要的。

消除抖动的有硬件处理和软件处理两种方法。

当按键较多一般采用软件消抖方式。

软件消抖原理为当检测出按键闭合后执行一个延时程序(产生5ms~20ms的延时),待前沿抖动消失后再次检测按键的状态,如果按键仍保持闭合状态则可确认为有键按下。

当检测到按键释放并执行延时程序,待后沿抖动消失后才转入按键的处理程序。

1)矩阵键盘的工作原理从4×5矩阵键盘的4条列线和5条行线分别引出9条端线接于单片机的9个I/O口,由于键盘采用了无源结构所以行列线的电平由单片机I/O口的电平决定。

进入按键处理程序后先使4条列线全为低电平,5条行线全为高电平,为读行线状态做准备,没有按键时这种状态不会被改变。

当键盘上的某个按键闭合时,则该键所对应的行线和列线被短路。

自己写的单片机矩阵键盘显示程序及仿真

自己写的单片机矩阵键盘显示程序及仿真

Protues 电路连接图如下所示:PS:矩阵键盘说明——4×4矩阵从左到右依次编码为1,,3,4,5,6,7,8,9,10,11,12,13,14,15,16按下某一按键,Led数码管就会显示相应的数字。

Keil C51 程序如下:有点不足望改进。

O(∩_∩)O谢谢!!!/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////#include <reg51.h>#define uchar unsigned char //宏的定义变量类型 uchar 代替 unsigned char#define uint unsigned int //宏的定义变量类型 uint 代替 unsigned intuchar dis_buf; //显示缓存uchar temp;uchar l,h,j; //定义行列void delay0(uchar x); //x*0.14MS// 此表为 LED 的字模 0 1 2 3 4 5 6 78 9uchar code LED7Code[] = {0xc0,0xf9,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};/************************************************************* * ** 延时子程序 ** **************************************************************/void delay(uchar x){ uchar j;while((x--)!=0) //CPU执行x*12次,x=10{ for(j=0;j<50;j++){;}}}/************************************************************* * * * 键扫描子程序 (4*4的矩阵) P1.4 P1.5 P1.6 P1.7为行 * * P1.0 P1.1 P1.2 P1.3为列 ** * *************************************************************/void keyscan(void){ temp=0;P1=0xF0; //高四位输入行为高电平列为低电delay(3); //延时temp=P1; //读P1口temp=temp&0xF0;//屏蔽低四位temp=~((temp>>4)|0xF0); //高四位取反无键按下取反应为0xf0if(temp==1) //0001 [1,1] 被拉低h=1;else if(temp==2) //0010[2,1] 被拉低h=2;else if(temp==4) //0100[3,1] 被拉低h=3;else if(temp==8) //1000[4,1] 被拉低h=4;dis_buf = h;dis_buf = (dis_buf<<4) & 0xf0; //行信息现存在第四位delay(10);P1=0x0F; //低四位输入列为高电平行为低电平delay(3); //延时temp=P1; //读P1口temp=temp&0x0F; //屏蔽高四位temp=~(temp|0xF0); //取反if(temp==1) //1列被拉低l=1;else if(temp==2) //2列被拉低l=2;else if(temp==4) //3列被拉低l=3;else if(temp==8) //4列被拉低l=4;l= l & 0x0f;delay(3);dis_buf= l | dis_buf;}/************************************************************** **判断键是否按下 ** **************************************************************/void keydown(void){P2=0xF0; //显示00P3=0xf0;//将高4位全部置1 低四位全部置0if(P1!=0xF0) //判断按键是否按下如果按钮按下会拉低P1其中的一个端口{keyscan(); //调用按键扫描程序}}void display( ){j=50;while(j){P2= 0x80;P0= LED7Code[0];delay(50);P2=0x01;P0= LED7Code[1];delay(50);P0=0xff;j--;}}void display1( ){j=50;while(j){P2= 0x80;P0= LED7Code[2];delay(50);P2=0x01;P0= LED7Code[1];delay(50);P0=0xff;j--;}}void display2( ){j=50;while(j){P2= 0x80;P0= LED7Code[3];delay(50);P2=0x01;P0= LED7Code[1];delay(50);P0=0xff;j--;}}void display3( ){j=50;while(j){P2= 0x80;P0= LED7Code[4];delay(50);P2=0x01;P0= LED7Code[1];delay(50);P0=0xff;j--;}}void display4( ){j=50;while(j){P2= 0x80;P0= LED7Code[5];delay(50);P2=0x01;P0= LED7Code[1];delay(50);P0=0xff;j--;} }void display5( ){j=50;while(j){P2= 0x80;P0= LED7Code[6];delay(50);P2=0x01;P0= LED7Code[1];delay(50);P0=0xff;j--;}}/************************************************************** ** 主程序 ** **************************************************************/ void main(){P0=0xc0;delay(20); //延时while(1){ keydown(); //调用按键判断检测程序switch( dis_buf){case 0x11 : P2=0x80; P0= LED7Code[1]; break;case 0x12 : P2=0x80; P0= LED7Code[2]; break;case 0x13 : P2=0x80; P0= LED7Code[3]; break;case 0x14 : P2=0x80; P0= LED7Code[4]; break;case 0x21 : P2=0x80; P0= LED7Code[5]; break;case 0x22 : P2=0x80; P0= LED7Code[6]; break;case 0x23 : P2=0x80; P0= LED7Code[7]; break;case 0x24 : P2=0x80; P0= LED7Code[8]; break;case 0x31 : P2=0x80; P0= LED7Code[9]; break;case 0x32 : display();break;case 0x33 : P2 = LED7Code[1]; P0= LED7Code[1]; break;case 0x34 : display1(); break;case 0x41 : display2(); break;case 0x42 : display3();; break;case 0x43 : display4();; break;case 0x44 : display5();; break;}delay(250);}}/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////(注:本资料素材和资料部分来自网络,仅供参考。

《矩阵键盘》课件

《矩阵键盘》课件

游戏机按键通常配备震动反馈 功能,提供触觉反馈,增强游 戏体验的真实感。
工业控制设备
工业控制设备如自动 化仪表、数控机床等 也采用矩阵键盘布局 。
工业控制设备的矩阵 键盘通常防水、防尘 ,适应恶劣的工业环 境。
矩阵键盘的设计使得 工业控制设备能够实 现快速、准确的输入 控制指令。
06
矩阵键盘的未来展望

扫描程序
按照一定的规则逐行逐列扫描键盘 ,检测按键状态变化。
识别程序
根据按键电路的状态变化,判断具 体哪个按键被按下,并执行相应的 操作。
接口通信方式
并行通信
通过数据线将按键信号直接传输 到微控制器,数据传输速度快,
但需要较多的数据线。
串行通信
通过串行数据线将按键信号传输 到微控制器,数据传输速度较慢
键。
矩阵键盘的设计使得电子琴能够 模拟传统钢琴的触感,提供逼真
的演奏体验。
电子琴的矩阵键盘通常配备力度 感应功能,根据按下琴键的力度
来调整音符的音量和音质。
游戏机按键
游戏机按键通常采用矩阵键盘 布局,以适应游戏过程中快速 输入指令的需求。
矩阵键盘的设计使得游戏机按 键能够实现多键同时按下,提 高游戏操作的准确性和速度。
THANKS
感谢观看
03
矩阵键盘的电路设计
硬件电路设计
电源电路
为矩阵键盘提供稳定的电 源,确保按键的正常工作 。
按键电路
每个按键对应一个或多个 行列交叉点,通过检测行 和列的状态变化来确定按 键的按下状态。
输出电路
将按键信号输出到微控制 器或其他处理设备进行处 理。
软件编程设计
初始化程序
对矩阵键盘进行初始化设置,包 括设置扫描频率、去抖动时间等

AD矩阵键盘操作

AD矩阵键盘操作

1、键盘布局:2、键盘与矩阵通信:通信方式为RS232串行信号,波特率默认为1200。

具体操作方法:将键盘钥匙拨至MENU,按F1进入第一级菜单,LCD屏上显示System Keyboard VXXX,此显示版本号。

按PROG键进入System Setup菜单,选择COMM Setup(通讯协议设置),按PROG键进入,显示COMM SELECT,按PROG键进入,通过按ACK键将SET TO选择为RS232,按PROG键选择,然后通过按NEXT 键选择PREVIOUS MENU(退出菜单)退出。

然后通过NEXT键选择RS232 Baud Setup,按PROG 键进入,选择波特率为1200,按PROG键确认。

将键盘钥匙拨至OPERATE即可完成键盘设置。

3、键盘出现UC-此为矩阵的RS232端口用户锁定现象,解除锁定的办法为:在键盘上输入“1—ACK”,然后键盘屏幕上出现PCS(密码),输入“999999-ACK”,如不行,则输入“0--ACK”,然后键盘上出现PCS,输入“999999--ACK”即可。

4、摄像机、监视器调用方法选择要显示图像的监视器,输入编号,然后按MON键,如要在1号监视器上显示5号图像,则操作方法为:1-MON(监视器),5-CAM(摄像机),即可显示。

同时可对此摄像机进行控制(水平、垂直转动和焦距调节)。

5、系统巡视设置系统巡视设置操作:首先调用128号摄像机,屏幕呈蓝色,中间有INFINOVA,将键盘钥匙拨至MENU调用矩阵主菜单,通过摇杆将光标移至“系统设置”,按ACK键进入此菜单,通过键盘摇杆将光标移至“设置系统巡视”,按ACK进入菜单,光标在巡视号上停留,输入要编辑的巡视编号,按ACK确认,然后分别对本编码巡视的摄像机号和停留时间进行设置,同理,输入摄像机号然后按ACK确认,输入停留时间(秒),按ACK确认。

完成后将键盘钥匙拨至OPERATE,或者将光标移至返回上一级菜单,按ACK返回上一级菜单。

矩阵键盘

矩阵键盘

2.矩阵键盘矩阵键盘按键连接矩阵键盘是一个4*4结构,如图5-1所示。

矩阵键盘的按键识别方法采用最常用的“行扫描法”。

①判断有无键按下:将全部行线置低电平,然后检测列线的状态。

只要由一列的电平为低,则表示键盘中有键按下。

若所有列线为高电平,则无键按下。

②判断闭合键所在位置:确认有键按下后,依次将行线置为低电平(在置某根行线为低电平时,其它线为高电平)。

在确定某根行线为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

下面给出一个具体的例子:实验中单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位(P1.0-P1.3),键盘的行线接到P1的高4位(P1.4-P1.7)。

P1.0-P1.3设置为输入线,P1.4-P1.7设置为输出线,行线和列线形成16个交叉点。

①检测当前是否有键被按下。

检测的方法是P1.4-P1.7输出全“0”,读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。

②去除键抖动。

当检测到有键按下后,延时一段时间再做下一步的检测判断。

③若有键被按下,应识别出哪一个键闭合。

方法是对键盘的行线进行扫描。

P1.4-P1.7按下述4种组合依次输出:P1.7 1110P1.6 1101P1.5 1011P1.4 0111在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。

由此得到闭合键的行值和列值,然后可采用计算法或者查表法将闭合键的行值和列值转换为所定义的键值。

④为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。

三、实验内容与步骤1.在单片机集成开发环境下,调试并运行例题中的程序;2..编写程序完成以下任务,并烧写到单片机中调试运行,直到达到要求。

任务在例题基础上,增加定时器1,利用定时器1控制流水灯,数码管每加一,流水灯移动一个。

#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar temp,bai,shi,ge,aa,bb,temp1;uchar code table[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};void delay(uint z);void init();void display(uchar bai,uchar shi,uchar ge);void main(){init();while(1){if(bb==20){bb=0;temp1=_crol_(temp1,1);delay(100);P1=temp1;}if(aa==20){aa=0;temp++;if(temp==101){temp=0;}}bai=temp/100;shi=temp%100/10;ge=temp%10;display(bai,shi,ge);}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void display(uchar bai,uchar shi,uchar ge) {P0=table[bai];P2=0xfe;delay(1);P0=table[shi];P2=0xfd;delay(1);P0=table[ge];P2=0xfb;delay(1);}void init(){temp1=0xfe;P1=temp1;aa=0;bb=0;temp=0;TMOD=0X11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;TR0=1;ET1=1;TR1=1;}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;}void timer1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;bb++;}实验四串口通讯原理及操作一、实验目的1.进一步熟悉集成开发环境;2.掌握80C51串行通信的基本工作原理;3.学习80C51串行通信的编写方法。

监控矩阵键盘使用说明

监控矩阵键盘使用说明

主控键盘(SYSTEM KEYBOARD)使用说明书(中文版第二版)Copyright 2009-2012. All Rights Reserved.注意事项:1.安装场所远离高温的热源和环境,避免阳光直接照射。

为确保本机的正常散热,应避开通风不良的场所。

为了防止电击和失火,请勿将本机放置于易燃、易爆的场所。

小心轻放本机避免强烈碰撞、振动等,避免安装在会剧烈震动的场所。

避免在过冷、过热的场所间相互搬动本机,以免机器内部产生结露,影响机器的使用寿命。

2.避免电击和失火切记勿用湿手触摸电源开关和本机。

勿将液体溅落在本机上,以免造成机器内部短路或失火。

勿将其它设备直接放置于本机上部。

安装过程中进行接线或改线时,都应将电源断开,预防触电。

重要提示:为了避免损坏,请勿自动拆开机壳,必须委托有资格有专业维修人员在指定的维修单位进行维修。

清洁装置时,请勿使用强力清洗剂,当有灰尘时用干布擦拭装置。

不得在电源电压过高和过低的场合下使用该本机。

务请通读本使用说明书,以便您掌握如何正确使用本机。

当您读本说明书后,请把它妥善保存好,以备日后参考。

如果需要维修,请在当地与经本公司授权的维修站联系。

环境防护:本机符合国家电磁辐射标准,对人体无电磁辐射伤害。

申明:产品的发行和销售由原始购买者在许可协议条款下使用;未经允许,任何单位和个人不得将该产品全部或部分复制、再生或翻译成其它机器可读形式的电子媒介;本手册若有任何修改恕不另行通知;因软件版本升级而造成的与本手册不符,以软件为准。

目录设备概述 (3)第一部分控制矩阵切换系统 (4)1.1键盘通电 (4)1.2键盘操作加锁 (4)1.3键盘操作解锁 (4)1.4键盘密码设置 (4)1.5选择监视器 (5)1.6选择摄像机 (5)1.7控制解码器 (5)1.8控制智能高速球 (6)1.9操作辅助功能 (7)1.10系统自由切换 (8)1.11系统程序切换 (9)1.12系统同步切换 (10)1.13系统群组切换 (10)1.14报警联动 (10)1.15防区警点 (11)1.16警点状态 (11)1.17声音开关 (11)第二部分控制数字录像机、画面处理器 (11)2.1 进入数字录像机、画面处理器模式 (11)2.2 退出数字录像机、画面处理器模式 (11)2.3 选择数字录像机、画面处理器 (11)2.4 控制数字录像机、画面处理器 (12)第三部分设置连接 (12)3.1键盘工作模式 (12)3.2键盘与矩阵主机连接示意图 (14)3.3键盘解码器连接示意图 (15)3.4键盘与小型系统连接示意图 (16)3.5键盘与智能高速球连接示意图 (16)系统控制键盘SYSTEM KEYBOARD设备概述:系统控制键盘是与矩阵切换系统配套使用的一种操作键盘。

矩阵键盘过程及扫描程序

矩阵键盘过程及扫描程序

键盘是单片机常用输入设备,在按键数量较多时,为了节省I/O口等单片机资源,一般采取扫描的方式来识别到底是哪一个键被按下。

即通过确定被按下的键处在哪一行哪一列来确定该键的位置,获取键值以启动相应的功能程序。

矩阵键盘的四列依次接到单片机的P1.0~P1.3,四行依次接到单片机的P1.4~P1.7;同时,将列线上拉,通过10K电阻接电源。

查找哪个按键被按下的方法为:一个一个地查找。

先第一行输出0,检查列线是否非全高;否则第二行输出0,检查列线是否非全高;否则第三行输出0,检查列线是否非全高;如果某行输出0时,查到列线非全高,则该行有按键按下;根据第几行线输出0与第几列线读入为0,即可判断在具体什么位置的按键按下。

下面是具体程序:void Check_Key(void){unsigned char row,col,tmp1,tmp2;tmp1 = 0x10;//tmp1用来设置P1口的输出,取反后使P1.4~P1.7中有一个为0for(row=0;row<4;row++) // 行检测{P1 = 0x0f; // 先将p1.4~P1.7置高P1 =~tmp1; // 使P1.4~p1.7中有一个为0tmp1*=2; // tmp1左移一位if ((P1 & 0x0f) < 0x0f)// 检测P1.0~P1.3中是否有一位为0,只要有,则说明此行有键按下,进入列检测{tmp2 = 0x01; // tmp2用于检测出哪一列为0for(col =0;col<4;col++) // 列检测{if((P1 & tmp2)==0x00)// 该列如果为低电平则可以判定为该列{key_val =key_Map[ row*4 +col ];// 获取键值,识别按键;key_Map为按键的定义表return; // 退出循环}tmp2*=2; // tmp2左移一位}}}} //结束。

矩阵键盘程序及原理

矩阵键盘程序及原理

程序效果:‎按下任意键‎,LED显‎示P0读回‎的数据其中‎4*4的矩‎阵键盘接P‎0口*/‎#inc‎l ude<‎r eg52‎.h> /‎/头文件‎u nsig‎n ed c‎h ar k‎e y=0x‎f f; ‎//定义‎一个变量用‎于存放按键‎值voi‎d rea‎d key(‎); ‎//读按键‎子函数,获‎取键值v‎o id m‎a in()‎ /‎/主函数‎{whi‎l e(1)‎{ ‎read‎k ey()‎; //读‎按键值i‎f(key‎!=0xf‎f) //‎判断是否有‎按键按下‎P2=~k‎e y;//‎这里取反:‎是因为LE‎D为共阴,‎显示所按下‎的值‎}}‎v oid ‎r eadk‎e y() ‎//读键盘‎子函数{‎P0=0‎x fe; ‎//将第一‎列拉低,扫‎描是否有按‎键按下,第‎一列键值为‎:0,4,‎8,C k‎e y=P0‎; //‎读取键盘值‎if(k‎e y!=0‎x fe) ‎//若ke‎y!=0x‎f e,说明‎有按键按下‎,则返回‎r etur‎n; ‎//否则‎继续扫描下‎一列P0‎=0xfd‎;key‎=P0;‎i f(ke‎y!=0x‎f d)r‎e turn‎;P0=‎0xfb;‎key=‎P0;i‎f(key‎!=0xf‎b)re‎t urn;‎P0=0‎x f7;‎k ey=P‎0;if‎(key!‎=0xf7‎)ret‎u rn;‎k ey=0‎x ff;‎}‎键盘扫‎描程序:‎从以‎上分析得到‎键盘扫描程‎序的流程图‎所示。

程序‎如下‎SCAN‎: MOV‎P1,#‎0FH‎MOV‎A,P1‎A‎N L A,‎#0FH ‎CJ‎N E A,‎#0FH,‎N EXT1‎S‎J MP N‎E XT3 ‎NE‎X T1: ‎A CALL‎D20M‎S‎M OV A‎,#0EF‎H‎N EXT2‎: MOV‎R1,A‎M‎O V P1‎,A‎MOV ‎A,P1 ‎AN‎L A,#‎0FH‎CJN‎E A,#‎0FH,K‎C ODE;‎M‎O V A,‎R1‎SETB‎C‎RLC ‎A‎J C NE‎X T2‎NEX‎T3: M‎O V R0‎,#00H‎R‎E T‎KCOD‎E: MO‎V B,#‎0FBH ‎NE‎X T4: ‎R RC A‎I‎N C B ‎JC‎NEXT‎4‎M OV A‎,R1‎SWA‎P A‎NEX‎T5: R‎R C A ‎IN‎C B‎INC‎B‎INC ‎B‎I NC B‎J‎C NEX‎T5‎NEXT‎6: MO‎V A,P‎1‎A NL A‎,#0FH‎C‎J NE A‎,#0FH‎,NEXT‎6‎M OV R‎0,#0F‎F H‎RET ‎<2‎>确定矩阵‎式键盘上何‎键被按下介‎绍一种“高‎低电平翻转‎法”。

矩阵键盘——精选推荐

矩阵键盘——精选推荐

矩阵键盘摘要本课题研究的内容是4×4矩阵式键盘识别技术,即以单⽚机为控制核⼼设计⼀个4×4的键盘和LED数码管的显⽰电路,按顺序键号为“0—F”,并在数码管上显⽰按下的按键的键号﹙“0—F”之间的值﹚。

本⽂通过⽅案设计、电路设计、程序设计、系统仿真四个部分来叙说4×4矩阵式键盘识别技术的具体实现。

其中电路设计对每个单元电路原理有详细解说,程序采⽤模块化、结构化设计,这样免去了内容的多次重复程序冗长的缺点,同时也更加清晰明了。

整个过程都可以在PROTEUS上进⾏仿真,并能成功实现该课题所要求的功能。

关键词:89C51单⽚机;矩阵式键盘;LED数码管⽬录摘要.......................................................................................................... I 1⽅案设计.. (1)1.1设计任务 (1)1.2设计要求 (1)1.3⼯程⽅案 (1)2电路设计 (2)2.14×4矩阵式键盘电路 (2)2.2LED数码显⽰电路 (3)2.3单⽚机最⼩系统电路 (3)2.4电路⼯作原理 (4)3程序设计 (5)3.1程序流程图 (5)3.2程序代码实现 (8)4系统仿真 (10)4.1系统仿真⽅法 (10)4.2仿真结果分析 (10)5总结与体会 (12)参考⽂献: (12)致谢 (13)1⽅案设计1.1 设计任务设计⼀个4×4的键盘和LED数码管的显⽰电路,按顺序键号为“0—F”,并在数码管上显⽰按下的按键的键号(“0—F”之间的值)。

1.2 设计要求﹙1﹚以单⽚机为控制核⼼,实现硬件电路的设计、程序设计,并在PROTEUS平台实现仿真。

﹙2﹚课程设计论⽂内容正确,结构合理。

1.3 ⼯程⽅案单⽚机4×4矩阵式键盘识别技术的实现包括电路设计、程序设计以及系统仿真三⼤部分,系统总框图见图1.1。

矩阵键盘电路

矩阵键盘电路
矩阵键盘电路
知识点目录
1
矩阵键盘电路结构与工作原理
矩阵键盘的编码
矩阵式键盘按键识别
键盘的工作方式
1.矩阵键盘电路结构与工作原理
2
矩阵式键盘又称为行列式键盘。用I/O接口线组成行和列结构,键位设置在行和 列的交叉点上。如图1所示,8个I/O口实现了16个按键。
图1 矩阵键盘电路结构
1.矩阵键盘电路结构与工作原理
3
工作原理:以第一组键盘为例。设置KeyOut1输出一个低电平,相当于KeyOut1接 地,电路相当于4个独立按键电路,此时KeyIn1-KeyIn4四个输入端为高电平;当 键盘K1按下时,由于电路导通,此时KeyIn1变为低电平。同理,哪个按键按下, 相对应的输入端为低电平,单片机通过读输入端的状态,判断是否有按键按下。 对应图1四组按键,当KeyOut1输出为低电平时,KeyOut2-KeyOut4输出必须为高 电平,才能避免相互间的干扰。
2.矩阵键盘的编码
பைடு நூலகம்
4
对于矩阵式键盘,按键的位置由行号 和列号唯一确定,因此可分别对行号 和列号进行二进制编码,然后将两值 合成一个字节,高4位是行号,低4位 是列号。
3.矩阵式键盘按键识别
5
扫描法:
1) 判断有无键按下。
2) 如果有键按下,识别是哪一个键按下,键盘扫描取得闭合键的行、列值。
3) 用计算法或查表法得到键值。
4) 判断闭合键是否释放,如没释放则继续等待。
5) 将闭合键键号保存,同时转去执行该闭合键的功能。
4.键盘的工作方式
6
(1)编程扫描方式
利用CPU在完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入 的要求。
(2)定时扫描工作方式

矩阵键盘按键的数码管显示矩阵,键盘按键的数码管显示

矩阵键盘按键的数码管显示矩阵,键盘按键的数码管显示

一、矩阵键盘按键的数码管显示1.实验目的(1)掌握VHDL语言的语法规范,掌握时序电路描述方法(2)掌握多个数码管动态扫描显示的原理及设计方法2.实验所用仪器及元器件计算机一台实验板一块电源线一根扁平线一根下载线一根3.实验任务要求设计出4*4矩阵键盘对某一按键按下就在数码管显示一个数字。

按键从左上角到右下角依次为1,2, (16)4.实验原理按键模块原理键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

键盘键值的获取:键盘上的每一个按键其实就是一个开关电路,当某键被按下时,该按键的接点会呈现0的状态,反之,未被按下时则呈现逻辑1的状态。

扫描信号由row进入键盘,变化的顺序依次为1110-1101-1011-0111-1110。

每一次扫描一排,依次地周而复始。

例如现在的扫描信号为1011,代表目前正在扫描9,10,11,12这一排的按键,如果这排当中没有按键被按下的话,则由column 读出的值为1111;反之当9这个按键被按下的话,则由column读出的值为1110。

根据上面所述原理,我们可得到各按键的位置与数码关系如表所示:1110 1110 1110 1110 1101 1101 1101 1101row1110 1101 1011 0111 1110 1101 1011 0111 column1 2 3 4 5 6 7 8键值row 1011 1011 1011 1011 0111 0111 0111 0111 column 1110 1101 1011 0111 1110 1101 1011 0111键值9 10 11 12 13 14 15 16动态显示原理为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求。

DSP-矩阵键盘扫描实验

DSP-矩阵键盘扫描实验

班级学号姓名同组人实验日期室温大气压成绩实验五矩阵键盘扫描实验一、实验目的1、掌握键盘信号的输入,DSP I/O的使用;2、掌握键盘信号之间的时序的正确识别和引入。

二、实验设备1、一台装有CCS2000软件的计算机;2、插上2812主控板的DSP实验箱;3、DSP硬件仿真器。

三、实验原理实验箱上提供一个 4 * 4的行列式键盘。

TMS320F2812的8个I / O口与之相连,这里按键的识别方法是扫描法。

当有键被按下时,与此键相连的行线电平将由此键相连的列线电平决定,而行线的电平在无法按键按下时处于高电平状态。

如果让所有的列线也处于高电平,那么键按下与否不会引起行线电平的状态变化,始终为高电平。

所以,在让所有的列线处于高电平是无法识别出按键的。

现在反过来,让所有的列线处于低电平,很明显,按键所在的行电平将被拉成低电平。

根据此行电平的变化,便能判断此行一定有按键被按下,但还不能确定是哪个键被按下。

假如是5键按下,为了进一步判定是哪一列的按键被按下,可在某一时刻只让一条列线处于低电平,而其余列线处于高电平。

那么按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。

模块说明:此模块共有两种按键,KEY1—KEY4是轻触按键,在按键未按下时为高电平输入FPGA,当按键按下后对FPGA输入低电平,松开按键后恢复高电平输入,KEY5—KEY8是带自锁的双刀双掷开关,在按键未按下时是低电平,按键按下时为高电平并且保持高电平不变,只有再次按下此按键时才恢复低电平输入。

每当按下一个按键时就对FPGA就会对此按键进行编码,KEY1—KEY8分别对应的是01H、02H、03H、04H、05H、06H、07H、08H。

在编码的同时对DSP产生中断INT1,这个时候DSP就会读取按键的值,具体使用方法可以参考光盘例程key,prj。

实验流程图:1、把2812 模块小板插到大板上;打开液晶模块的电源开关;2、按下键盘按键,液晶会显示所按键的号码。

第六讲独立按键和矩阵键盘第七讲数码管全解

第六讲独立按键和矩阵键盘第七讲数码管全解

第六讲独立按键和矩阵键盘按键是什么东西,我想这个就不必由我向各位阐述了。

嗯,如你所见,按键种类繁多,功能有简有繁,极大的充斥着我们的生活。

但是无论如何,所有的按键其实都有一个原型,来源于同一种原理,所有的按键无论多复杂,多华丽,都是从这样一个原型发展而成的。

好比你就算长的再帅,你也是只猩猩变来的,呵呵。

我们平日所见到的绝大部分的按键,其实都可以归类为一种,叫“接触式按键”。

下图为一个典型的接触式按键(又称轻触开关)。

需要特别说明的是,这里说的“接触”,是指机械层面上的接触,而不是感光或者某些特殊涂层(比如触摸屏)一类的接触。

所以,按键的工作特性其实是一种机械特性,下文会详细说明。

,如上图,请对照图一想象,1、2、3、4 分别对应按键的四个引脚,其中蓝色的线表示按键未被按下之时的状态,我成为初始状态,它是不导通的;而绿色的线是却永久导通的。

各位明白了么,其实是两个相同的结构连在一起了。

我们只要将需要按键开关作用的线路分别接在1、3 和2、4 的任意取一组合,概括起来就是(1,2)、(1,4)、(3,2)、(3,4)四种组合,都可以起到我们预期的开关作用。

相信以上说明使大家对按键的工作原理有了个比较清晰的认识了,现在来说说一个小知识。

先看下图(图4):首先说明的是,上图的连法是不允许的,因为当按键按下之后,电源和地短接,会将导线直接烧毁。

但是此处用作特例,假设导线不会烧毁。

现在来提出一个问题,当按键按下以后,请问如果这时用万用表测量导线上任何一处的电压,得到的结果是VCC 还是GND 的电压?答案是:GND,即表示测出的电压为0V。

为什么呢,因为导线上,对于两端的电平是一种类似于程序语言逻辑运算里面的“与”,即对于导线两端:有零即为零,只有全为一是才为一。

理解了这点,按键的工作前提就有了。

键盘分为编码键盘和非编码键盘。

键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。

独立键盘和矩阵键盘-PPT

独立键盘和矩阵键盘-PPT

图8.2 矩阵式键盘接口
特点:电路连接复杂,但提高了 I/O口利用率,软件编程较复 杂。适用于需使用大量按键 得场合。
U1
P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8
P10 P11 P12 P13 P14 P15 P16 P17
P00 P01 P02 P03 P04 P05 P06 P07
设第2行第 4列键按下
89C51 P1.0 P1.1 P1.2 P1.3 P1.4 11 11 11 1011 P1.5 P1.6 P1.7
+5V
101 110 110 01
行线输出 列线输入
0111 1011 1101 1110
1111 1110 1111 1111
(2)线反转法。 线反转法也就是识别闭合键得一种常用方法, 该 法比行扫描速度快, 但在硬件上要求行线与列线外 接上拉电阻。 先将行线作为输出线, 列线作为输入线, 行线输出 全“0”信号, 读入列线得值, 那么在闭合键所在得列 线上得值必为0;然后从列线输出全“0”信号,再读取 行线得输入值,闭合键所在得行线值必为 0。这样, 当一个键被按下时, 必定可读到一对唯一得行列值。 再由这一对行列值可以求出闭合键所在得位置。
独立键盘和矩阵键盘
通常,键盘有编码与非编码两种。编码键盘通过 硬件电路产生被按按键得键码与一个选通脉冲。选 通脉冲可作为CPU得中断请求信号。这种键盘使用 方便,所需程序简单,但硬件电路复杂,常不被单片机采 用。
非编码键盘按组成结构又可分为独立式键盘与 矩阵式键盘。独立式键盘得工作过程与矩阵式键盘 类似,无论就是硬件结构还就是软件设计都比较简单,。
…… else if (表达式n-1) (语句n-1;) else {语句n}

笔记本16乘8矩阵键盘原理

笔记本16乘8矩阵键盘原理

键盘工作的主要原理:计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。

所谓行列扫描法是指,把键盘按键排列成n行×m列的n*m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信号就被认为已接通。

按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。

如有键按动,键盘就会向主机发送被按键所在的行列点阵的位置编码,称为键扫描码。

单片机通过周期性扫描行、列线,读回扫描信号结果,判断是否有键按下,并计算按键的位置以获得扫描码。

键被按下时,单片机分两次将位置扫描码发送到键盘接口:按下一次,叫接通扫描码;按完释放一次,叫断开扫描码。

这样,通过硬件或软件的方法对键盘分别进行行、列扫视,就可以确定按下键所在位置,获得并输出扫描位置码,然后转换为ASCII码,经过键盘I/O电路送入主机,并由显示器显示出来。

我們的應用是EC有KSI/KSO接鍵盤,EC確認鍵盤某個鍵有作用,才會通知系統來減少系統資源浪費,此外每一列会间断性发low讯号請問一秒內,一個固定的列(KSO)會發1000次Low Pulse.笔记本EC中使用到了16*8矩阵键盘,其中16根列线输入端为KSO0~KSO15,8根行线输出端为KSI0~KSI7。

16根列线和8根行线可以确定16*8=128个坐标点。

键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。

逐线扫描,得出键码。

下图给出了4*4的矩阵键盘的电路具体加以说明。

矩阵式键盘中,行、列线分别连接到按键开关的两端,行线X0、X1、X2、X3通过上拉电阻接到+5 V上。

当无键按下时,行线处于高电平状态,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档