矩阵键盘了流程图

合集下载

矩阵键盘操作说明

矩阵键盘操作说明

矩阵键盘操作说明一、系统复位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左移一位}}}} //结束。

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