4×5矩阵键盘驱动程序

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条行线全为高电平,为读行线状态做准备,没有按键时这种状态不会被改变。当键盘上的某个按键闭合时,则该键所对应的行线和列线被短路。例如:6号键被按下时列线L2与行线R1被短路,此时行线R1电平被列线L2拉低,由原来的高电平变为低电平而其它行线电平依然不变,为低电平。此时单片机可读得行线状态进而判断按键所在行并记录下行号。之后使得4条列线全为高电平,5条行线全为低电平,为读列线状态做准备。同理6号键被按下时列线L2与行线R1被短路,此时列线L2电平被行线R1拉低,由原来的高电平变为低电平而其它行线电平依然不变,为低电平。此时单片机可读得列线状态进而判断按键所在列并记录下列号。然后按一定的按键编码规则可计算出6号键的键值。

2)键盘扫描方式

键盘扫描方式一般有三种:循环扫描方式,定时扫描方式,外部中断扫描方式。循环扫描方式需要不停地扫描键盘,影响其它功能执行工作效率低。定时扫描方式是利用单片机内部的定时器,产生一个适当时间的定时中断,单片机响应中断时对键盘进行扫描取键值过程,但是这种扫描方式不管键盘上是不是有键闭合单片机总是定时地扫描工作效率还是不高。外部中断扫描方式是只在键盘上有

键闭合时才产生一个外部中断进入按键处理程序,这种方式工作效率明显提高。本系统中矩阵键盘扫描采用外部中断扫描方式。列线的五个电平信号经过或后接于外部中断信号输入口P3.3,当有任意一个按键按下时或门输出为低发生外部中断,进入按键处理程序。采用外部中断扫描方式的4×5矩阵键盘与单片机接口电路如图2-12所示。

图2-12 外部中断扫描方式的4×5矩阵键盘与单片机接口电路

二、驱动程序分析

4×5矩阵键盘采用外部中断扫描方式,有键按下作为一个中断源。当键盘上有任何一个按键按下时将触发外部中断1(/INT1),主机转入中断处理程序(矩阵键盘驱动函数)扫描键盘识别被按下的键。

4×5矩阵键盘驱动函数代码如下:

uchar key;

void int1() interrupt 2

{

uchar r,l,temp;

EA=0;//禁止所有中断

P1=0xf0;//拉高行线

P3_2=1;

temp=P1&0xf0;

temp>>=4;//取高四位

temp=~temp;

temp&=0x0f;

if(P3_2==0)

{

keydelay(1);//软件防抖动

if(P3_2==0)

temp=16;

}

if(temp!=0)

{

keydelay(1);

if(temp!=0)

switch(temp)//识别按下的按键的行号

{

case 1: l=0;break;

case 2: l=1;break;

case 4: l=2;break;

case 8: l=3;break;

case 16:l=4;break;

}

P1=0x0f;

P3_2=0;//行线全拉低

temp=P1&0x0f;

temp=~temp;

temp&=0x0f;//取低四位

if(temp!=0)

{

keydelay(1);

if(temp!=0)

switch(temp)//识别识别按下的按键的列号

{

case 1: r=0;break;

case 2: r=1;break;

case 4: r=2;break;

case 8: r=3;break;

}

key=4*l+r;//取键值

}

P1=0xf0;

P3_2=1;//拉高所有行线,准备键盘下次扫描

EA=1;//开放中断

}

}

值得注意的是应在系统上电初始化中将所有的行线拉高,这样才能在第一次按键时才能使得有键按下成为一个中断源。4×5矩阵键盘驱动程序各函数包含于头文件keyboard2.h中,在主函数中加入宏定义#include"keyboard2.h"。

数据结构实验五矩阵的压缩存储与运算学习资料

数据结构实验五矩阵的压缩存储与运算

第五章矩阵的压缩存储与运算 【实验目的】 1. 熟练掌握稀疏矩阵的两种存储结构(三元组表和十字链表)的实现; 2. 掌握稀疏矩阵的加法、转置、乘法等基本运算; 3. 加深对线性表的顺序存储和链式结构的理解。 第一节知识准备 矩阵是由两个关系(行关系和列关系)组成的二维数组,因此对每一个关系上都可以用线性表进行处理;考虑到两个关系的先后,在存储上就有按行优先和按列优先两种存储方式,所谓按行优先,是指将矩阵的每一行看成一个元素进行存储;所谓按列优先,是指将矩阵的每一列看成一个元素进行存储;这是矩阵在计算机中用一个连续存储区域存放的一般情形,对特殊矩阵还有特殊的存储方式。 一、特殊矩阵的压缩存储 1. 对称矩阵和上、下三角阵 若n阶矩阵A中的元素满足= (0≤i,j≤n-1 )则称为n阶对称矩阵。对n阶对称矩阵,我们只需要存储下三角元素就可以了。事实上对上三角矩阵(下三角部分为零)和下三角矩阵(上三角部分为零),都可以用一维数组ma[0.. ]来存储A的下三角元素(对上三角矩阵做转置存储),称ma为矩阵A的压缩存储结构,现在我们来分析以下,A和ma之间的元素对应放置关系。 问题已经转化为:已知二维矩阵A[i,j],如图5-1, 我们将A用一个一维数组ma[k]来存储,它们之间存在着如图5-2所示的一一对应关系。 任意一组下标(i,j)都可在ma中的位置k中找到元素m[k]= ;这里: k=i(i+1)/2+j (i≥j) 图5-1 下三角矩阵 a00 a10 a11 a20 … an-1,0 … an-1,n-1

k= 0 1 2 3 …n(n- 1)/2 …n(n+1)/2-1 图5-2下三角矩阵的压缩存储 反之,对所有的k=0,1,2,…,n(n+1)/2-1,都能确定ma[k]中的元素在矩阵A中的位置(i,j)。这里,i=d-1,(d是使sum= > k的最小整数),j= 。 2. 三对角矩阵 在三对角矩阵中,所有的非零元素集中在以主对角线为中心的带内状区域中,除了主对角线上和直接在对角线上、下方对角线上的元素之外,所有其它的元素皆为零,见图5-3。 图5-3 三对角矩阵A 与下三角矩阵的存储一样,我们也可以用一个一维数组ma[0..3n-2]来存放三对角矩阵A,其对应关系见图5-4。 a00 a01 a10 a11 a12 … an-1,n-2 an-1,n-1 k= 0 1 2 3 4 … 3n-3 3n-2 图5-4下三角矩阵的压缩存储 A中的一对下标(i,j)与ma中的下标k之间有如下的关系: 公式中采用了C语言的符号,int()表示取整,‘%’表示求余。

4乘4矩阵键盘输入数码管显示四位数

综合课程设计三相步进电机控制器电路的设计 学生姓名__________

指导教师_________ 课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1?谢自美?电子线路设计?实验?测试.[M]武汉:华中理工大学出版社,2000 年 2. 阎石. 数字电子技术基础. [M] 北京:高等教育出版社,2006年 3. 童诗白、华成英.模拟电子技术基础. [M] 北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M] 北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M] 北京:人民 邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

一、概述 本次毕设的题目是:三相步进电机控制电路的设计。本次毕设使用80C51单片机作为主控芯片,利用ULN2003A集成电路作为三相步进电机的驱动电路,采用单极性驱动方式,使三相步进电机能在(1)三相单三拍,(2)三相双三拍, (3)三相六拍三种工作方式下正常工作;能实现的功能有:启动/停止控制、方向控制;速度控制;用LED数码管显示工作方式。键盘输入工作频率。本次课程设计采用80C51单片机作为主控芯片,程序采用C语言来编写,驱动电路采用ULN2003A集成电路,显示采用 7SEG-MPX4-CC卩四位共阴数码管,P0接段码,并用8只1K欧左右电阻上拉。P2的4位10 口接位选码。正转,数码管显示1。反转,数码管显示2.不转,数码管显示0.采用Proteus软件进行仿真。在Keil uVsuon3编程环境下编程和编译生成HEX文件,导入到 80C51单片机,实现对各个模块的控制,实现我们所需要的功能。 本次课程是对毕业设计的基础设计,即实现4x4键盘输入,数码管显示输入数字的设计。 二、方案论证 1步进电机驱动方案选择 方案1 :使用功率三极管等电子器件搭建成功率驱动电路来驱动电机的运行。这种方案的驱动电路的优点是使用电子器件联接,电路比较简单,但容易受 干扰,信号不够稳定,缺点是器件较大而不便电路的集成,使用时很不方便,联接时容易出错误。 方案2:使用专门的电机驱动芯片ULN2003A来驱动电机运行。驱动芯片的优点是便于电路的集成,且驱动电路简单,驱动信号很稳定,不易受外界环境的干扰,因而设计的三相步进电机控制系统性能更好。 通过对两种方案的比较,我选择方案2使用ULN2003A S机驱动芯片来作为驱动。 2数码管显示方案选择 方案1:把所需要显示的数据通过专用的七段显示译码器(例如7448)的转换输出给LED显示屏。优点是输出比较简单,可以简化程序,但增加了芯片的费用,电路也比较复杂。 方案2:通过程序把所要的数据转化为七段显示的数据,直接通过单片机接 口来显示,其优点是简化了电路,但增加了软件编写的负担。 通过对两种方案进行比较,我选择通过软件编写来输出显示信号,即单片机直接和显示器相连。 3控制状态的读取 方案1:把按键接到单片机的中断口,若有按键按下,单片机接收到中断信 号,再通过软件编写的中断程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。

矩阵键盘设计实验报告

南京林业大学 实验报告 基于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、检查验证结果。 六、实验具体内容 使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。 1、电路图

数学实验5矩阵运算和解线性方程组

实验5 矩阵运算和解线性方程组一、实验题目 用Mathematica软件进行矩阵运算和解线性方程组。 二、预期目标 利用Mathematica进行: 1. 矩阵运算. 2. 矩阵的行列式与逆. 3. 矩阵的秩. 4. 线性方程组求解. 三、常用命令 方阵A的行列式: 给出方阵A的逆矩阵: 矩阵A的转置矩阵: 用初等行变换将矩阵A化成的行最简阶梯形矩阵: 将矩阵A在工作区中以矩阵格式输出: 求矩阵方程XA B,AX B ==的解: 求线性方程组b AX=的解: 求代数方程的解: 四、练习内容 1.计算: (1) 1 2 3 4 2 1 4 10 1 0 2 1 10 1 2 0 2 1 1 2 50 2 3 2???? ? ?-+- ? ? ? ?--???? 命令:

结果: (2) 1 0 5 1 0 3 1 2 10 2 0 1 5 0 3 1 0 1 0 1 0 2 0 3 0 ?? - ?? ? - ?? ? ? ? ? ? ?? ? ??? ?? 命令: 结果: 2.求矩阵 1 2 0 0 1 1 1 2 3 ?? ? ? ? - ?? 的秩。 命令: 结果: 3.判断下列矩阵是否可逆,如可逆,求其逆矩阵。 (1) 2 2 1 1 2 4 5 8 2 -?? ? - ? ??? 命令: 结果: (2) 1 2 3 4 2 3 1 2 1 1 1 1 1 0 2 6?? ? ? ? - ? --??命令: 结果:

(3) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1?? ? -- ? ?-- ?-- ??命令: 结果: 4.设 1 1 1 1 1 3 2 1 0 4 3 2 1 1 1 1 2 5 X - ???? ? ? = ? ? ? ? ???? ,求X。 命令: 结果: 5.设 1 0 21 0 1 31 1 1 11 X ???? ? ? -= ? ? ? ? ???? ,求X。命令: 结果: 6.解线性方程组 1234 1234 1234 1234 224 4326 833412 33226 x x x x x x x x x x x x x x x x +-+= ? ?+-+= ? ? +-+= ? ?+--= ? 。 命令:结果:

监控矩阵键盘说明书

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

4×4矩阵式键盘的课程设计

“电子创新设计与实践”课程期中 课题设计报告 姓名:张思源,学:20102121026,年级:2010,专业:电信

报告内容 设计一个4*4矩阵键盘,并编写相关程序 摘要 1.4×4矩阵式键盘程序识别原理。 2.4×4矩阵式键盘按键的设计方法。 报告正文: 一、设计原理 (1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。 (2)键盘中对应按键的序号排列如图14.1所示。 二、参考电路

图14.2 4×4矩阵式键盘识别电路原理图 图14.1 4×4键盘0-F显示

图14.3 4×4矩阵式键盘识别程序流程图 三、电路硬件说明 (1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。 (2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。 四、程序设计内容

(1)4×4矩阵键盘识别处理。 (2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 五、程序流程图(如图14.3所示) 六、汇编源程序 ;;;;;;;;;;定义单元;;;;;;;;;; COUNT EQU 30H ;;;;;;;;;;入口地址;;;;;;;;;; ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI

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

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 三根输入列线中有无低电平出现。只要有低电平出现,则说明有键按下(实际编程时,还要考虑按键的消抖)。如读到的都是高电平,则表示无键按下。 √在确认有键按下后,需要进入确定具体哪一个键闭合的过程。其思路是:依

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的子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。(这种消除抖动影响的软件措施是切实可行的。)

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

单片机实验报告 信息处理实验 实验二矩阵键盘 专业:电气工程及其自动化 指导老师:高哲 组员:明洪开张鸿伟张谦赵智奇 学号: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个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

单片机4x4矩阵式键盘的设计与仿真

课程设计报告 (单片机原理和应用) 题目名称 4x4矩阵式键盘 专业班级 学生姓名 学号 指导教师 4x4矩阵式键盘的设计与仿真

1、设计原理: 矩阵式键盘工作原理 矩阵式键盘使用于按键数量较多的场合,它由行线与列线组成,按键位于行、列的交叉点上,行、列线分别列接到按键开关的两端。行线通过上拉电阻接到+5V上。无键按下时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平一样为高电平。这是识别矩阵键盘按键是否被按下的关键所在。一个4x4的行列可以构成一个16按键的键盘。 本次以扫描法来识别按键。在扫描法中分两步处理按键,首先是判断有无键按下,让所有的列线置高电平,检查各行线电平是否有变化,如行线有一个为高,则有键按下。当判断有键按下时,使列线依次变低,其余各列为高电平,读行线,进而判断出具体哪个键被按下。 下表为7段共阴极段码表: 显示字符共阴极段码显示字符共阴极段码 “0”3FH“8”7FH “1”06H“9”6FH “2”5BH“A”77H “3”4FH“b”7CH “4”66H“C”39H “5”6DH“d”5EH “6”7DH“E”79H “7”07H“F”71H “灭“00H 实验环境 Keil uVision3 proteus 7 功能设计描述 由4x4组成16个按钮矩阵式键盘 按键成功会在7段LED显示该按键的键号 主要知识点

Keil uVision3的使用及调试 proteus 7的使用及调试 键盘接口、LED 显示接口、模拟电路的相关知识2、实现及编程 电路原理图

程序内容 4x4行列式键盘识别 7段数码管输出 汇编源程序 LINE EQU 30H ROW EQU 31H VAL EQU 32H ORG 00H START: MOV DPTR,#TABLE ;段码表首地址 MOV P2,#00H ;数码管显示初始化LSCAN: MOV P3,#0F0H ;电平,行线置低电平 L1: JNB ,L2 ;逐行扫描 LCALL DELAY50ms ;调用延时,消除抖动 JNB ,L2 MOV LINE,#00H ;存行号 LJMP RSCAN

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

实验2 矩阵及其运算

实验二 矩阵及其运算 一、实验目的 掌握基本的矩阵运算及常用的函数 二、实验内容 1. 变量、数组、向量等对象的生成方法; 2. 矩阵的创建方法; 3. 矩阵运算规则; 4. 特殊矩阵的创建与运算处理。 5. 常用函数的使用 三、实验步骤 1.已知m1=????? ???????11514412679810115133216 执行以下命令m1( 2 , 3 ),m1( 11 ),m1( : , 3 ),m1( 2 : 3 , 1 : 3 ), m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) 2. 已知: ??????????-=76538773443412A ???? ??????--=731203321B 求下列表达式的值: (1) B A K *611+=和I B A K +-=12(其中I 为单位矩阵) (2) B A K *21=和B A K *.22= (3) 331^A K =和3.32^A K = (4) B A K /41=和A B K \42= (5) ],[51B A K =和]2:);],3,1([[52^B A K =

3. 已知????? ???????----=1323151122231592127A (1)求矩阵A 的秩 (2)求矩阵A 的行列式 (3)求矩阵A 的逆 (4)求矩阵A 的特征值及特征向量 4. 求六阶单位矩阵的秩 5. 建立一个4*4的魔方矩阵,然后删除该矩阵的第二行; 6. 建立一个5*5的均匀分布的随机矩阵,取出矩阵的前3行构成矩阵B ,前两列构成矩阵C ,右下角43?子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。 7. 利用diag 等函数产生下列矩阵。 20 4a 05 0708????=?????? 008b 075230????=-?????? 8. 将第3题中矩阵A 对角线的元素加30 9. 利用randn 函数产生均值为0,方差为1的6×8正态分布随机矩阵C ,然后统计C 中大于-0.3,小于0.3的元素个数t 。 10. 将第3题中A 矩阵的所有大于2的元素全部改为0,并显示修改后的矩阵 四、思考题 1. 以下变量名是否合法?为什么? (1)x2 (2)3col (3)_row (4)for 2. 当A=[34, NaN, Inf, -Inf, -pi, eps, 0]时,分析下列函数的执行结果:all(A),any(A),isnan(A),isinf(A),isfinite(A)。

三维矩阵键盘操作手册

矩阵控制键盘操作说明 键盘概述 控制器是智能电视监控系统中的控制键盘,也是个监控系统中人机对话的主要设备。可作为主控键盘,也可作为分控键盘使用。对整个监控系统中的每个单机进行控制。 键盘功能 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 液晶显示区

4乘4矩阵键盘总结

9

39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 // | // | // P X.0 ----------|------|-----|-----| // //************************************************************ // 扫描方法二: 06.8.15 添加 4X4矩阵键盘线翻转识别法函数 // 硬件连接 : // | | | | // / | / | / | / | // P X.7 -------/--|---/--|--/--|--/--| 每个按键对应的识别码是:0x77,0x7b,0x7d,0x7e // | | | | // / | / | / | / | // P X.6 -------/--|---/--|--/--|--/--| 0xb7,0xbb,0xbd,0xbe // | | | | // / | / | / | / | // P X.5 -------/--|---/--|--/--|--/--| 0xd7,0xdb,0xdd,0xde // | | | | // / | / | / | / | // P X.4 -------/--|---/--|--/--|--/--| 0xe7,0xeb,0xed,0xee // | | | | // | | | | // P X.3 ----------| | | | // | | | // | | | // P X.2 ----------|------| | | // | | // | | // P X.1 ----------|------|-----| | // | // | // P X.0 ----------|------|-----|-----| // //***************************************************************** // 扫描方法三: 06.8.16 添加 4X4矩阵键盘行扫描识别法函数(只返回4个识别码) // 硬件连接 : // | | | |

数据结构实验五矩阵的压缩存储与运算

第五章矩阵的压缩存储与运算 【实验目的】 1. 熟练掌握稀疏矩阵的两种存储结构(三元组表和十字链表)的实现; 2. 掌握稀疏矩阵的加法、转置、乘法等基本运算; 3. 加深对线性表的顺序存储和链式结构的理解。 第一节知识准备 矩阵是由两个关系(行关系和列关系)组成的二维数组,因此对每一个关系上都可以用线性表进行处理;考虑到两个关系的先后,在存储上就有按行优先和按列优先两种存储方式,所谓按行优先,是指将矩阵的每一行看成一个元素进行存储;所谓按列优先,是指将矩阵的每一列看成一个元素进行存储;这是矩阵在计算机中用一个连续存储区域存放的一般情形,对特殊矩阵还有特殊的存储方式。 一、特殊矩阵的压缩存储 1. 对称矩阵和上、下三角阵 若n阶矩阵A中的元素满足 = (0≤i,j≤n-1 )则称为n阶对称矩阵。对n阶对称矩阵,我们只需要存储下三角元素就可以了。事实上对上三角矩阵(下三角部分为零)和下三角矩阵(上三角部分为零),都可以用一维数组ma[0.. ]来存储A的下三角元素(对上三角矩阵做转置存储),称ma为矩阵A的压缩存储结构,现在我们来分析以下,A和ma之间的元素对应放置关系。 问题已经转化为:已知二维矩阵A[i,j],如图5-1, 我们将A用一个一维数组ma[k]来存储,它们之间存在着如图5-2所示的一一对应关系。 任意一组下标(i,j)都可在ma中的位置k中找到元素m[k]= ;这里: k=i(i+1)/2+j (i≥j) 图5-1 下三角矩阵 a00 a10 a11 a20 … an-1,0 … an-1,n-1 k= 0 1 2 3 … n(n-1)/2 … n(n+1)/2-1 图5-2下三角矩阵的压缩存储 反之,对所有的k=0,1,2,…,n(n+1)/2-1,都能确定ma[k]中的元素在矩阵A中的位置(i,j)。这里,i=d-1,(d是使sum= > k的最小整数),j= 。 2. 三对角矩阵

矩阵键盘完整使用说明书

键盘控制器 (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)

微机原理课题设计实验报告材料之矩阵式键盘数字密码锁

微机系统与应用课程设计报告 班级: 学号: 姓名: 实验地点:E楼Ⅱ区311 实验时间:2013.3.4-3.9

矩阵式键盘数字密码锁设计 一 . 实验目的 1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连 接能力。 2.初步掌握键盘扫描,密码修改和计时报警程序的编写方法。 3.掌握通过矩阵式键盘扫描实现密码锁功能的设计思路和实现方法。二.实验内容 矩阵式键盘数字密码锁设计,根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。 数字密码锁操作键盘参考上面设定,也可以自行设计键盘。用户初始密码为“123456”,系统加电运行后,密码锁初始状态为常闭(红灯亮),用户可以选择开锁或修改密码: 如果选择开锁就按“Open”键,系统提示输入密码,输入用户密码+“#”键后,如果密码正确,就打开锁(绿灯亮),系统等待10秒,然后重新关闭密码锁,若密码错,提示重新输入,连续三次错误,提示警告词同时报警(黄灯闪),锁定键盘5秒,然后重新进入初始状态; 如果选择修改密码就按”Modify Secret”键,系统提示输入旧密码,输入旧密码+“#”键后,如果正确,系统提示输入新密码,输入新密码+“#”后,新密码起效,重新进入初始状态;如果旧密码错,不能修改密码,密码锁直接进入初始状态。 三.实验基本任务 1)具有开锁、修改用户密码等基本的密码锁功能。 2)对于超过3次密码密码错误,锁定键盘5秒,系统报警。5秒后解除锁定。 4)通过LCD字符液晶和LED指示灯(红,绿,黄)实时显示相关信息。 5)用户密码为6位数字,显示采用“*”号表示。 6)码锁键盘设计合理,功能完善,方便用户使用。 本次实验还做了附加的任务

矩阵键盘操作说明

矩阵键盘操作说明 一、系统复位 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

相关文档
最新文档