搜档网
当前位置:搜档网 › 矩阵键盘

矩阵键盘

矩阵键盘
矩阵键盘

这个是矩阵键盘扫描的程序的源代码,大概的思路是先确定按下的键是哪一行,在确定实在那一列的,最后两个是值求或(相加是一样的意思)

#include

#include"lcd.h"

void main()

{

uchar table[]={0xee,0xed,0xeb,0xe7,//对应每一个按键的值

0xde,0xdd,0xdb,0xd7,

0xbe,0xbd,0xbb,0xb7,

0x7e,0x7d,0x7b,0x77};

uchar temp1=0,temp2=0,key=0;

lcd_init();

write_str(1,0,"请按键:");

while(1)

{

P0=0xf0;

if(P0!=0xf0)//判断高四位按键

{

temp1=P0&0xf0;//把高四位值存进temp1

P0=0x0f;

temp2=P0&0x0f;//把低四位的值存进temp2

while(0x0f!=P0);//松手检测

temp1=temp1|temp2;

for(key=0;key<16&table[key]!=temp1;key++);//确定值对应的位置

write_str(1,0,"你按了:");

write_figr(1,4,key+1);

}

}

}

这个是液晶显示的程序

#include

#define uchar unsigned char

sbit clk=P3^0;

sbit sid=P3^1;

void delay_ms(uchar ms) //延时,一次ms

{

uchar i;

for(;ms>0;ms--)

for(i=124;i>0;i--);

}

void send_dat(uchar dat)//向sid发送数据

{

uchar i;

for(i=8;i>0;i--)

{

sid=dat&0x80;

dat<<=1;

//sid=CY;

clk=0;

clk=1;

}

}

uchar get_dat()//从sid读取数据

{

uchar i,temp1=0,temp2=0;

for(i=8;i>0;i--)//发送低八位

{

clk=0;

clk=1;

if(sid)temp1++;

temp1<<=1;

}

for(i=8;i>0;i++)//发送高八位

{

clk=0;

clk=1;

if(sid)temp2++;

temp2<<=1;

}

return(0xf0&temp1+0x0f&temp2);

}

void check_busy()//检查液晶是否繁忙

{

send_dat(0xfc);//使液晶控制界面为读忙及地址计数器模式while(get_dat()&0x80)

send_dat(0xfc);//检测到BF为时

}

void send_cmd(uchar cmd)//发送指令

{

check_busy();

send_dat(0xf8);//使液晶控制界面为写指令模式

send_dat(cmd&0xf0);

send_dat((cmd&0x0f)<<4);

}

void send_byte(uchar byte)//发送一个字符

{

check_busy();

send_dat(0xfa);//使液晶控制界面写数据到暂存器模式

send_dat(0xf0&byte);

send_dat((0x0f&byte)<<4);

}

void lcd_pos(uchar y,uchar x)

{

switch(y) //判断行

{

case 1:send_cmd(0x80|x);break; //确定在哪一列

case 2:send_cmd(0x90|x);break;

case 3:send_cmd(0x88|x);break;

case 4:send_cmd(0x98|x);break;

default:break;

}

}

void write_str(uchar y,uchar x,uchar *str) //写入字符串{

uchar i;

lcd_pos(y,x);

for(i=0;str[i]!='\0';i++)//字符串没到结尾,继续写send_byte(str[i]);

}

void write_figr(uchar y,uchar x,uchar figr)//写入两位数{

uchar i=0;

lcd_pos(y,x);

send_byte(figr/10+48);

send_byte(figr%10+48);

/*

uchar num[5]

*/

}

void lcd_clear()

{

send_cmd(0x01);

delay_ms(1);

}

void lcd_init()

{

send_cmd(0x30);//进入功能设定

send_cmd(0x0c);//光标显示关

send_cmd(0x02);//清除屏幕

send_cmd(0x06);//进入设定点

lcd_clear();

}

void main()

{

lcd_init();

lcd_clear();

while(1)

{

lcd_pos(1,0);

send_byte('a');

send_byte('b');

write_str(2,1,"努力就有天堂");

write_figr(3,0,12);

delay_ms(100);

}

}

3X3_矩阵键盘

功能描述: 矩阵键盘,3×3矩阵键盘,数码管显示对应按键,动态扫描,中断实现。 其中上拉电阻属性需设置为“digital”。 KEIC程序: /*矩阵键盘3X3,中断方式,外部中断0 */ #include sbit IN0=P3^2; //-----宏声明----- #define uchar unsigned char #define uint unsigned int uchar m=1; //声明各个端口 sbit Row1=P1^0; sbit Row2=P1^1; sbit Row3=P1^2; sbit Line1=P1^3; sbit Line2=P1^4; sbit Line3=P1^5; //显示的字符数组 uchar code DispCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //延时函数,消除抖动 void Delay(uint count) { uint i;

while(--count != 0) for(i = 0; i < 125; i++); } //主函数入口 void main() { EA=1; EX0=1; IT0=1; while(1) { //初始化各行为低电压 Row1=0;Row2=0;Row3=0; Line1=1;Line2=1;Line3=1; P2=DispCode[m]; } } //中断函数 void int0_ISR(void) interrupt 0 { if(IN0==0) { Delay(10);//消除抖动 if(IN0==0) { //行循环扫描,判定为哪行哪列被按下 Row1=0;Row2=1;Row3=1; if(Line1==0){m=1;return;} else if(Line2==0){m=2;return;} else if(Line3==0){m=3;return;} Row1=1;Row2=0;Row3=1; if(Line1==0){m=4;return;} else if(Line2==0){m=5;return;} else if(Line3==0){m=6;return;} Row1=1;Row2=1;Row3=0; if(Line1==0){m=7;return;} else if(Line2==0){m=8;return;} else if(Line3==0){m=9;return;} } } }

监控矩阵键盘说明书

.. 主控键盘 (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)

笔记本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上。当无键按下时,行线处于高电平状态,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。 按键按下时,与此键相连的行线与列线导通,对应的行线被拉低,CPU根据行平电的变化,便能判定相应的行有键按下。例如8号键按下时,第X2行一定为低电平,然而,第2行为低电平时,不能确定一定是8号键按下的,因为9、10、11号键按下同样使第2行为低电平。为进一步

2×2矩阵式键盘

2×2矩阵式键盘 摘要:本设计主要是用来学习键盘扫描程序的设计,数码管的动态显示程序设计。设计中,将单片机8051的并行口P1的P1.0,P1.1接键盘的行,将P1.2,P1.3接键盘的列,将并行口P2的P2.7~P2.0分别接数码管的数据段g,f,a,b,d,h,e,c. 以及将P3.6,P3.7分别接数码管的偏选端,当按下第0行0列时数码管就显示00,按下第0行1列时数码管就显示01,第1行0列时数码管就显示02,第1行1列时数码管就显示03。本设计一共四个按键,用双数码管动态显示。 关键字:单片机,数码管动态显示,行列式键盘,共阴数码管 一、矩阵式键盘工作原理 如下图1,I/O接口线组成行、列结构,按键设置在行、列的交点上。行线通过上拉电阻接+5V。 第一步是CPU检测键盘上是否有按键。具体过程如下:P1.2, P1.3输出0,即将列P1.2, P1.3置成低电平,然后将行线P1.0,P1.1电平状态读入累加器A中。如果有键按下,总有一根行线电平被拉至低电平,从而使行输入状态不全为“1”。 第二步是识别是哪一个键按下。具体过程如下:先将P1.2输出为0,即将列P1.2置成低电平。然后读入行线P1.0,P1.1电平状态,如果全为“1”,则按下的键不在此列;如果不全为“1”,则按下的键必在此列;而且是该列与“0”电平线相交的交点上的那个键。再将P1.3输出为0,即将列P1.3置成低电平。做法如上。 二、数码管动态显示原理 A.数码管原理:在单片机应用系统中,经常用到LED数码管作为显示输出设备。LED数码管虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,所以在应用中经常使用它。 LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。在单片机应用系统中通常使用的是8段式LED数码管显示器,他有公阳极和共阴极两种。如图1—1所示。其中共阳极8段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源,要使哪根数码管亮,则对应的阴极接低电平。而共阴极8段发光二极管的阴极端连接在一,阳极端分开控制,使用时公共端接地,要使哪根数码管亮,则对应的阳极接高电平即可。从a~g引脚输入不同的8位二进制编码,可显示不同的数字或字符。h为小数点位。 图1—1 在此我们着重介绍下本次实验中用到的共阴极结构的数码管。在共阴极结构中,各段发光二极管的阴极连在一起,将此公共点接地,某一段发光二极管的阴极为高电平时,该段发光。共阴极字段码:LED显示0~9某个字符时,则要求在a~dp送固定的字段码,如要使LED 显示“0”,则要求a、b、c、d、f各引脚为高电平,g和dp为低电平,字段码为“3fh” 。dp g f e d c b a对应为0 0 1 1 1 1 1 1 。共阴极字符0~9七段码如下: 字符:0 1 2 3 4 5 6 7 8 9

矩阵键盘的工作原理和扫描确认方式

9.3.1 矩阵键盘的工作原理和扫描确认方式 来源:《AVR单片机嵌入式系统原理与应用实践》M16华东师范大学电子系马潮 当键盘中按键数量较多时,为了减少对I/O 口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。矩阵式键盘接口见图9-7 所示,它由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU 通过检测行或列线上的电平变化可以确定哪个按键被按下。 图9-7 为一个 4 x 3 的行列结构,可以构成12 个键的键盘。如果使用 4 x 4 的行列结构,就能组成一个16 键的键盘。很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的I/O 口线。 矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。在矩阵键盘的软件接口程序中,常使用的按键识别方法有行扫描法和线反转法。这两种方法的基本思路是采用循环查循的方法,反复查询按键的状态,因此会大量占用MCU 的时间,所以较好的方式也是采用状态机的方法来设计,尽量减少键盘查询过程对MCU 的占用时间。 下面以图9-7 为例,介绍采用行扫描法对矩阵键盘进行判别的思路。图9-7 中,PD0、PD1、PD2 为3 根列线,作为键盘的输入口(工作于输入方式)。PD3、PD4、PD5、PD6 为4根行线,工作于输出方式,由MCU(扫描)控制其输出的电平值。行扫描法也称为逐行扫描查询法,其按键识别的过程如下。 √将全部行线PD3-PD6 置低电平输出,然后读PD0-PD2 三根输入列线中有无低电平出现。只要有低电平出现,则说明有键按下(实际编程时,还要考虑按键的消抖)。如读到的都是高电平,则表示无键按下。 √在确认有键按下后,需要进入确定具体哪一个键闭合的过程。其思路是:依

矩阵键盘电路设计

课程设计 题目矩阵键盘电路设计教学院计算机学院 专业计算机应用技术班级 姓名 指导教师 2010 年01 月12 日

前言.................................................................... 第一章需求分析......................................................... 功能描述......................................................... 功能分析......................................................... 第二章系统的原理及分析................................................. 用到的知识点的介绍,知识点使用的总体思路 第三章详细设计......................................................... 硬件设计 系统结构图,元器件的选择等 软件设计 所设计的软件关键模块的程序流程 第四章测试............................................................ 运行结果分析等 第五章总结............................................................. 参考文献................................................................ 附录 关键程序代码........................................................

三维矩阵键盘操作手册

矩阵控制键盘操作说明 键盘概述 控制器是智能电视监控系统中的控制键盘,也是个监控系统中人机对话的主要设备。可作为主控键盘,也可作为分控键盘使用。对整个监控系统中的每个单机进行控制。 键盘功能 1.中文/英文液晶屏显示 2.比例操纵杆(二维、三维可选)可全方位控制云台,三维比例操纵杆可控制摄像机的变倍 3.摄像机可控制光圈开光、聚集远近、变倍大小 4.室外云台的防护罩可除尘和除霜 5.控制矩阵的切换、序切、群组切换、菜单操作等 6.控制高速球的各种功能,如预置点参数、巡视组、看守卫设置、菜单操作等 7.对报警设备进行布/撤防及报警联动控制 8.控制各种协议的云台、解码器、辅助开头设置、自动扫描、 自动面扫及角度设定 9.在菜单中设置各项功能 10.键盘锁定可避免各种误操作,安全性高 11.内置蜂鸣器桌面上直接听到声音,可判断操作是否有效 技术参数 1.控制模式主控、分控 2.可接入分控数16个 3.可接入报警模块数239个 4.最大报警器地址1024个 5.最大可控制摄像机数量1024个 6.最大可控制监视器数量 64个 7.最大可控制解码器数量 1024个 8.电源 AC/DC9V(最低500mA的电源) 9.功率 5W 10.通讯协议Matri、PEL-D、PEL-P、VinPD 11.通讯波特率1200 Bit/S,2400 Bit/S,4800 Bit/S ,9600Bit/S, Start bit1,Data bit8,Stop bit1

接线盒的脚定义 控制线连接图 键盘按键说明 lris Focus Far 聚焦远 Focus Near 聚焦近 Zoom Tele 变倍大 Zoom Wide 变倍小 DVR 设备操作 DVR 功能键 Shift 用户登入 Login 退出键 Exit 报警记录查询 List 进入键盘主菜单 MENU 启动功能 F1/ON 关闭功能 F2/OFF 液晶显示区

EDA矩阵键盘

实验十五矩阵键盘接口电路的设计 一、实验目的 1、了解普通4×4键盘扫描的原理。 2、进一步加深七段码管显示过程的理解。 3、了解对输入/输出端口的定义方法。 一、实验原理 实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。作为一个嵌入系统设计人员,总是会关心产品成本。目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。 图15-1 简单键盘电路 通常在一个键盘中使用了一个瞬时接触开关,并且用如图15-1 所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图15-2 所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

图15-2 按键抖动 键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图15-3 所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。 图15-3 矩阵键盘 键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。 获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。 二、实验内容 本实验要求完成的任务是通过编程实现对4X4矩阵键盘按下键的键值的读取,并在数码管上完成一定功能(如移动等)的显示。按键盘的定义,按下“*”键则在数码管是显示“E”键值。按下“#”键在数码管上显示“F”键值。其它的键则按键盘上的标识进行显示。 在此实验中数码管与FPGA的连接电路和管脚连接在以前的实验中都做了详细说

矩阵键盘操作说明

矩阵键盘操作说明 一、系统复位 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必须在前面,确认删除图像。 四、报警设置 单布防 针对需要布防的防区一个一个的布防,防区布防后,根据监视器与防区触点权限表,自动将该防区分配到与之对应的监视器上。一旦报警,则与之相关的报警监视器就可以对这个报警防区进行响应。具体操作如下1、输入防区号 2、按组合键ARM-ON,ARM键必须先按,对该报警防区进行确认。 全布防。撤防即按ARM-OFF键 1、输入数字键0

单片机实验报告——矩阵键盘数码管显示

单片机实验报告 信息处理实验 实验二矩阵键盘 专业:电气工程及其自动化 指导老师:高哲 组员:明洪开张鸿伟张谦赵智奇 学号:152703117 \152703115\152703118\152703114室温:18 ℃日期:2017 年10 月25日

矩阵键盘 一、实验内容 1、编写程序,做到在键盘上每按一个键(0-F)用数码管将该建对应的名字显示出来。按其它键没有结果。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。 4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。 5、掌握利用Keil51软件对程序进行编译。 6、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 三、实验原理 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然

后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

矩阵键盘完整使用说明书

键盘控制器 (KEYBOARD CONTROLLER)使用说明书Operation Instruction Copyright 2003-2009. All Rights Reserved.

温馨提示: 感谢您使用本公司产品。 为了让您能够尽快熟练的操作本机,请您仔细阅读我们为您配备内容详细的使用说明书,从中您可以获取有关产品安全注意事项、产品介绍以及产品使用方法等方面的知识。当您阅读完说明书后,请将它妥善保存好,以备日后参考。 如果您在产品的使用过程中发现什么问题,请联系产品技术服务人员。谢谢您的合作! 申明: 在编写此说明书时我们非常小心谨慎,并认为此说明书中所提供的信息是正确可靠的,然而难免会有错误和疏漏之处,请您多加包涵并热切欢迎您的指正。但是我们将不对本手册可能出现的问题和疏漏负责。同时,由于我们无法控制用户对本手册可能造成的误解,因此,将不负责在使用本手册的过程中出现的事故或由此引起的损坏。对于因使用本产品所造成的任何损坏第三方的索赔不负责任。对于因软件的误操作、产品维修、或其它意外情况等引起资料的删改或丢失不负任何责任,也不对由此造成的其它间接损失负责。 本产品的发行和销售由原始购买者在许可协议条款下使用。 未经允许,任何单位和个人不得将本说明书全部或部分复制、再生或翻译成其它机器可读形式的电子媒介。 本说明书若有任何修改恕不另行通知。 因软件版本升级而造成的与本说明书不符,以软件为准。 注:本设备在出厂前已经过严格的质量测试,符合国家电磁辐射标准。

目录 第一部分键盘操作 (4) 1.1 设备概述 (4) 1.2 开机运行 (6) 1.3 键盘登录 (6) 1.4 键盘注销 (6) 第二部分控制监控主机 (6) 2.1 选择监视器 (6) 2.2 选择图像 (7) 2.3 向前、向后切换图像 (7) 2.4 图像保持 (7) 2.5 主机自由切换 (7) 2.6 主机程序切换 (8) 2.7 主机同步切换 (9) 2.8 主机群组切换 (10) 2.9 屏幕分割控制 (10) 2.10 屏幕拼接控制 (10) 2.11 保存主机当前设置 (11) 2.12 网络主机控制 (11) 2.13 监控主机菜单设置 (11) 第三部分控制摄像机 (12) 3.1 选择摄像机 (12) 3.2 控制摄像机方向 (12) 3.3 控制摄像机镜头 (13) 3.4 预置位操作 (13) 3.5 图像返回 (14) 3.6 自动巡视 (14) 3.7 轨迹扫描 (14) 3.8 区域扫描 (15) 3.9 云台自动扫描 (15) 3.10 操作辅助功能 (16) 3.11 智能摄像机菜单设置 (16) 第四部分控制报警主机 (16) 4.1 选择警点 (16) 4.2 防区警点设防、撤防 (16)

矩阵键盘设计实验报告

南京林业大学 实验报告 基于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、检查验证结果。

矩阵键盘

4×4矩阵键盘 1.原理说明 一般的4*4矩阵键盘(如图1)一般要8个I/O口(如图1),对于按键较多的硬件系统来说是很浪费的I/O口,本方案仅采用4个I/O和4个普通二极管就可以轻松实现4×4矩阵键盘,方案原理与普通4*4矩阵键盘类似,下面先分析普通矩阵键盘原理,再进一步改进为本方案。 原理如下B4口为低电平,A1~A4,B1~B3为高电平,单片机不停的扫描,假若有键按下如A1与B4交叉处按下则对应的A1被拉低为低电平,可以定义此键号为1,同理以此类推B3口为低电平,其余口为高电平,交叉处按键按下可定义其按键号,将按键号存储在寄存器中,可用查表方法并通过数码管显示按键号。 对于下图(图2)用4个I/O和4个普通二极管初始化PA0.0~PA0.3 均为高电平,在这里二极管作用是当IO口为低电平时可以导通,高电平时截止。程序流程图如下 图1

图2 2.程序介绍如下 void RCC_Configuration(void); { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_PP _ OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } GPIOSetBits() { GPIO_SetBits(GPIOA,GPIO_Pin_0);

单片机矩阵键盘毕业设计

单片机矩阵键盘毕业设计 摘要 矩阵式键盘乃是目前使用较为广泛的一种键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程,单片机将检测到的按键信号转换成数字量,显示于数码管显示器,系统灵活性强,易于操作,可靠性能好。单片机简介及主系统电路 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换444器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。单片机在工业控制领域广泛应用,它由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中,本次课程设计我们采用的是AT89C51型号的单片机。 AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,提高了系统的性价比。其最小系统电路图如下:

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验 一、实验内容 1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。按其它键退出。 2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。可定义“A”键为“+”键,“B”键为“=”键。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 三、实验说明 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。 四、接线方法 键盘连接成4×4的矩阵形式,占用单片机P1口的8根线,行信号是P1.0-1.3,列信号是P1.4-1.7。

单片机矩阵键盘

单片机 4*4 矩阵键盘 在单片机按键使用过程中,当键盘中按键数量较多时为了减少端口的占用通常将按键排列成矩阵形式如下图所示,在矩阵式键盘中每条水平线和垂直线在交叉处不直接连通而是通过一个按键加以连接,到底这样做是出意何种目的呢?大家看下面电路图,单片机的整一个8位端口可以构成4*4=16 个矩阵式按键,相比独立式按键接法多出了一倍,而且线数越多区别就越明显,假如再多加一条线就可以构成20个按键的键盘,但是独立式按键接法只能多出1个按键。由此可见,在需要的按键数量比较多时,采用矩阵法来连接键盘是非常合理的,矩阵式结构的键盘显然比独立式键盘复杂一些,单片机对其进行识别也要复杂一些。确定矩阵式键盘上任何一个键被按下通常采用行扫描法。行扫描法又称为逐行查询法它是一种最常用的多按键识别方法。因此,我们就以行扫描法为例介绍矩阵式键盘的工作原理。 首先,不断循环地给低四位独立的低电平,然后判断键盘中有无键按下。将低位中其中一列线(P1.0~P1.3中其中一列)置低电平然后检测行线的状态(高4位,即P1.4~P1.7,由于线与关系,只要与低电平列线接通,即跳变成低电平),只要有一行的电平为低就延时一段时间以消除抖动,然后再次判断,假如依然为低电平,则表示键盘中真的有键被按下而且闭合的键位于低电平的4个按键之中任其一,若所有行线均为高电平则表示键盘中无键按下。再其次,判断闭合键所在的具体位置。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是: 依次将列线置为低电平,即在置某一根列线为低电平时,其它列线为高电平。同时再逐行检测各行线的电平状态;若某行为低,则该行线与置为低电平的列线交叉处的按键就是闭合的按键。下面图5-5是4*4矩阵式按键接法的软件算法操作流程。 图5-4(4*4矩阵式按键的接法) 下面程序按照上述算法流程去编写的,其电路如图5-6,只是在图5-5的基础上多加了P0端口的8只LED灯。从键盘中检测到一个键值,然后将这个值写到LED数码管上显示。

单片机课程设计4X4矩阵键盘显示

长沙学院 《单片机原理及应用》 课程设计说明书 题目液晶显示4*4矩阵键盘按键号 程序设计 系(部)电子与通信工程系 专业(班级)电气1班 姓名龙程 学号09 指导教师刘辉、谢明华、王新辉、马凌 云 起止日期— 长沙学院课程设计鉴定表

《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉

目录 前言 .......................................................................................................................................... 错误!未定义书签。 一、课程设计目的 .................................................................................................................... 错误!未定义书签。 二、设计内容及原理 ................................................................................................................ 错误!未定义书签。 单片机控制系统原理 ...................................................................................................... 错误!未定义书签。 阵键盘识别显示系统概述 ................................................................................................ 错误!未定义书签。 键盘电路 ............................................................................................................................ 错误!未定义书签。 12864显示器 ................................................................................................................... 错误!未定义书签。 整体电路图 ........................................................................................................................ 错误!未定义书签。 仿真结果 ............................................................................................................................ 错误!未定义书签。 三、实验心得与体会 ................................................................................................................ 错误!未定义书签。 四、实验程序 ............................................................................................................................ 错误!未定义书签。参考文献 .................................................................................................................................... 错误!未定义书签。

4X4矩阵式键盘输入程序

4*4键盘程序 readkeyboard: begin: acall key_on jnz delay ajmp readkeyboard delay:acall delay10ms acall key_on jnz key_num ajmp begin key_num:acall key_p anl a,#0FFh jz begin acall key_ccode push a key_off:acall key_on jnz key_off pop a ret key_on: mov a,#00h orl a,#0fh mov p1,a mov a,p1 orl a,#0f0h cpl a ret key_p: mov r7,#0efh l_loop:mov a,r7 mov p1,a mov a,p1 orl a,#0f0h mov r6,a cpl a jz next ajmp key_c next: mov a,r7 jnb acc.7,error rl a mov r7,a ajmp l_loop error:mov a,#00h ret key_c:mov r2,#00h mov r3,#00h mov a,r6 mov r5,#04h again1:jnb acc.0,out1 rr a inc r2 djnz r5, again1 out1: inc r2 mov a,r7 mov r5,#04h again2:jnb acc.4,out2 rr a inc r3 djnz r5,again2 out2: inc r3 mov a, r2 swap a add a,r3 ret key_ccode:push a swap a anl a,#0fh dec a rl a ;行号乘 4 rl a mov r7,a pop a anl a,#0fh dec a add a,r7 ret delay10ms: anl tmod,#0f0h orl tmod,#01h mov th0,#0d8h mov tl0,#0f0h setb tr0 wait:jbc tf0,over ajmp wait clr tr0 over:ret 单片机键盘设计 (二)从电路或软件的角度应解决的问题 软件消抖:如果按键较多,硬件消抖将无法胜任,常采用软件消抖。通常采用软件延时的方法:在第一次检测到有键按下时,执行一段延时10ms的子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。(这种消除抖动影响的软件措施是切实可行的。) 2.采取串键保护措施。串键:是指同时有一个以上的键按下,串键会引起CPU错误响应。 通常采取的策略:单键按下有效,多键同时按下无效。 3.处理连击。连击:是一次按键产生多次击键的效果。要有对按键释放的处理,为了消除连击,使得一次按键只产生一次键功能的执行(不管一次按键持续的时间多长,仅采样一个数据)。否则的话,键功能程序的执行次数将是不可预知,由按键时间决定。连击是可以利用的。连击对于用计数法设计的多功能键特别有效。 三、键盘工作方式 单片及应用系统中,键盘扫描只是CPU的工作内容之一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中CPU任务的份量,来确定键盘的工作方式。 键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间。 键盘的工作方式有:查询方式(编程扫描,定时扫描方式)、中断扫描方式。

相关主题