文档库 最新最全的文档下载
当前位置:文档库 › 根据扫描键盘返回的键值编码查键值编码表

根据扫描键盘返回的键值编码查键值编码表

根据扫描键盘返回的键值编码查键值编码表
根据扫描键盘返回的键值编码查键值编码表

根据扫描键盘返回的键值编码查键值编码表,从而得到键值并送数码管显示。

开机时,数码管显示"-"。

当键按下时,数码管显示按下键的键值,蜂鸣器响一声。*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit BEEP = P3^6; //蜂鸣器驱动线

sbit L1=P2^0;

sbit L2=P2^1;

uchar a,b,c,num;

uchar key;

unsigned char code disp_code[]={

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40}; //共阴

/*unsigned char code disp_code[]={

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf}; */ //共阳

unsigned char code key_code[]={

0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,

0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77 };

void display(uchar key);

/oid delay(void);

/********************************************************** 定时器T0

**********************************************************/

void init()

{

TMOD=0x01;

TH0=(65536-4000)/256;

TL0=(65536-4000)%256;

EA=1;

ET0=1;

TR0=1;

}

void timer0() interrupt 1

{

TH0=(65536-4000)/256;

TL0=(65536-4000)%256;

num++;

}

/********************************************************** 延时子函数

**********************************************************/ void delayms(uint ms)

{

uchar t;

while(ms--)

{

for(t = 0; t < 120; t++);

}

}

/*void delay(void)

{

unsigned int i=0;

for (i=0;i<5300;i++){}

} */

/**********************************************************

x*0.14MS 延时子函数

**********************************************************/ void delay0(uchar x)

{

uchar i;

while(x--)

{

for (i = 0; i<13; i++) {;}

}

}

/********************************************************** 蜂鸣器驱动子函数

**********************************************************/ void beep()

{

uchar i;

for (i=0;i<180;i++)

{

delay0(5);

BEEP=!BEEP; //BEEP取反

}

BEEP=1; //关闭蜂鸣器

delayms(500); //延时

display(key+1);

}

/********************************************************** 键盘扫描子函数

**********************************************************/ uchar keyscan()

{

uchar scan1,scan2,keycode,j;

P1=0xf0;

scan1=P1;

if((scan1&0xf0)!=0xf0) //判键是否按下

{

delayms(10); //延时10ms

scan1=P1;

if((scan1&0xf0)!=0xf0) //二次判键是否按下

{

P1=0x0f;

scan2=P1;

keycode=scan1|scan2; //组合成键编码

for(j=0;j<=15;j++)

{

if(keycode== key_code[j]) //查表得键值

{

key=j;

return(key);

}

}

}

}

else P1=0xff;

return (16);

}

/********************************************************** 显示子程序

**********************************************************/

void display(uchar key)

{

a=key/10;

L1=0;

L2=1;

P0=disp_code[a];

delayms(1);

b=key%10;

L1=1;

L2=0;

P0=disp_code[b];

delayms(1);

}

/********************************************************** 判键是否按下子函数

**********************************************************/ void keydown()

{

P1=0xf0;

if((P1&0xf0)!=0xf0)

{

keyscan();

beep();

display(key+1);

}

}

/********************************************************** 主函数

**********************************************************/ main()

{ num=0;

P0 = 0x40;

P2 = 0xf0; //数码管显示"-"

P1 = 0xff;

init();//初始化子程序

while(1)

{

keydown();

if(key!=16)c=key;

if(num==20)

{

num=0;

display(c+1);

}

}

}

/*********************************************************/

Android键盘键名和键值列表

Android键盘键名和键值列表电话键 键名描述键值 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键82 KEYCODE_BACK 返回键 4 KEYCODE_SEARCH 搜索键84 KEYCODE_CAMERA 拍照键27 KEYCODE_FOCUS 拍照对焦键80 KEYCODE_POWER 电源键26 KEYCODE_NOTIFICATION 通知键83 KEYCODE_MUTE 话筒静音键91 KEYCODE_VOLUME_MUTE 扬声器静音键164 KEYCODE_VOLUME_UP 音量增加键24 KEYCODE_VOLUME_DOWN 音量减小键25 控制键 键名描述键值 KEYCODE_ENTER 回车键66 KEYCODE_ESCAPE ESC键111 KEYCODE_DPAD_CENTER 导航键确定键23 KEYCODE_DPAD_UP 导航键向上19 KEYCODE_DPAD_DOWN 导航键向下20 KEYCODE_DPAD_LEFT 导航键向左21 KEYCODE_DPAD_RIGHT 导航键向右22 KEYCODE_MOVE_HOME 光标移动到开始键122 KEYCODE_MOVE_END 光标移动到末尾键123 KEYCODE_PAGE_UP 向上翻页键92 KEYCODE_PAGE_DOWN 向下翻页键93 KEYCODE_DEL 退格键67 KEYCODE_FORWARD_DEL 删除键112 KEYCODE_INSERT 插入键124 KEYCODE_TAB Tab键61 KEYCODE_NUM_LOCK 小键盘锁143 KEYCODE_CAPS_LOCK 大写锁定键115 KEYCODE_BREAK Break/Pause键121 KEYCODE_SCROLL_LOCK 滚动锁定键116

郭天祥老师51单片机中矩阵键盘显示程序

3.键盘的应用,第一排。 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; void delay(uint); uchar code table[]= { //段选的数字决定显示的数字,这里的是数字0~15 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,}; uchar num,temp; void main() { dula=0; wela=1; P0=0xc0; //位选6数码管 wela=0; while(1) { P3=0xfe; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xee:num=1; break; case 0xde:num=2; break; case 0xbe:num=3; break;

case 0x7e:num=4; break; } } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } dula=1; P0=table[num-1]; dula=0; } } void delay(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

51单片机04矩阵按键逐行扫描,行列扫描代码

矩阵键盘扫描原理 方法一: 逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。 方法二: 行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

//行列扫描 #include #define GPIO_KEY P0 #define GPIO_LCD P2 unsigned char code a[17]= {~0xfc,~0x60,~0xda,~0xf2,~0x66,~0xb6,~0xbe,~0xe0, ~0xfe,~0xf6,~0xee,~0x3e,~0x9c,~0x7a,~0xde,~0x8e,~0x00}; //按位取反的用法 void delay10ms(); void keydown();//要与下面的定义一致 void main() { GPIO_LCD=a[16];//初始化数码管 while(1) { keydown(); } }

void delay10ms() { unsigned char a,b; for(a=38;a>0;a--) for(b=130;b>0;b--); } void keydown() //检测按下,按下时需要消抖,检测松开,返回按键值//没有按键时保持 { unsigned char n=0,key; GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f)//读取按键是否按下 { delay10ms(); //延时10ms消抖 if(GPIO_KEY!=0x0f)//再次检测按键是否按下 { GPIO_KEY=0x0f;//测试列 switch(GPIO_KEY) { case 0x07: key=0;break;

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

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 16位键盘和一个7段LED构成简单的输入显示系统,实现键盘输入和LED 显示实验。 二、实验目的 1、理解矩阵键盘扫描的原理; 2、掌握矩阵键盘与51单片机接口的编程方法。 三、实验电路及连线 Proteus实验电路

1、主要知识点概述: 本实验阐述了键盘扫描原理,过程如下:首先扫描键盘,判断是否有键按下,再确定是哪一个键,计算键值,输出显示。 2、效果说明: 以数码管显示键盘的作用。点击相应按键显示相应的键值。 五、实验流程图

1、Proteus仿真 a、在Proteus中搭建和认识电路; b、建立实验程序并编译,加载hex文件,仿真; c、如不能正常工作,打开调试窗口进行调试 参考程序: ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#TABLE ;将表头放入DPTR LCALL KEY ;调用键盘扫描程序 MOVC A,@A+DPTR ;查表后将键值送入ACC MOV P2,A ;将ACC值送入P0口 LJMP MAIN ;返回反复循环显示 KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;有键按下继续 LCALL DELAY2 ;无键按调用延时去抖 AJMP KEY ;返回继续检测按键 K1: LCALL DELAY2 LCALL DELAY2 ;有键按下延时去抖动 LCALL KS ;再调用检测按键程序 JNZ K2 ;确认有按下进行下一步 AJMP KEY ;无键按下返回继续检测 K2: MOV R2,#0EFH ;将扫描值送入R2暂存MOV R4,#00H ;将第一列值送入R4暂存 K3: MOV P1,R2 ;将R2的值送入P1口 L6: JB P1.0,L1 ;P1.0等于1跳转到L1 MOV A,#00H ;将第一行值送入ACC AJMP LK ;跳转到键值处理程序 L1: JB P1.1,L2 ;P1.1等于1跳转到L2 MOV A,#04H ;将第二行的行值送入ACC AJMP LK ;跳转到键值理程序进行键值处理 L2: JB P1.2,L3 ;P1.2等于1跳转到L3

矩阵键盘控制12864显示最经典程序

#include //这个程序的功能:用4*4的矩阵键盘(接P3口)按键盘k1——k16中的任何一个键ki #include //12864液晶上显示数字i-1 (液晶数据口接P0) #define uint unsigned int//键盘扫描的思想是将行设置为低,列设置为高,来读取P3口的值,就能知道是哪个按键按下了 #define uchar unsigned char #define LCDdata P0 sbit E = P2^7; sbit RW = P2^6; sbit RS = P2^5; void init(); void delayms(uint x); void displaykey(); void write_com(uchar com);//写命令 void write_data(uchar date);//写数据 uchar temp; //--------------主函数----------------- void main() { init();// P3=0xfe;//P3=0xfd;//P3=0xfb;//P3=0xf7; while(1) { displaykey(); } } //-------------液晶初始化---------------- void init() { write_com(0x01); write_com(0x02); write_com(0x06); write_com(0x0e); } //------------毫秒延时--------------- void delayms(uint x) { uchar i; while(x--) {

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

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

长沙学院课程设计鉴定表

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

目录 前言 (5) 一、课程设计目的 (6) 二、设计内容及原理 (6) 2.1 单片机控制系统原理 (6) 2.2阵键盘识别显示系统概述 (6) 2.3键盘电路 (7) 2.4 12864显示器 (8) 2.5整体电路图 (9) 2.6仿真结果 (9) 三、实验心得与体会 (10) 四、实验程序 (10) 参考文献 (18)

前言 单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器 应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。 是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗低,因此倍受工程师青睐,适用于使用电池的电子设备。英国科学家在上世纪制造了第一块液晶显示器即LCD。而第一台可操作的LCD基于动态散射模式(Dynamic Scattering Mode,DSM),是RCA公司乔治·海尔曼带领的小组开发的。 LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键, 键盘是合理的。

键盘虚拟键值编码表 使用keybd

键盘虚拟键值编码表使用keybd_Event 也是在cnblogs上找的,怕到时忘了,先记下来 原文章:https://www.wendangku.net/doc/db1528017.html,/nemolog/archive/2005/10/30/265035.ht ml 模拟键盘输入首先要用到一个API函数:keybd_event。 我们是菜鸟,所以不必具体去理解它的详细用法,只要按以下方法使用即可了!呵呵! 模拟按键有两个基本动作,即按下键和放开按键,所以我们每模拟一次按键就要调用两次该API函数,其方法是: 例子1:模拟按下'A'键 keybd_event(65,0,0,0); keybd_event(65,0,KEYEVENTF_KEYUP,0); 例子2:模拟按下'ALT+F4'键 keybd_event(18,0,0,0); keybd_event(115,0,0,0); keybd_event(115,0,KEYEVENTF_KEYUP,0); keybd_event(18,0,KEYEVENTF_KEYUP,0); 例子3:在启动一个程序之前清空屏幕(按Win +D) [DllImport("User32.dll")] public static extern void keybd_event(Byte bVk, Byte bScan, Int32 dwFlags, Int32 dwEx traInfo); keybd_event(0x5b, 0, 0, 0); keybd_event(68, 0, 0, 0); keybd_event(0x5b, 0, 0x2, 0); keybd_event(68, 0, 0x2, 0); 附:常用模拟键的键值对照表。 键盘键与虚拟键码对照表

矩阵键盘显示系统

1 4×4矩阵式键盘识别显示系统概述 矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O 端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。 矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N×N个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。 最常见的键盘布局如图1.1所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。 图1.1 键盘布局

2系统主要硬件电路设计 2.1单片机控制系统原理 图2.1 单片机控制系统原理框图 2.2单片机主机系统电路 AT89C52单片机是51系列单片机的一个成员,是52单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-52系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C52构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。 图2.2 单片机主机系统图

键盘对应的key值

键盘对应的key值 常用的键盘key值 Backspace->8 Tab->9 Return->13 Pause->19 CapsLock->20 Esc->27 Space->32 PageUp->33 PageDown->34 End->35 Home->36 LeftArrow->37 UpArrow->38 RightArrow->39 DownArrow->40 PrintScrn->44 Insert->45 Delete->46 0->48 1->49 2->50 3->51 4->52 5->53 6->54 7->55 8->56 9->57 A->65 B->66 C->67 D->68 E->69 F->70 G->71 H->72 I->73 J->74 K->75

L->76 M->77 N->78 O->79 P->80 Q->81 R->82 S->83 T->84 U->85 V->86 W->87 X->88 y->89 Z->90 LWin->91 RWin->92 PopMenu->93 NumPad0->96 NumPad1->97 NumPad2->98 NumPad3->99 NumPad4->100 NumPad5->101 NumPad6->102 NumPad7->103 NumPad8->104 NumPad9->105 NumPad*->106 NumPad+->107 NumPad-->109 NumPad.->110 NumPad/->111 F1->112 F2->113 F3->114 F4->115 F5->116 F6->117 F7->118 F8->119 F9->120 F10->121

扫描式矩阵键盘课程设计

扫描式矩阵键盘课程设 计 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

4X4扫描式矩阵键盘课程设计课程设计名称: 4_4扫描式矩阵键盘设计 姓名: DUKE 班级:电子1008班 学号: 10086 成绩: 日期: 2014年1月6日 摘要 随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。 矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,显示在LED数码管上。单片机控制依据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。 4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程。单片机将检测到的按键信号

转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。 目录 第一章:系统功能要求-------------------------------------------------------- 1.1 4*4 矩阵式键盘系统概述------------------------------------------------ 1.2 本设计任务和主要内容--------------------------------------------------- 第二章:方案论证--------------------------------------------------------------- 第三章:系统硬件电路的设计------------------------------------------------ 3.1 单片机控制系统原理----------------------------------------------------- 3.2 原理图绘制说明---------------------------------------------------------- 3.3 画出流程图---------------------------------------------------------------- 3.4 原理图绘制---------------------------------------------------------------

三维矩阵键盘操作手册

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

windows键值对照表

键值对照表 Special Keys Scan Code Application 5D E0 Backspace 0E 00 Caps Lock 3A 00 Delete 53 E0 End 4F E0 Enter 1C 00 Escape 01 00 HOME 47 E0 Insert 52 E0 Left Alt 38 00 Left Ctrl 1D 00 Left Shift 2A 00 Left Windows 5B E0 Num Lock 45 00 Page Down 51 E0 Page Up 49 E0 Power 5E E0 PrtSc 37 E0 Right Alt 38 E0 Right Ctrl 1D E0 Right Shift 36 00 Right Windows 5C E0 Scroll Lock 46 00 Sleep 5F E0 Space 39 00 Tab 0F 00 Wake 63 E0 Number Pad Keys Scan Code 0 52 00 1 4F 00 2 50 00 3 51 00 4 4B 00 5 4C 00 6 4D 00 7 47 00 8 48 00 9 49 00 - 4A 00 * 37 00 . 53 00 / 35 E0

Enter 1C E0 Function Keys Scan Code F1 3B 00 F2 3C 00 F3 3D 00 F4 3E 00 F5 3F 00 F6 40 00 F7 41 00 F8 42 00 F9 43 00 F10 44 00 F11 57 00 F12 58 00 F13 64 00 F14 65 00 F15 66 00 Arrow Keys Scan Code Down 50 E0 Left 4B E0 Right 4D E0 Up 48 E0 Application Keys Scan Code Calculator 21 E0 E-Mail 6C E0 Media Select 6D E0 Messenger 11 E0 My Computer 6B E0 Arrow Keys Scan Code Down 50 E0 Left 4B E0 Right 4D E0 Up 48 E0 QWERTY Keys Scan Code ' " 28 00 - _ 0C 00 , < 33 00 . > 34 00 /? 35 00 ;: 27 00 [ { 1A 00 \ | 2B 00 ] } 1B 00

矩阵键盘操作说明

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

51单片机矩阵键盘扫描程序

/*----------------------------------------------- 名称:矩阵键盘依次输入控制使用行列逐级扫描 论坛:https://www.wendangku.net/doc/db1528017.html, 编写:shifang 日期:2009.5 修改:无 内容:如计算器输入数据形式相同从右至左使用行列扫描方法 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 #define KeyPort P1 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempData[8]; //存储显示值的全局变量 void DelayUs2x(unsigned char t);//us级延时函数声明 void DelayMs(unsigned char t); //ms级延时 void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数 unsigned char KeyScan(void);//键盘扫描 unsigned char KeyPro(void); void Init_Timer0(void);//定时器初始化 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { unsigned char num,i,j; unsigned char temp[8]; Init_Timer0(); while (1) //主循环 { num=KeyPro();

矩阵键盘显示电路的设计

二、实验原始数据记录 1.实验现象 当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1KHZ,按下矩阵键盘的某一个键,则在数码管上显示对应的这个键标识的键值,当再按下第二个键的时候前一个键的键值在数码管上左移一位。按下“*”键则在数码管是显示“E”键值。按下“#”键在数码管上显示“F”键值。 2.实验图片记录 湖南科技大学 物理与电子科学学院专业实验报告 实验课程:FPGA 实验原理 实验项目:矩阵键盘显示电路的设计专业:物理与电子科学学院班级:电子信息科学与技术3班姓名:马竞怡学 号: 1308020328 实验日期:年月日

实验报告 一、实验目的内容及步骤 1.实验目的 1)了解普通4×4键盘扫描的原理。2)进一步加深七段码管显示过程的理解。3)了解对输入/输出端口的定义方法。 2..4×4矩阵键盘电路原理图 信号名称 对应FPGA 管脚名 说明 KEY-C0AC18 钜阵键盘的第1列选择KEY-C1AC17钜阵键盘的第2列选择KEY-C2AD17钜阵键盘的第3列选择KEY-C3AC16钜阵键盘的第4列选择KEY-R0AD16钜阵键盘的第1行选择KEY-R1AC15钜阵键盘的第2行选择KEY-R2AD15钜阵键盘的第3行选择KEY-R3 AC14 钜阵键盘的第4行选择 3..实验步骤 1)打开QUARTUSII 软件,新建一个工程。 2)建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3)按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序,用户可参照光 盘中提供的示例程序。 4)编写完VHDL 程序后,保存起来。方法同实验一。 5)对自己编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。 6)编译仿真无误后,依照4X4矩阵键、数码管与FPGA 的管脚连接表(表或参照附 录进行管脚分配。表10-2是示例程序的管脚分配表。分配完成后,再进行全编译一次,以使管脚分配生效。 7)用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。观察实验结果是否 与自己的编程思想一致。 实验预习报告 一、实验原理及公式 通常在一个键盘中使用了一个瞬时接触开关,并且用如图10-1所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图10-2所示的好几个脉冲。弹起的持续时间通常将维持在5ms ~30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。 键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。 获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。 (矩阵键盘) 成绩:教师:

ASCII码表和键盘键码表(完整珍藏版)

表一: ASCII码表 (完整版 ) ASCII 值字符ASCII 值字符ASCII 值字符ASCII 值字符0NUT32(space)64@96、1SOH33!65A97a 2STX34”66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f 7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j 11VT43+75K107k 12FF44,76L108l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383X115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v 23TB55787W119w 24CAN56888X120x 25EM57989Y121y 26SUB58:90Z122z 27ESC59;91[123{ 28FS60<92/124| 29GS61=93]125} 30RS62>94^126~ 31US63?95—127DEL 注:特殊控制字符所代表含义 NUL 空VT垂直制表SYN空转同步HT横向列表SOH 标题开始FF 走纸控制ETB信息组传送结束LF换行 STX 正文开始CR 回车CAN 作废GS组分隔符ETX正文结束SO 移位输出EM纸尽NAK否定EOY传输结束SI移位输入SUB换置US单元分隔符ENQ询问字符DLE空格ESC换码DEL删除 ACK承认BS 退一格FS文字分隔符RS记录分隔符DC1 设备控制 1DC2 设备控制 2DC3 设备控制 3DC4 设备控制 4

矩阵键盘数码管显示键值 程序

#include #include #define uchar unsigned char #define uint unsigned int uchar dis_buf; //显示缓存 uchar temp; uchar key; //键顺序吗 void delay0(uchar x); //x*0.14MS #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; // 此表为LED 的字模0 1 2 3 4 5 6 7 8 9 a b c d e f unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5 E,~0x79,~0x71}; /*************************************************************/ /* */ /* 延时子程序*/ /* */ /*************************************************************/ void delay(uchar x) { uchar j; while((x--)!=0) { for(j=0;j<125;j++) {;} } } /*************************************************************/ /* */ /* 键扫描子程序(4*3 的矩阵) P1.4 P1.5 P1.6 P1.7为行*/ /* P1.1 P1.2 P1.3为列*/ /* */ /*************************************************************/ void keyscan(void)

矩阵键盘扫描显示键值

课程报告 课程新型单片机实践 题目4*4矩阵键盘扫描显示键值二级学院 班级 姓名 学号 指导教师 设计时间2011.11.15~2011.12.14

常州工学院《新型单片机》设计任务书学院:专业:自动化班级:

绪论 (4) 第一章总体方案设计 (5) 第二章系统硬件电路的设计 (6) 第三章系统软件电路的设计 (8) 3.1软件设计思想 (8) 3.2主程序设计 (9) 3.3子程序设计 (9) 3.3.1 动态显示程序设计 (10) 3.3.2 按键程序设计 (11) 第四章调试及性能分析 (14) 4.1软件调试 (14) 4.2性能分析 (15) 总结 (16) 参考文献 (16) 附录 (17) A元件清单 (17) 8、瓷片电容 (17) B总原理图 (18) C程序清单 (19) C实物图 (22)

绪论 制作一个检测4*4 矩阵键盘的按键编码的实验,把实际按键的键值的八位编码先转换成从0000—1111 的编码,再译成数码管能识别的八位编码,在数码管动态显示时,矩阵键盘的第一行对应00—03,4*4 第二行对应04—07,第三行08—11,第四行对应12—15。 原理: 1.键盘的工作原理:.键盘的工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V 电源上。无按键按下时,行线处于高电平的状态,而当有按键按下时,行线电平与此行线相连的列线电平决定。2.行列扫描法原理:原理:.行列扫描法原理第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行线都为高电平。第二步,在第一步判断有键按下后,延时10ms 消除机械抖动,再次读取行值,如果此行线还处于低电平状态则进入下一步,否则返回第一步重新判断。第三步,开始扫描按键位置,采用逐行扫描,每间隔1ms 的时间,分别拉低第一列,第二列,第三列,第四列,无论拉低哪一列其他三列都为高电平,读取行值找到按键的位置,分别把行值和列值储存在寄存器里。第四步,从寄存器中找到行值和列值并把其合并,得到按键值,对此按键值进行编码,按照从第一行第一个一直到第四行第四个逐行进行编码,编码值从“0000” 至“1111” ,再进行译码,最后显示按键号码。3.数码管动态扫描原理:.数码管动态扫描原理:数码管的7 个段及小数点都是由LED 块组成的,显示方式分为静态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数码管的共用段选线a、b、c、d、e、f、g、dp 分别与单片机的8 根I/O 口线相连,显示数字时只要给相应的段选线送低电平。数码管在动态显示方式时,在某一时刻只能有一个数码管被点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要做相应的改变,每位显示字符停留显示的时间一般为1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定的数字显示。

相关文档