PIC16F877A矩阵键盘的用法

合集下载

矩阵键盘的使用流程解

矩阵键盘的使用流程解

矩阵键盘的使用流程解析1. 简介矩阵键盘是一种常见的输入设备,用于输入数字、字母和符号等文本信息。

它由一组按键组成,通常排列成矩形的形式。

本文将介绍使用矩阵键盘的详细流程和注意事项。

2. 连接矩阵键盘在开始使用矩阵键盘之前,首先需要将其连接到计算机或其他设备。

通常,矩阵键盘使用USB接口进行连接。

只需要将键盘的USB插头插入计算机的USB接口即可完成连接。

3. 检查键盘状态在使用矩阵键盘之前,我们需要确保键盘状态正常。

检查键盘是否接通电源,以及是否有任何损坏或松动的按键。

确保键盘的线缆与接口连接良好。

4. 输入文本信息使用矩阵键盘输入文本信息非常简单。

按下键盘上相应的按键即可输入相应的字符。

例如,按下数字键1会输入数字1,按下字母键A会输入字母A。

根据需要,可以使用矩阵键盘输入各种类型的字符,包括数字、字母、标点符号等。

通过按下不同的键盘按键,可以输入相应的字符。

5. 切换输入模式一些矩阵键盘还具有切换输入模式的功能,允许用户在不同的输入模式之间进行切换。

例如,可以切换为大写字母模式、小写字母模式或数字模式等。

切换输入模式通常通过特定的按键组合完成。

具体的切换方式可以参考键盘的说明文档或者在键盘上寻找切换模式的标识。

6. 使用快捷键矩阵键盘通常还配有一些快捷键,用于执行常见的操作或调整特定的功能。

这些快捷键可以提高工作效率和便利性。

快捷键的使用方法可以参考键盘的使用手册或者在互联网上搜索相关的资料。

通过学习和使用矩阵键盘的快捷键,可以更快速、高效地完成各种任务。

7. 注意事项在使用矩阵键盘时,需要注意以下几点:•键盘操作的力度应适中,避免过重或过轻按键,以免影响操作效果。

•避免在键盘上敲击过快,以免出现漏键或误输入的情况。

•定期清洁键盘,以保持按键的灵敏度和正常的使用寿命。

•在长时间使用键盘时,适当休息并放松手指、手腕和手臂,以防止过度疲劳和不适。

8. 小结本文介绍了矩阵键盘的使用流程,并提供了一些注意事项。

矩阵键盘

矩阵键盘

矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组.矩阵键盘原理图编辑本段1.矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。

行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

具体的识别及编程方法如下所述。

矩阵键盘编辑本段2、矩阵式键盘的按键识别方法<1>确定矩阵式键盘上何键被按下介绍一种“行扫描法”。

行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。

1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

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

2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

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

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

下面给出一个具体的例子:图仍如上所示。

键盘矩阵的按键识别方法

键盘矩阵的按键识别方法

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,在矩阵键盘中每条水平线和垂直线在交叉处不直接相连,而是通过一个按键相连接,这样在由N条水平线和M条垂直线最多可以有N *M 个按键,大大的减少了对于芯片I/O的占用。

键盘矩阵的按键识别方法图1 矩阵键盘的结构方法一行扫描法1、判断键盘中有无键按下将全部行线P1.4-P1.7置低电平,当然P1.0-P1.3为高电平(或许芯片内部已经将这些引脚它上拉),然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

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

2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

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

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

方法二先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。

再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。

将两次读取结果组合起来就可以得到当前按键的特征编码。

在I.MX27中keypad模块的实现Keypad port 相关引脚说明:在keypad模块中总共有16个引脚(8个行引脚 8个列引脚)KP_COL[7:0] 其中[5:0] 作为键盘模块的列引脚如果未使用也可以做为通常的GPIO口使用[7:6]两引脚复用可以作为键盘模块的列引脚 7脚还可以用做串口2的UART2_CTS 引脚6脚还可以当做串口2 的UART2_TXD脚使用 6脚有时还做为芯片内部的测试引脚KP_ROW[5:0] 其中[5:0] 作为键盘模块的行引脚如果未使用也可以做为通常的GPIO口使用[7:6]两引脚复用可以作为键盘模块的行引脚 7脚还可以用做串口2的UART2_RTS 引脚6脚还可以当做串口2 的UART2_RXD脚使用keypad port 相关的寄存器KPCR 键盘控制寄存器当列引脚作为输出时有凉宫输出方式1)Open-Drain Output (漏极开路输出)2) Totem-Pole-Output(图腾柱式输出)KPSR 键盘状态寄存器作用用于控制键盘的状态设定键盘的中断方式等kDDR 键盘数据流向寄存器作用用于控制键盘引脚作为输出功能还是作为输入功能使用当相应位被置为0代表输入当相应位被置为1时代表输出kPDR 键盘数据寄存器作用用于输出或者读出相应行列引脚上的数据,当相应引脚被置为输入/输出模式该寄存器的响应为代表输入/输出的值Keypad功能能模块的具体实现。

PIC单片机电子密码锁

PIC单片机电子密码锁

一、系统主要功能1)基本要求1.硬件设计要求:(1)CPU使用PIC16F877A。

(2)用4x4矩阵键盘作为操作信息输入。

(3)用LCD1602或六位数码管作为信息输出。

(建议使用LCD1602)(4)用蜂鸣器及发光二极管作为错误报警及状态显示。

2.系统功能要求:(1)输入密码功能。

输入密码时用“*”号或“-”显示。

在输入密码时,具有清除前一位密码功能(用CLR键)。

密码输入完毕,按(ENTER键)确认并生效。

(2)上锁功能。

在锁开状态下,通过(LOCK键)上锁。

(3)在锁合的状态下,通过密码开锁功能。

开锁时,直接在键盘上输入六位密码,按(ENTER键)确认,如果密码正确,转入锁开状态。

(4)在锁开状态下,修改密码功能。

在键盘上输入六位新的密码,按(ENTER键)确认,代替旧密码,并保存在RAM中。

(4)在开锁时,如果输入密码三次错误,产生声、光报警功能。

(5)0~9为密码键数字键,E为ENTER键,C为清除键CLR键,D作为上锁键LOCK键,如果用到其他键时,可自行定义。

2)进阶要求密码保存在PIC16F877A内部的EEPROM中,以防断电密码丢失。

(不使用外挂的EEPROM,如:AT24C02等)二、系统设计要求1)根据系统的功能和目标,画出系统功能框图。

2)根据系统功能框图用Proteus画出仿真电路图。

3)根据系统的功能要求,画出程序流程图。

4)根据程序流程图,用PIC C语言编写系统源程序。

5)进行编译、调试建立目标代码。

6)在Proteus环境下进行仿真。

三、设计报告报告内容包括系统设计思路、方案选择、器件选择及电路元器件明细表、系统功能框图、程序流程图、源程序清单、系统工作原理和设计心得等。

四、评分标准:1、完成《基本要求》者,得分80~89分;2、完成《基本要求》及《进阶要求》者,得分90~100分;五、设计时间安排十九周的星期一至星期五(2011年6月27日至7月1日)1)周一:布置任务,进行方案选择、器件选择。

pic16f877a编程实例

pic16f877a编程实例

pic16f877a编程实例pic16f877a是一款常用的单片机,被广泛应用于嵌入式系统中。

它具有多种功能和强大的性能,可以实现各种应用需求。

本文将以pic16f877a编程实例为主题,介绍其基本特性和常见应用。

pic16f877a是一款8位单片机,采用哈佛架构,具有高性能和低功耗的特点。

它内置了8KB的程序存储器,368字节的数据存储器,以及35个I/O引脚,可以满足大多数嵌入式系统的需求。

我们来看一个简单的实例,通过pic16f877a控制LED灯的开关。

```c#include <pic16f877a.h>void main() {TRISB0 = 0; // 设置RB0为输出引脚while(1) {RB0 = 1; // 将RB0引脚电平设置为高,LED灯亮__delay_ms(1000); // 延时1秒RB0 = 0; // 将RB0引脚电平设置为低,LED灯灭__delay_ms(1000); // 延时1秒}}```在上面的程序中,我们首先将RB0引脚设置为输出引脚,然后进入一个无限循环。

在循环中,我们将RB0引脚电平设置为高,LED灯亮起,然后延时1秒;然后将RB0引脚电平设置为低,LED灯熄灭,再次延时1秒。

通过不断重复这个过程,我们可以实现LED灯的闪烁效果。

除了控制LED灯,pic16f877a还可以用来控制其他外设,如蜂鸣器、液晶显示屏等。

下面是一个使用pic16f877a控制蜂鸣器的实例。

```c#include <pic16f877a.h>void main() {TRISB0 = 0; // 设置RB0为输出引脚while(1) {RB0 = 1; // 将RB0引脚电平设置为高,蜂鸣器鸣叫__delay_ms(1000); // 延时1秒RB0 = 0; // 将RB0引脚电平设置为低,蜂鸣器停止鸣叫__delay_ms(1000); // 延时1秒}}```在上面的程序中,我们同样将RB0引脚设置为输出引脚,并进入一个无限循环。

矩阵键盘使用合说明

矩阵键盘使用合说明

while((x&0x10)!=0)
//扫描信号逐行发出
{ P1=x;
if((P1&0xf0)!=0xf0) //满足本条件说明有某一列接受行的发送的零
{y=(P1&0xf0)|0x0f;
while ((P1&0xf0)!=0xf0); //当按下的键释放后才继续往下执行
return((~x)+(~y));
case 0x12: return(1); break;
case 0x14: return(2); break;
case 0x18: return(3); break;
case 0x21: return(4); break;
case 0x22: return(5); break;
case 0x24: return(6); break;
void show(uchar n)
{
SBUF=tab[n];
while(!TI); TI=0;
//TI 需要软件清零
}
/********************************键盘去抖延时*****************************/ void delay(void)
{ uchar i; for(i=250;i>0;i--);
case(8):for(i=0;i<6;i++)show(10);show(3);break;
case(9):for(i=0;i<6;i++)show(10);show(7);break;
case(10):for(i=0;i<6;i++)show(10);show(1);show(0);break;

矩阵键盘完整使用说明书

矩阵键盘完整使用说明书

键盘控制器之迟辟智美创作(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向前、向后切换图像………………………………………………72.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 4.3报警应答 (17)4.4警点状态查询...............................................................17 4.5报警联动开、关 (17)4.6报警联动时间...............................................................17第五部份控制数字录像机 (17)5.1选择数字录像机............................................................17 5.2图像监控 (18)5.3多画面监控 (18)5.4图像浏览 (18)5.5图像抓拍 (18)5.6图像播放、暂......18 5.7图像快退、快进............................................................18 5.8图像段首、段末............................................................18 5.9图像帧退、帧进............................................................18 5.10图像录制 (19)5.11图像停止 (19)5.12信息显示 (19)5.13录像机菜单设......19 5.14退出控制数字录像机......................................................19第六部份宏指令功能......................................................19 6.1宏指令在单级系统的应用 (19)6.2宏指令在多级系统的应用 (19)6.3宏指令把持 (20)第七部份键盘设置…………………………………………………21 7.1通讯速率设置………………………………………………………21 7.2控制协议设置...............................................................21 7.3把持员设置 (22)7.4惯例设置 (22)7.5语言选择 (24)7.6版本信息 (24)7.7退出 (24)第八部份键盘连接…………………………………………………25 8.1 键盘与智能摄像机、解码器连接示意图 (25)8.2键盘与监控主机连接示意图 (26)8.3键盘与报警主机连接示意图 (27)8.4键盘与数字录像机连接示意图 (28)平安事项 (29)主键盘控制器KEYBOARD CONTROLLER第一部份键盘把持1.1 设备概述:主键盘控制器是以把持控制安防监控主机、智能摄像机、数字录像机、报警主机为特色的把持设备.键盘控制器内置有SISO、PELCO、EREN、SAMSUNG、PANASONIC、KALATEL等多种智能摄像机控制协议,还内置有HIKVISION、DAHUA、DALI等数字录像机控制协议.键盘控制器采纳RS485通讯方式,有5种经常使用的波特率可供选择.主键盘控制器具有控制安防监控主机的视音频切换、编程切换、图像坚持、站点网络、菜单设置等功能.主键盘控制器具有控制智能摄像机的云台、镜头、预置位、巡视队列、轨迹扫描、菜单设置等功能.共同的一杆操控功能,使用矢量摇杆可灵活控制恒速和变速智能摄像机的云台、镜头举措.主键盘控制器具有控制数字录像机的多画面监控、录像、播放、快进、快退、信息显示、菜单设置等功能.主键盘控制器具有控制报警主机的设防、撤防、报警应答、报警联动等功能.主键盘控制器液晶屏显示站点号、监视器号、摄像机号、报警号及把持状态,把持方便直观.主键盘控制器采纳密码管理,用户必需输入正确密码才华进行键盘把持.共同的宏指令功能使得各种复杂把持变得简单易记,可将监控主机中的分歧把持组合起来,实现便捷的联动把持.键盘控制器面板图:按键功能说明:按键功能按键功能【Alarm】选择报警点【DVR】选择录像机【CAM】选择摄像机【MON】选择监视器【Setup】菜单编程【Ack】功能确认【On】启动功能【Off】关闭功能【Last】上一图像【Next】下一图像【Hold】图像坚持【Run】运行法式切换【Salvo】运行同步切换【Win】分割控制【Group】运行群组切换【Zone】分割控制【Time】时间间隔【Site】选择主机站点【Shot】调用预置点【Patrol】图像巡视【Aux】辅助功能【Scan】图像扫描【Return】图像返回【Fn】宏指令功能【Clear】数字清除【】登录/注消【】段首【】段未【】快退【】快进【】帧退【】帧进【】播放、暂停【】停止【】监控【】视窗【】多画面【】浏览【】抓拍【】录像【】返回【】信息【0】-【9】输入数字摇杆能控制云台方向和镜头光圈、聚焦、变倍;在设置功能中,能控制光标的移动,确认或取消选择项;摇杆顶部的按钮为多功能智能键,使用智能键可以相互转换矢量摇杆的功能.把持功能1功能2云台的上下左右举措光标的上下左右移动云台的四对角举措光标的上下左右翻页镜头的变倍ZOOM功选项的取消、确认功能能1.2 开机运行:用一个直流12V电源通过接口盒及8芯扁线供电,并将接口盒上的RS485与被控制设备通讯接口正确连接.接通电源时,键盘显示软件版本号(Ver)、键盘编号(KBID)、控制协议(P)、通讯速率(B)等信息.信息显示片刻后键盘进入正常的把持状态.在键盘正常的把持状态中输入数字时,稍长时间按住数字【 0 】键不放,可将数字清零.数字超越4位时会自动清零,并显示输入的新数字.1.3 键盘登录:接通电源,键盘显示信息片刻后,键盘显示“Password”提示输入把持员密码.输入密码(原始密码000000),按【】键登录.如果密码不正确,数据显示区提示重新输入密码;如果密码正确,在显示屏上会显示监控主机的系统时间或“Keyboard”.1.4 键盘注销:键盘把持完后,为防止他人非法把持,按【】键可将键盘置入把持呵护状态(注销用户),键盘显示屏状态显示区显示“Password”.注:用户应改变原始密码,以禁止未授权的人员把持键盘.第二部份控制监控主机注:要使键盘能够控制监控主机,必需先设置好键盘的控制协议、通讯速率及键盘编号.具体设置请拜会“键盘设置”中的相关部份.2.1选择监视器:从键盘把持视频选择,要有效地将键盘连接到监控主机,先选监视器号再调摄像机图像,才华实现对摄像机的把持.在键盘数字区输入所欲选择的有效监视器号;按键盘【MON】键,此时监视器显示区显示新输入的监视器号.例如:选择2号监视器.1.按数字【 2 】键;2.按【MON】键.此时监视器2即为现行受控监视器.2.2选择图像:在数字键区输入需要选择的图像号(在监控主机上对应该号应有视频信号输入).按键盘【CAM】键,此时该图像画面应切换至指定的监视器上,图像显示区显示新输入的图像号.例如:选择3号图像在1号监视器上显示.1.按数字【 1 】键,再按【MON】键;2.按数字【3】键,再按【CAM】键.此时1号监视器显示3号图像画面.2.3 向前、向后切换图像:按【Next】键,则图像酿成向前切换的方式运行(递增);按【Last】键,则图像酿成向后切换的方式运行(递加).2.4 图像坚持:按【Hold】键能停止切换的运行,使监视器的图像停留在正在切换的摄像机画面上.或输入摄像机号,再按【CAM】键,也可停止切换的运行,使监视器的图像停留在选定的摄像机画面.2.5 主机自由切换:自由切换是指经过适当的编程,可在监视器上自动地有序地显示一系列由编程指定的视频输入.每一个视频输入显示一段设定的停留时间,自由切换可循环反复进行,也可停留在某一视频输入上.2.5.1 监视器自由切换的编程过程如下:1. 选择想要设置为自由切换的监视器号;2. 输入想要每一摄像机停留的时间(2~240秒);3. 输入自由切换的起始摄像机号;4. 输入自由切换的结束摄像机号.例如:在3号监视器上切换1-6号摄像机,画面停留2秒:1. 按【 3 】键,再按【MON】键(选择监视器);2. 按【2 】键,再按【Time】键(输入自由切换停留时间);3. 按【1 】键,再按【On】键(起始摄像机号);4. 按【6 】键,再按【Off】键(结束摄像机号).2.5.2 设置自由切换队列中的摄像机的停留时间:按数字键输入自由切换停留时间(秒),再按【Time】键.2.5.3 运行自由切换:按数字【 0 】键,再按【Run】键.2.5.4 在已编程好的自由切换队列中增加一个摄像机:按以下步伐进行:1. 按数字键,输入要增加的摄像机号;2. 按【Ack】键;3. 按【On】键.2.5.5 在已编程好的自由切换队列中删除一个摄像机:按以下步伐进行:1. 按数字键,输入要删除的摄像机号;2. 按【Ack】键;3. 按【Off】键.2.5.6 停止自由切换的运行:按【Hold】键或输入摄像机号,再按【CAM】键,即可停止切换的运行.按数字【0 】键,再按【Run】键可继续运行自由切换.2.5.7 递进/递退单步切换或改变切换方向:按【Next】键,则切换方向酿成递增的方式运行;按【Last】键,则切换方向酿成递加的方式运行.2.6 主机法式切换:法式切换是指经过监控主机菜单的编程,可在监视器上自动地有序地显示一系列编程指定的视频输入,每一个视频输入显示一段设定的停留时间的切换队列.2.6.1设置法式切换队列:在监控主机菜单的SWITCH(切换设置)下的TOUR(法式切换)项设置.2.6.2 运行法式切换队列:按以下步伐进行:1. 按数字键,输入欲运行的法式切换的队列号(1~32);2. 按【Run】键.例如:在3号监视器上运行2号法式切换:1. 输入数字键【 3 】,按【MON】键确认;2. 输入数字键【2 】,按【Run】键运行.注:分歧系列监控主机,其法式切换队列号范围有的为:1~64.2.6.3 改变法式切换运行方向:按【Next】键,则切换方向酿成递增的方式运行;按【Last】键,则切换方向酿成递加的方式运行.2.6.4停止法式切换的运行:按【Hold】键或输入摄像机号,再按【CAM】键,即可停止切换的运行.2.7 主机同步切换同步切换队列是指将一组摄像机画面顺序地切换到一组连续的监视器上显示,可由监控主机菜单编程设置.2.7.1设置同步切换队列:在监控主机菜单的SWITCH(切换设置)下的SALVO(同步切换)项设置.2.7.2运行同步切换队列:按以下步伐进行:1. 按数字键,输入同步切换队列号(1~16);2. 按【Salvo】键,当同步切换队列的监视器数目超越最年夜监视器号时,过剩的摄像机画面将不被显示.注:分歧系列监控主机,其同步切换队列号范围有的为:1~32.2.8 主机群组切换:群组切换队列是将多组同步队列摄像机画面顺序地切换到一组监视器上显示,可由监控主机菜单编程设置.2.8.1设置群组切换队列:在监控主机菜单的SWITCH(切换设置)下的GROUP(群组切换)项设置.2.8.2运行群组切换队列:按以下步伐进行:1. 按数字键,输入群组切换队列号(1~8);2. 按【Group】键.注:分歧系列监控主机,其群组切换队列号范围有的为:1~16.2.8.3 停止群组切换的运行:按【Hold】键或按数字【 0 】键,再按【Group】键,即可停止群组切换的运行. 2.9 屏幕分割控制:在具有画面分割功能的监视器上把持屏幕分割.在一个监视器上默认屏幕最年夜分割块数量为16:水平方向数量为4,垂直方向数量为4.1. 选择监视器.把持:输入数字,按【Win】键确认分割监视器.2.选择启始监视窗(分割区左上角).把持:输入数字,按【On】键确认启始分割区.3.选择结束监视窗(分割区右下角).把持:输入数字,按【Off】键确认结束分割区.4.选择摄像机.把持:输入数字,按【CAM】键确认摄像机.2.10 屏幕拼接控制:在具有画面拼接功能的监视器上把持屏幕拼接.注意在“键盘设置”中的“屏幕拼接墙设置”相关部份进行设置.1.选择拼接区.把持:按【Zone】键确认设定拼接区.2.选择启始监视器(拼接区左上角).把持:输入数字,按【On】键确认启始拼接区.3.选择结束监视器(拼接区右下角).把持:输入数字,按【Off】键确认结束拼接区.4.选择摄像机.把持:输入数字,按【CAM】键确认摄像机.2.11 保管主机以后设置:对监控主机编程切换、设防、报警输出时间等的设置,如需保管让监控主机在下一次开机时能自动进入该切换状态,应对监控主机的设置进行保管.把持方法:按数字【9 】【8 】键,按【Aux】键,再按【On】键.2.12 网络主机控制:在一个监控系统中有多台监控主机,可组成一个监控网络.在网络中的任何副键盘控制器只能控制本地监控主机,而在网络中的任何主键盘控制器都可控制任何一台网络监控主机,也可通过设置主机权限菜单,限制主键盘控制器对网络监控主机的控制.控制步伐如下:1. 输入网络监控主机的编号(000暗示本地监控主机);2. 按【Site】键;3. 接下来的任何把持都是对所选择的监控主机进行.2.13 监控主机菜单设置:监控主机屏幕菜单可编程主机主要的功能参数,屏幕菜单可通过第1号监视器输出显示(有些监控主机,其屏幕菜单有的可通过第1~16号监视器输出显示).2.13.1访问菜单系统:选择要输出显示菜单的监视器号,按【MON】键确认.按住智能键不松开,再按【Setup】键进入监控主机菜单编程功能,键盘液晶屏状态显示区显示“Iso·Prog.”.2.13.2退出菜单系统:当菜单编程完成时,按【Setup】键能从监控主机菜单中退出到切换控制把持状态.2.13.3菜单编程把持说明:在每一个菜单中,按【On】键可进入其子菜单,按【Off】键可返回到上一级菜单,下列菜单功能键适用所有菜单.功能键盘把持功能键盘把持进入子菜单摇杆右旋或【On】键退出子菜单摇杆左旋或【Off】键数字清除【Clear】键编程数字【 0 】-【 9 】键编程光标上摇杆上编程上一页摇杆左上编程光标下摇杆下编程下一页摇杆右上编程光标左摇杆左编程左一页摇杆左下编程光标右摇杆右编程右一页摇杆右下注:在编程菜单中输入数据时,请先按【Clear】键或稍长时间按【0 】键清除原已存在的数据.第三部份控制摄像机注:要使键盘能够控制摄像机,必需先设置好键盘对应的的控制协议、通讯速率及键盘编号.具体设置请拜会“键盘设置”中的相关部份.3.1 选择摄像机:在数字键区输入需要选择的摄像机号,按键盘【CAM】键.例如:选择2号摄像机.1. 按数字【 2 】键;2. 按【CAM】键.3.2 控制摄像机方向:由键盘的矢量摇杆控制摄像机的方向.按以下步伐进行:1. 向图像要运动的方向,把持矢量摇杆,就可控制摄像机方向;2. 松开矢量摇杆,即停止对摄像机的方向把持.矢量摇杆偏离中心的水平正比于智能摄像机运动的速度,即矢量摇杆偏离中心位置角度越年夜,智能摄像机运动的速度越快.3.3 控制摄像机镜头:旋转矢量摇杆可控制摄像机镜头的变倍(ZOOM)功能,通过此功能可改变镜头的变焦倍数,从而获得广角(远离物体)或特写画面(接近物体).快速双击智能键,键盘液晶屏状态显示区显示“Lens”,矢量摇杆进入控制摄像机镜头的光圈(IRIS)、聚焦(FOCUS)状态.在“Lens”状态下,快速双击智能键,矢量摇杆退出控制光圈、聚焦的状态;或在10秒内如未控制光圈、聚焦功能,键盘矢量摇杆自动退出控制光圈、聚焦的状态.在“Lens”状态下,左右偏动矢量摇杆可控制摄像机镜头的光圈(IRIS)功能,通过此功能可改变镜头的进光量,从而获得适中的亮暗图像.在“Lens”状态下,上下推动矢量摇杆可控制摄像机镜头的聚焦(FOCUS)功能, 通过此功能可改变镜头的焦距,从而获得清晰的图像.松开矢量摇杆,即停止对摄像机的镜头把持.3.4 预置位把持:3 设置预置位:选择摄像机,调整好图像,输入自已界说的预置位编号,按【Shot】键,按住智能键不松,再按【On】键,最后松开智能键.调整好图像,进行下一个预置位设置.3 调用预置位:在数字区输入想要调看的预置图像号码,按【Shot】键,再按【Ack】键.如事先没设置该预置图像,监视器图像则无变动.3 清除预置位:选择摄像机,输入预置位编号,按【Shot】键,按住智能键不松,再按【Off】键,最后松开智能键.3.5 图像返回:选择摄像机,按【Return】键,能使摄像机从以后的图像返回到上一个图像.3.6 自动巡视:3 设置巡视队列:先设置好摄像机的预置位,才华在巡视队列中被使用.1. 在数字区输入巡视队列号码,按【Patrol】键,再按【On】键,开始设置巡视队列;2. 在数字区输入预置画面号码,按【Shot】键,在设置巡视队列加入第一个预置位;3. 在数字区输入预置画面号码,按【Shot】键,在设置巡视队列加入第二个预置位;4. 在数字区输入预置画面号码,按【Shot】键,在设置巡视队列加入最后一个预置位;5. 按【Off】键,设置巡视队列结束.注:有些智能摄像机无巡视队列功能,因此该项功能要视智能摄像机而定!3 调用巡视队列:在数字区输入想要运行的巡视队列号码,按【Patrol】键,再按【Ack】键.摄像机开始运行事先编制好的巡视队列图像.如事先没设置该巡视队列,图像则无变动.3 清除巡视队列:调要控制的摄像机,在数字区输入想要清除的巡视队列号码,按【Patrol】键,再按【Off】键.3.7 轨迹扫描:3 设置轨迹扫描:1. 按数字【 5 】键;2. 按数字键,输入轨迹扫描号码(1~3. 按【Patrol】键,再按【On】键,开始设置轨迹扫描;4. 把持矢量摇杆,向预期方向移动摄像机,或控制摄像机镜头的变倍功能,调节图像年夜小;5. 按【Off】键,设置轨迹扫描结束.3 调用轨迹扫描:1. 按数字【 5 】键;2. 按数字键,输入轨迹扫描号码(1~8);3. 按【Patrol】键,再按【Ack】键.摄像机开始运行事先编制好的轨迹扫描图像.如事先没设置该轨迹扫描,图像则无变动.3.8 区域扫描:3 设置区域扫描:1. 按数字【 8 】键;2. 按数字键,输入区域扫描号码(1~8);3. 按【Patrol】键,再按【On】键,确认设置区域扫描起始位置;4. 把持矢量摇杆,调节好区域扫描结束摄像机图像;5. 按【Off】键,确认设置区域扫描结束位置.3 调用区域扫描:1. 按数字【 8 】键;2. 按数字键,输入区域扫描号码(1~8);3. 按【Patrol】键,再按【Ack】键.摄像机开始运行事先编制好的区域扫描图像.如事先没设置该区域扫描,图像则无变动.3.9 云台自动扫描:开始自动扫描:选择摄像机,先按【Scan】键,再按【On】键;或按数字【 0 】键,再按【Aux】键,最后按【On】键.停止自动扫描:选择摄像机,先按【Scan】键,再按【Off】键;或按数字【0 】键,再按【Aux】键,最后按【Off】键.3.10 把持辅助功能:翻开辅助功能开关:选择要控制的摄像机,先按数字键输入辅助功能号,再按【Aux】键,最后按【On】键.关闭辅助功能开关:选择要控制的摄像机,先按数字键输入辅助功能号,再按【Aux】键,最后按【Off】键.解码器经常使用的辅助功能号及辅助功能:1通用辅助开关,2雨刷控制,3灯光控制,4温度控制.3.11 智能摄像机菜单设置:选择要设置的摄像机号,按【CAM】键确认.按住智能键不松开,再按【Setup】键进入智能摄像机的设置菜单,键盘液晶屏状态显示区显示“Cam·Prog.”;或按数字【0 】键,再按【Shot】键,最后按【Ack】键,2次相同把持能进入智能摄像机的设置菜单.在智能摄像机的菜单中:1. 把持键盘的矢量摇杆上、下、左、右移动菜单光标;2. 顺时针、逆时针旋转矢量摇杆可确认、取消选中的功能;3. 上、下把持矢量摇杆可输入菜双数据.第四部份控制报警主机4.1 选择警点:在数字键区输入需要选择的警点号,按键盘【Alarm】键.例如:选择3号警点.把持方法:1. 按数字【 3 】键;2. 按【Alarm】键.此时3号警点已处于受控状态,键盘液晶屏的警点区显示3号警点.4.2 防区警点设防、撤防:键盘可对监控主机内置的16个触点或报警主机的警点进行设防、撤防.警点设防:输入警点号,按【Alarm】键,按住智能键不松,再按【On】键,最后松开智能键.警点撤防:输入警点号,按【Alarm】键,按住智能键不松,再按【Off】键,最后松开智能键.4.3 报警应答:输入警点号,按【Alarm】键,再按【Ack】键.4.4 警点状态查询:在有监控主机的系统中,可进行警点状态查询.查询警点状态:输入数字【 9 】【 7 】键,按【Aux】键,按【On】键.关闭状态显示:输入数字【 9 】【 7 】键,按【Aux】键,按【Off】键.也可以直接通过监控主机的菜单中报警相关项查询警点状态.4.5 报警联动开、关:报警可以自动地切换视频输入到视频输出,并能控制报警联动.报警联动开:输入报警联动号,按【Alarm】键,然后按【Aux】键,再按【On】键.报警联动关:输入报警联动号,按【Alarm】键,然后按【Aux】键,再按【Off】键.4.6 报警联动时间:输入报警联动号,按【Alarm】键,按数字键输入联动时间(分钟),然后按【Time】键.第五部份控制数字录像机注:要使键盘能够控制数字录像机,必需先设置好键盘对应的的控制协议、通讯速率及键盘编号.具体设置请拜会“键盘设置”中的相关部份.5.1 选择数字录像机:按数字键输入数字录像机的编号,按【DVR】键.此时键盘液晶显示屏状态区显示“Shift DVR”,暗示键盘处在控制数字录像机状态.5.2 图像监控:按键盘【】键,能把持数字录像机从播放、录像状态下返回到正常的图像监控状态中.5.3 多画面监控:输入画面数量,按键盘【】键,能控制数字录像机屏幕按相应的画面格式显示.例如:数字录像机9画面显示.1. 按数字【 9 】键;2. 按【】键.5.4 图像浏览:按键盘【】键,能控制数字录像机屏幕图像切换显示,供把持员监控浏览.5.5 图像抓拍:按键盘【】键,能控制数字录像机抓拍下以后屏幕图像,供把持员记录监控情景.5.6 图像播放、暂停:按键盘【】键,能把持数字录像机播放已录制好的录像资料,在播放录像资料过程中按【】键能暂停播放,再按【】键能继续播放录像资料.5.7 图像快退、快进:按键盘【】键,能把持数字录像机快速向前播放;按键盘【】键,能把持数字录像机快速向后播放.5.8 图像段首、段末:按键盘【】键,能把持数字录像机移到录像资料的开始位置播放;按键盘【】键,能把持数字录像机结束以后的录像资料播放,并播放下一录像资料.5.9 图像帧退、帧进:按键盘【】键,能把持数字录像机按帧向前播放;按键盘【】键,能把持数字录像机按帧向后播放.5.10 图像录制:按键盘【】键,能把持数字录像机记录选中的摄像机图像.5.11 图像停止:按键盘【】键,能停止数字录像机的播放、录像把持.5.12信息显示:按键盘【】键,能显示或关闭数字录像机的屏幕提示信息.5.13 录像机菜单设置:按住智能键不松开,再按【Setup】键进入录像机的设置菜单,键盘液晶屏状态显示区显示。

矩阵键盘

矩阵键盘

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串行通信的编写方法。

矩阵键盘使用说明

矩阵键盘使用说明
1.8.5 清除预置位: 选择摄像机, 置锁开关“PROG”位置,输入预置位编号,按 SHOT
键,再按 OFF 键。最后置锁开关“OFF”位置。
1.8.6 设置巡视队列: 先设置好摄像机的预置位,才能在巡视队列中被使用。: 1. 在数字区输入巡视队列号码,按 PATRN 键,再按 ON 键,开始 设置巡视队列; 2.在数字区输入预置画面号码,按 SHOT 键,在设置巡视队列加入 第一个预置位; 3.在数字区输入预置画面号码,按 SHOT 键,在设置巡视队列加入 第二个预置位; …… 4.在数字区输入预置画面号码,按 SHOT 键,在设置巡视队列加入 最后一个预置位; 5.按 OFF 键,设置巡视队列结束; 注:有些智能高速球无巡视队列功能,因此该项功能要视智能高速 球而定!
- 2 / 17 -
系统键盘使用说明书
系统控制键盘
SYSTEM KEYBOARD
设备概述:
系统控制键盘是与矩阵切换系统配套使用的一种操作键盘。系统键 盘可调用所有的摄像机、编程监视器切换队列和控制解码器。液晶显示 屏能显示系统时间,监视器号、摄像机号、操作状态。系统键盘具有操 作保护功能。
DISPLAY
1.6 选择摄像机: 在数字键区输入需要调用的摄像机号 (对应该号应有视频信号输
入)。 按键盘 CAM 键。此时该摄像头画面应切换至指定的监视器上,摄
像机显示区显示新输入的摄像机号。 例如:调用 1 号摄像机在 2 号监视器上显示。
1.按 2 数字键; 2.按 MON 键; 3.按 1 数字键; 4.按 CAM 键。此时 2 号监视器显示 1 号摄像机画面。
- 5 / 17 -
系统键盘使用说明书
1.7.2 镜头控制: 在键盘右边有一组按键可控制摄像机的可变镜头,这些按键是: CLOSE/OPEN:用于镜头的光圈控制。通过这两个键可改变镜头的 进光量,从而获得适中的视频信号电平。 NEAR/ FAR :用于镜头的聚焦控制。通过这两个键可改变镜头的 焦距,从而获得清晰的图像。 WIDE / TELE :用于改变镜头的倍数,通过这两个键可改变镜头的 变焦倍数,从而获得广角或特写画面。 操作: 1.调要控制的摄像机至受控监视器。 2.按想要操作的镜头功能键,就可控制镜头。 3.放开按键,即停止镜头操作。

矩阵键盘完整使用说明书.docx

矩阵键盘完整使用说明书.docx

键盘控制器( KEYBOARD CONTROLLER )使用说明书Operation InstructionCopyright 2003-2009. All Rights Reserved.温馨提示:感谢您使用本公司产品。

为了让您能够尽快熟练的操作本机,请您仔细阅读我们为您配备内容详细的使用说明书,从中您可以获取有关产品安全注意事项、产品介绍以及产品使用方法等方面的知识。

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

如果您在产品的使用过程中发现什么问题,请联系产品技术服务人员。

谢谢您的合作!申明:在编写此说明书时我们非常小心谨慎,并认为此说明书中所提供的信息是正确可靠的,然而难免会有错误和疏漏之处,请您多加包涵并热切欢迎您的指正。

但是我们将不对本手册可能岀现的问题和疏漏负责。

同时,由于我们无法控制用户对本手册可能造成的误解,因此,将不负责在使用本手册的过程中岀现的事故或由此引起的损坏。

对于因使用本产品所造成的任何损坏第三方的索赔不负责任。

对于因软件的误操作、产品维修、或其它意外情况等引起资料的删改或丢失不负任何责任,也不对由此造成的其它间接损失负责。

本产品的发行和销售由原始购买者在许可协议条款下使用。

未经允许,任何单位和个人不得将本说明书全部或部分复制、再生或翻译成其它机器可读形式的电子媒介。

本说明书若有任何修改恕不另行通知。

因软件版本升级而造成的与本说明书不符,以软件为准。

注:本设备在岀厂前已经过严格的质量测试,符合国家电磁辐射标准。

第一部刀键盘操作,,,,,,,,,,,,,,,,,,,,J4 1.1设备概述,,,,,,,,,,,,,,,,,,,,,,,4 1.2开机运行X I Iz U I -J )))5 JJJJJJJJJJJJJJJJJJJ6 1.3乍键盘登^录,,,,,,,,,,,,,,,,,,,,,,,6 1.4键盘注销,,,,,,,,,,,,,,,,,,,,,,,6第二部分控制监控主机6 2.1选择监视器,,,,,,,,,,,,,,,,,,,,,,6 2.2选择图像,,,,,,,,,,,,,,,,,,,,,,,7 2.3向前、向后切换图像,,,,,,,,,,,,,,,,,,7 2.4图像保持,,,,,,,,,,,,,,,,,,,,,,,7 2.5主机自由切换,,,,,,,,,,,,,,,,,,,M7 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控制摄像机镜头,,,,,,,,,,,,,,,,,,M13 3.4预置位操作,,,,,,,,,,,,,,,,,,,,,,13 3.5图像返回,,,,,,,,,,,,,,,,,,,,,,,14 3.6自动巡^视,,,,,,,,,,,,,,,,,,,,,,,14 3.7轨迹扫描,,,,,,,,,,,,,,,,,,,,,,,14 3.8域扫扌田,,,,,,,,,,,,,,,,,,,,,,,15 3.9厶台自动扫描,,,,,,,,,,,,,,,,,,,,,15 3.10操作辅助功能,,,,,,,,,,,,,,,,,,,,,16 3.11智能摄像机菜单设置,,,,,,,,,,,,,,,,,,16第四部分控制报警主机164.1选择警占八、、164.2防区警点设防、撤防,,,,,,,,,,,,,,,,,,164.3报警应答-J 1×>- I==T Z—1- I_I ))))5 JJJJJJJJJJJJJJJJJJ17 4.4警点状态查询17 4.5报警联动开、关17 4.6报警联动时间17第五部分控制数字录像机17 5.1选择数字录像机17 5.2图像监控,,,,,,,,,,,,,,,,,,,,,,,18 5.3多画面监控,,,,,,,,,,,,,,,,,,,,,,18 5.4图像浏览,,,,,,,,,,,,,,,,,,,,,,,18 5.5图像抓拍,,,,,,,,,,,,,,,,,,,,,,,18 5.6图像播放、暂停18 5.7图像快退、快进18 5.8图像段首、段末18 5.9图像帧退、帧进18 5.10图像录制19 5.11图像停止,,,,,,,,,,,,,,,,,,,,,,,19 5.12彳口息显,,,,,,,,,,,,,,,,,,,,,,J19 5.13录像机菜单设置19 5.14退岀控制数字录像机,,,,,,,,,,,,,,,,M19第八部分宏指令功冃匕”””””””””19 6.1宏指令在单级系统的应用,,,,,,,,,,,,,,,,19 6.2宏指令在多级系统的应用,,,,,,,,,,,,,,,,196.3宏指令操作/∕~∖ J H y J/卜 I \ ))JJJJJJJJJJJJJJJJJJJJ 20第七部分键盘设置,,,,,,,,,,,,,,,,,,,21 7.1通讯速率设置,,,,,,,,,,,,,,,,,,,,,21 7.2控制协议设置,,,,,,,,,,,,,,,,,,,,,21 7.3操作员设置,,,,,,,,,,,,,,,,,,,,,,22 7.4吊规设置,,,,,,,,,,,,,,,,,,,,,,,22 7.5!口言选,,,,,,,,,,,,,,,,,,,,,,,24 7.6版本信口丿,,,,,,,,,,,,,,,,,,,,,,J24 7.7退岀∕*i<--1 ' I )5 JJJJJJJJJJJJJJJJJJJJJJJ24第八部分键盘连接,,,,,,,,,,,,,,,,,,,25 8.1键盘与智能摄像机、解码器连接示意图,,,,,,,,,,25 8.2键盘与监控主机连接示意图,,,,,,,,,,,,,,,26 8.3键盘与报警主机连接示意图,,,,,,,,,,,,,,,27 8.4键盘与数字录像机连接示意图,,,,,,,,,,,,,,28安全事项―I_*- √丿、)5 JJJJJJJJJJJJJJJJJJJJJJ29主键盘控制器KEYBoARD CoNTRoLLER第一部分键盘操作1.1设备概述:主键盘控制器是以操作控制安防监控主机、智能摄像机、数字录像机、报警主机为特色的操作设备。

PIC16F877A开发学习板用户手册

PIC16F877A开发学习板用户手册

KEY_LED 实验步骤: 短接跳线 J23 将 hex 文件下载到单片机中 实验现象:按下 GPIO 键,松开后,led 点亮;按下 INT 健,松开后,led 灭 KEY_ZTJ 10、 矩阵键盘实验 KEY_JZH 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:按下按键,数码管显示键值 11、 定时器/计数器 T0 实验 T0_DSQ 实验步骤: 短接跳线 J23 将 hex 文件下载到单片机中 实验现象:下载代码,运行程序,LED 闪烁 T0_JS_1 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚
断电后数据保持,上电后,从断电时的值开始加(写入 24C02 的数据为 1 递加到 99,LCD1602 从 24C02 中读数据之后显示)
AT24C02 实验步骤: 短接跳线 J18 上面两个引脚和 J22 上面两个引脚 将 hex 文件下载到单片机中 将 1602 液晶屏插入 1602 接口 如果此时没有显示则按复位键便可正常显示 实验现象:1602 第一行显示数值,数值从 1 加到 99, 断电后数据保持,上电后,从断电时的值开始加 17、 模数转换 AD 实验 AD_1
将 hex 文件下载到单片机中 实验现象:LED 灯依次点亮 2、 数码管实验 SMG 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:8 个数码管依次显示 0~7 SMG_JT 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:数码管静态显示一个数字 74HC595_SMG 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:8 位数码管显示 0-7 3、 蜂鸣器实验 BUZZER 实验步骤: 短接跳线 J6

矩阵式键盘控制数码管显示

矩阵式键盘控制数码管显示
完成实训报告十
7
谢谢观赏!
二、工作原理
当扫描开始时, 首先将P1.7列初始值设置为低电平, 即P
3
三、程序流程图 ——主程序
开始
初始化
按键查询
YES
A=FFH?
NO
调用消除抖动子程序转Leabharlann 功能处理程序AAAA 1234
结束
4
四、程序清单
独立式键盘控制灯移动程序.doc
5
五、实验板上测试
观察实验结果并记录: 按下不同按键开关,可以看到P0端口的
实训十一: 矩阵式键盘控制数码管显示
功能说明: 使用4*4矩阵式键盘控制第一个数码
管显示0~F。
1
一、电路图
4条列线的一端分别与单片机P1口中的P1.4、 P1.5、 P1.6. P1.7 相接,另一端通过上拉电阻接到+5V电源上,平时使 列线处于高电平状态;而4条行线的一端分别与P1口中的 P1.0、 P1.1、 P1.2、 P1.3相接。16个按键设置在行、列 2 线交点上。
灯作不同方向的移动或闪烁,说明是在执 行不同功能键的处理程序。 按DL1键,亮灯从右向左移动 按DL2键,亮灯从左向右移动 按DL3键,左边4只灯与右边4只灯交替闪亮 按DL4键,8个灯闪烁
6
码管显示0; 作业布置按下DL2,第二个数
码管显示1; 按下DL3,第三个数 码管显示2; 按下DL4,第四个数 码管显示3 。

矩阵键盘介绍与使用程序

矩阵键盘介绍与使用程序

单片机外接键盘电路一、原理简介键盘接口电路是单片机系统设计非常重要的一环,作为人机交互界面里最常用的输入设备。

我们可以通过键盘输入数据或命令来实现简单的人机通信。

在设计键盘电路与程序前,我们需要了解键盘和组成键盘的按键的一些知识。

1. 按键的分类一般来说,按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。

前者造价低,后者寿命长。

目前,微机系统中最常见的是触点式开关按键(如本学习板上所采用按键)。

按键按照接口原理又可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。

编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的识别。

全编码键盘由专门的芯片实现识键及输出相应的编码,一般还具有去抖动和多键、窜键等保护电路,这种键盘使用方便,硬件开销大,一般的小型嵌入式应用系统较少采用。

非编码键盘按连接方式可分为独立式和矩阵式两种,其它工作都主要由软件完成。

由于其经济实用,较多地应用于单片机系统中(本学习板也采用非编码键盘)。

2. 按键的输入原理在单片机应用系统中,通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。

也就是说,它能提供标准的TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。

此外,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。

当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。

因此,键信息输入是与软件结构密切相关的过程。

对于一组键或一个键盘,通过接口电路与单片机相连。

单片机可以采用查询或中断方式了解有无按键输入并检查是哪一个按键按下,若有键按下则跳至相应的键盘处理程序处去执行,若无键按下则继续执行其他程序。

3. 按键的特点与去抖机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。

矩阵键盘——精选推荐

矩阵键盘——精选推荐

矩阵键盘1.⾏扫描法⼯作原理(查询法)判别键盘中有⽆键按下。

向⾏线输出全0,读⼊列线状态。

如果有键按下,总有⼀列线被拉⾄低电平,从⽽使列输⼊不全为1。

查找按下键所在位置。

依次给⾏线送低电平,查列线状态。

全为1,则所按下的键不在此⾏;否则所按下的键必在此⾏且是在与零电平列线相交的交点上的那个键。

对按键位置进⾏编码。

找到所按下按键的⾏列位置后,对按键进⾏编码,即求得按键键值。

#includechar key(){char row,col, k =-1; //定义⾏、列、返回值P1=0xf0;if((P1&0xf0)==0xf0)return k; //⽆键按下,返回delay20ms(); //延时去抖if((P1&0xf0)==0xf0)return k; //抖动引起,返回for(row=0;row<4;row++) //⾏扫描{ P1=~(1<k=P1&0xf0;if(k!=0xf0) //列线不全为1,{ while(k&(1<<(col+4))) //所按键在该列col++; //查找为0列号k=row*4+col; //计算键值P1=0xf0;while((P1&0xf0)!=0xf0); //等待键释放break;} }return k; //返回键值}3.⾏列反转法⼯作原理判别键盘中有⽆键按下。

(⽅法同⾏扫描法)输⼊变输出,再读。

将上⼀步读取到的列线输⼊值从列线输出,读取⾏线值。

定位求键值。

根据上⼀步输出的列线值和读取到的⾏线值就可以确定所按下键所在的位置,从⽽查表确定键值。

#includechar key(){char code keycode[]= {0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}char row,col,k=-1,i;P1=0xf0;if((P1&0xf0)==0xf0)return k; //⽆键按下,返回-1 delay20ms(); //延时去抖if((P1&0xf0)==0xf0)return k; //抖动引起,返回-1 P1=0xf0;col=P1&0xf0; //⾏输出全0,读取列值P1=col|0x0f;row=P1&0x0f; //列值输出,读取⾏值//查找⾏列组合值在键盘表中位置for(i=0;i<16;i++)if((row|col)==keycode[i]) //找到,i即为键值,{ //否则,返回-1key=i; //对重复键,该⽅法break; //处理为⽆键按下}P1=0xf0;while((P1&0xf0)!=0xf0); //等待键释放return k; //返回键值}。

基于PIC16F877单片机数码管显示矩阵键值

基于PIC16F877单片机数码管显示矩阵键值

基于PIC16F877单片机数码管显示矩阵键值PIC16F877 单片机数码管显示矩阵键值,4X4 矩阵键盘一共有16 个按键,对应的是0~F,十六进制数,本程序是利用行扫描法,进行循环扫描矩阵键盘,当每一行有一个按键被按下,它都会检测得到键值,然后数码管就会显示对应的数值啦。

#include typedef unsigned char uchar; typedef unsigned int uint; uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管共阳段码uchar table_we[] ={0xfe,0xfd,0xfb,0x7f,0xef,0xdf}; // 位码uchar temp; //***********延时z 毫秒***********/ void delay(uint z) { uint x,y; for(x=z;x>0;x--)for(y=110;y>0;y--); } void init() { TRISC=0X0f;//设置c 端口高4 位为输出,低4 位为输入;TRISD=0; //设D 口为输出TRISB=0; //设B 口为输出PORTB=0XFF; } void keyscan() //矩阵键盘扫描子程序{ //uchar temp; //第一行扫描PORTC=0X7f;//1110 1111 temp=PORTC; temp=temp&0x0f; if(temp!=0x0f)//有键按下{ delay(10); temp=PORTC; temp=temp&0x0f;if(temp!=0x0f) { temp=temp|0x70; } } else { //第二行扫描PORTC=0Xbf; temp=PORTC; temp=temp&0x0f; if(temp!=0x0f) { delay(10); temp=PORTC; temp=temp&0x0f; if(temp!=0x0f) { temp=temp|0xb0; } } else { //第三行扫描PORTC=0Xdf; temp=PORTC; temp=temp&0x0f; if(temp!=0x0f) { delay(10); temp=PORTC; temp=temp&0x0f; if(temp!=0x0f) { temp=temp|0xd0; } } else {tips:感谢大家的阅读,本文由我司收集整编。

PIC单片机自学手记之矩阵键盘 行扫描法

PIC单片机自学手记之矩阵键盘 行扫描法

PIC单片机自学手记——PIC 单片机矩阵键盘+行扫描法/*采用行扫描法RAM占用空间较少(呵呵起码我写的程序是这样的,因为我刚开始学,还不是很懂各方面的程序优化)*/#include <pic.h>__CONFIG(0x3F32); //芯片配置字#define uchar unsigned char#define uint unsigned intvoid delay10ms(uchar x);void beep();void init();uchar key;uchar LED_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};void keyscan(){uchar temp;PORTB=0x07;//将列线置0,行线作为输入状态检测。

temp=PORTB;//读回B端口状态值if((temp&0x07)!=0x07)//将读取的值跟0x07做与运算然后再判断是否不等于0x07,如果不等于说明有按键按下{delay10ms(1);//延时10毫秒,去抖动(去干扰)PORTB=0x07;//同上temp=PORTB;//同上if((temp&0x07)!=0x07)//延时消抖后再次判断是否真的有按键按下,如果有再判断是此行的哪个按键(这里我们用的是3x3矩阵键盘,则每行有3种情况){PORTB=0x37;//第一行状态temp=PORTB;//读回B端口状态值switch(temp)//判断第一行按键按下后可能产生的情况{case 0x33:key=7;break;//第一种情况:1号按键按下_0B0011 0011case 0x35:key=4;break;//第二种情况:2号按键按下_0B0011 0101case 0x36:key=1;break;//第三种情况:3号按键按下_0B0011 0110}PORTB=0x2F;//第二行状态temp=PORTB;//读回B端口状态值switch(temp)//判断第二行按键按下后可能产生的情况{case 0x2b:key=8;break;//第一种情况:4号按键按下_0B0010 1011case 0x2d:key=5;break;//第二种情况:5号按键按下_0B0010 1101case 0x2e:key=2;break;//第三种情况:6号按键按下_0B0011 1110 }PORTB=0x1F;//第三行状态temp=PORTB;//读回B端口状态值switch(temp)//判断第三行按键按下后可能产生的情况{case 0x1b:key=9;break;//第一种情况:7号按键按下_0B0001 1011 case 0x1d:key=6;break;//第二种情况:8号按键按下_0B0001 1101 case 0x1e:key=3;break;//第三种情况:9号按键按下_0B0001 1110 }}}}void main(){init();//系统初始化PORTD=LED_CODE[10];//上电数码管显示“—”while(1){PORTB=0x07;if(PORTB!=0x07)//判断有无按键按下有则执行按键处理程序{keyscan();//调用扫描子程序PORTD=LED_CODE[key];//显示对应键号PORTB=0x07;//重新赋值if(PORTB!=0x07)//再次判断有无按键按下按下蜂鸣器响一声{beep(); //调用蜂鸣器子函数}while(PORTB!=0x07)//按键松手检测,如果按键一直按下关闭蜂鸣器 {RE1=0;delay10ms(1);}}}}void init()//系统初始化程序{TRISB=0x07;//低三位,行作为输入TRISD=0;//D端口设置为输出TRISA=0;//A端口设置为输出TRISE=0;//E端口设置为输出PORTA=0;//A端口全部设置为低电平,位选开放PORTD=0xFF;//D端口全部设置为高电平,段选关闭数码管不亮。

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

PIC16F877A矩阵键盘的用法Post By:2010-9-27 13:39:00/*********************************************************************** ********Platform: PIC1687AProject : 实验16:矩阵式按键Clock F : 外部4MSoftware: PICCAuthor : 竹林清风comments:学习使用矩阵式按键的用法本例功能是按一下相应键,数码管显示相应的值0-9;不带连发,不带组合,希望有兴趣的人帮忙完成并共享UP键按键计数proteus仿真通过;************************************************************************ *******/#include <pic.h>#include <pic1687x.h>#include"delay.h"#include"key.h"unsigned char led_7[]={0x3f,0x06,0x5b,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示值unsigned char key_temp;void main(void){unsigned char ID=0;TRISB=0X00;//所有B0端口输出PORTB=0XFF;TRISD=0X0F;//初始化键盘接口PORTD=0XFF;//置输出为高电平while(1){delay_nms(5);key_temp = read_keyboard(); // 调用键盘接口函数读键盘 if (key_temp != No_key){ // 有按键按下switch(key_temp){case 1:PORTB=led_7[1];break;case 2:PORTB=led_7[2];break;case 3:PORTB=led_7[3];break;case 4:PORTB=led_7[4];break;case 5:PORTB=led_7[5];break;case 6:PORTB=led_7[6];break;case 7:PORTB=led_7[7];break;case 8:PORTB=led_7[8];break;case 9:PORTB=led_7[9];break;case K3_2:PORTB=led_7[0];break;case 13:if(++ID>=10){ID=0;}PORTB=led_7[ID];break;}}}}下面为延时函数:文件delay.cvoid delay_1us(void) //1us {asm("nop");}void delay_nus(unsigned int n) //N us延时函数{unsigned int i=0;for (i=0;i<n;i++)delay_1us();}void delay_1ms(void) //1ms延时函数{unsigned int i;for (i=0;i<1140;i++);}void delay_nms(unsigned int n) //N ms延时函数{unsigned int i=0;for (i=0;i<n;i++)delay_1ms();}头文件:delay.hvoid delay_1us(void);void delay_nus(unsigned int n); //N us延时函数void delay_1ms(void); //1ms延时函数void delay_nms(unsigned int n); //N ms延时函数键盘key.h#define No_key 255#define K1_1 1#define K1_2 2#define K1_3 3#define k1_4 4#define K2_1 5#define K2_2 6#define K2_3 7#define K2_4 8#define K3_1 9#define K3_2 0#define K3_3 10#define K3_4 11#define K4_1 12#define K4_2 13#define K4_3 14#define K4_4 15#define Key_mask 0b00001111unsigned char read_keyboard(){static unsigned char key_state = 0, key_value, key_line;unsigned char key_return = No_key,i,key_time;switch (key_state){case 0:key_line = 0b00010000;for (i=1; i<=4; i++) // 扫描键盘{PORTD = ~key_line; // 输出行线电平PORTD = ~key_line; // 必须送2次!!!key_value = Key_mask & PORTD; // 读列电平if (key_value == Key_mask)key_line <<= 1; // 没有按键,继续扫描else{key_state++; // 有按键,停止扫描break; // 转消抖确认状态}}break;case 1:if (key_value == (Key_mask & PORTD)) // 再次读列电平, {switch (key_line | key_value) // 与状态0的相同,确认按键 { // 键盘编码,返回编码值case 0b00011110:key_return = K1_1; //"1"key_state++;break;case 0b00011101:key_return = K1_2; //"2"key_state++;break;case 0b00011011:key_return = K1_3; //"3"key_state++;break;case 0b00010111:key_return = k1_4; //"4" key_state++;break;case 0b00101110:key_return = K2_1; //"5" key_state++;break;case 0b00101101:key_return = K2_2; //"6" key_state++;break;case 0b00101011:key_return = K2_3; //"7" key_state++;break;case 0b00100111:key_return = K2_4; //"8" key_state++;break;case 0b01001110:key_return = K3_1; //"9" key_state++;break;case 0b01001101:key_return = K3_2; //"0" key_state++;break;case 0b01001011:key_return = K3_3; //"A"key_state++;break;case 0b01000111:key_return = K3_4; //"B"key_state++;break;case 0b10001110:key_return = K4_1; //"C"key_state++;break;case 0b10001101://key_return = K4_2; //"D"// key_state++;key_time=0;key_state=3;break;case 0b10001011:key_return = K4_3; //"E"key_state++;break;case 0b10000111:key_return = K4_4; //"F"key_state++;break;}// 转入等待按键释放状态}elsekey_state--; // 两次列电平不同返回状态0,(消抖处理)break;case 2: // 等待按键释放状态PORTD = 0b00000111; // 行线全部输出低电平 PORTD = 0b00000111; // 重复送一次if ( (Key_mask & PORTD) == Key_mask)key_state=0; // 列线全部为高电平返回状态0 break;case 3:PORTD = 0b00000111; // 行线全部输出低电平 PORTD = 0b00000111; // 重复送一次if ( (Key_mask & PORTD) == Key_mask){key_state=0; // 列线全部为高电平返回状态0 key_return = K4_2;}//break;else if( (Key_mask & PORTD)!=Key_mask) {if(++key_time>=100){key_state=4;key_time=0;key_return=20;}}break;case 4:PORTD = 0b00000111; // 行线全部输出低电平PORTD = 0b00000111; // 重复送一次if ( (Key_mask & PORTD) == Key_mask){key_state=0; // 列线全部为高电平返回状态0 //key_return = K4_2;}else if(++key_time>=20){key_time=0;key_return=20;}break;}return key_return;}此主题相关图片如下ju.jpg:。

相关文档
最新文档