单片机之矩阵键盘
- 格式:docx
- 大小:17.95 KB
- 文档页数:4
51单片机矩阵键盘原理51单片机矩阵键盘原理矩阵键盘是一种常用的输入设备,可以通过少量的I/O口控制多个按键。
51单片机作为嵌入式系统中常用的控制器,也可以通过控制矩阵键盘来实现输入功能。
1. 矩阵键盘的结构矩阵键盘由多个按键组成,每个按键都有一个引脚与其他按键共用,形成了一个按键矩阵。
例如,4x4的矩阵键盘有16个按键,其中每行和每列各有4个引脚。
2. 矩阵键盘的工作原理当用户按下某一个按键时,该按键所在行和列之间会形成一个电路通路。
这时,51单片机可以通过扫描所有行和列的电路状态来检测到用户所按下的具体按键。
具体实现过程如下:(1)将每一行引脚设置为输出状态,并将其输出高电平;(2)将每一列引脚设置为输入状态,并开启上拉电阻;(3)逐一扫描每一行引脚,当发现某一行被拉低时,则表示该行对应的某一个按键被按下;(4)记录下该行号,并将该行引脚设置为输入状态,其余行引脚设置为输出状态;(5)逐一扫描每一列引脚,当发现某一列被拉低时,则表示该列对应的是刚才所记录下的行号及其对应的按键;(6)通过行号和列号确定具体按键,并进行相应的处理。
3. 代码实现下面是一个简单的51单片机矩阵键盘扫描程序:```c#include <reg52.h> //头文件sbit row1 = P1^0; //定义引脚sbit row2 = P1^1;sbit row3 = P1^2;sbit row4 = P1^3;sbit col1 = P1^4;sbit col2 = P1^5;sbit col3 = P1^6;sbit col4 = P1^7;unsigned char keyscan(void) //函数定义{unsigned char keyvalue; //定义变量while(1) //循环扫描{row1=0;row2=row3=row4=1; //设置行状态 if(col1==0){keyvalue='7';break;} //读取按键值 if(col2==0){keyvalue='8';break;}if(col3==0){keyvalue='9';break;}if(col4==0){keyvalue='/';break;}row2=0;row1=row3=row4=1;if(col1==0){keyvalue='4';break;}if(col2==0){keyvalue='5';break;}if(col3==0){keyvalue='6';break;} if(col4==0){keyvalue='*';break;}row3=0;row1=row2=row4=1; if(col1==0){keyvalue='1';break;} if(col2==0){keyvalue='2';break;} if(col3==0){keyvalue='3';break;} if(col4==0){keyvalue='-';break;}row4=0;row1=row2=row3=1; if(col1==0){keyvalue='C';break;} if(col2==0){keyvalue='0';break;} if(col3==0){keyvalue='=';break;} if(col4==0){keyvalue='+';break;}}return keyvalue; //返回按键值}void main() //主函数{unsigned char key;while(1) //循环读取{key = keyscan(); //调用函数}}```以上代码实现了一个简单的矩阵键盘扫描程序,可以通过调用`keyscan()`函数来获取用户所按下的具体按键值。
单片机矩阵键盘实验实验报告一、实验目的本次实验的目的是掌握原理和方法,利用单片机识别矩阵键盘并编程实现键码转换功能,控制LED点亮显示。
二、实验原理矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对应矩阵排列结构。
它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书籍检索机器等方面。
本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键码转化。
从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。
三、实验方法1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。
2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。
四、实验结果经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成了按键编码输出与LED点亮的功能。
实验完成后,数码管显示各种按键的编码,同时LED会点亮。
本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。
通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。
单片机矩阵键盘原理单片机矩阵键盘是一种常见的输入装置,它可以实现对数字、字母、符号等不同类型的输入,是单片机控制系统中不可或缺的一部分。
下面详细介绍单片机矩阵键盘的原理。
1. 键盘的基本原理键盘是一种能够将人体按压的操作转换成电信号输出的输入设备。
它由按键、矩阵电路和接口电路等多个部分组成。
其中最关键的是矩阵电路,它起到了连接按键和接口电路的桥梁作用。
2. 矩阵电路的构成矩阵电路主要由行列式组成,其中行和列的数量决定了键盘能够输入的按键数量。
例如一个4行4列的矩阵电路可以连接16个按键。
3. 按键的工作原理按键的工作原理是利用按键触点的开闭状态来变换电路状态,进而实现输入信号的转换。
按键的触点现在主要分为二态和三态两种,二态触点只能够开闭两种状态,而三态触点则可以在按键未按下、按下瞬间和按下保持三个状态之间变换。
在设计矩阵电路时需要根据按键的触点类型进行对应的接线方式。
4. 矩阵键盘的工作流程单片机矩阵键盘的工作流程主要包括按键扫描、按键代码转换和按键响应处理三步。
按键扫描的原理是利用矩阵电路的行列结构来进行扫描,每次扫描只需要对一个行和一个列进行检测,判断当前按键是否被按下。
如果检测到按键被按下,则会对应生成相应的按键代码,并将其发送到单片机系统进行处理。
5. 按键的编程实现在单片机的程序中,实现矩阵键盘的输入需要用到外部中断和定时器两个功能模块。
其中定时器用于产生定时器中断,从而保证按键信号的稳定性和准确性;而外部中断则在扫描矩阵电路时检测按键是否被按下,用于触发中断并响应按键事件。
总的来说,单片机矩阵键盘的原理涉及到电路接线、按键触点类型、按键扫描算法以及编程实现等多个方面。
在设计和实现过程中需要考虑多种因素,才能确保键盘输入的可靠性和稳定性。
单片机c语言程序设计---矩阵式键盘实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称:矩阵式键盘实验一、实验目的和要求1.掌握矩阵式键盘结构2.掌握矩阵式键盘工作原理3.掌握矩阵式键盘的两种常用编程方法,即扫描法和反转法二、实验内容和原理实验1.矩阵式键盘实验功能:用数码管显示4*4矩阵式键盘的按键值,当K1按下后,数码管显示数字0,当K2按下后,显示为1,以此类推,当按下K16,显示F。
(1)硬件设计电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
操作方完成矩阵式键盘实验。
具体包括绘制仿真电路图、编写c源程序(反转法和扫描法)、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。
完成思考题。
三、实验方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。
2.在keil上进行编译后生成“xxx.hex”文件。
3.编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
四、实验结果与分析void Scan_line()//扫描行{Delay(10);//消抖switch ( P1 ){case 0x0e: i=1;break;case 0x0d: i=2;break;case 0x0b: i=3;break;case 0x07: i=4;break;default: i=0;//未按下break;}}void Scan_list()//扫描列{Delay(10);//消抖switch ( P1 ){case 0x70: j=1;break;case 0xb0: j=2;break;case 0xd0: j=3;break;case 0xe0: j=4;break;default: j=0;//未按下break;}}void Show_Key(){if( i != 0 && j != 0 ) P0=table[ ( i - 1 ) * 4 + j - 1 ];else P0=0xff;}五、讨论和心得。
51单片机矩阵键盘原理介绍在嵌入式系统中,矩阵键盘是一种常见的输入装置。
51单片机是广泛使用的一种微控制器,结合矩阵键盘可以实现各种应用。
本文将详细介绍51单片机矩阵键盘的原理及其工作方式。
什么是矩阵键盘?矩阵键盘是将一组按钮布置成矩阵形式,以减少输入引脚的数量。
每个按钮在矩阵键盘中都会被分配一个坐标,通过扫描行和列,可以确定用户按下的是哪个按钮。
51单片机的输入输出结构51单片机具有强大的输入输出能力,可以连接各种外设。
在使用矩阵键盘时,通常使用IO口进行输入和输出操作。
矩阵键盘的接线方式将矩阵键盘与51单片机连接时,需要将键盘的行和列引脚分别连接到单片机的IO 口。
通过对行进行扫描,再根据列的输入状态判断按钮是否按下。
这种接线方式可以大大减少所需的IO口数量。
矩阵键盘的扫描原理矩阵键盘的扫描原理是通过不断扫描行并读取列的状态来判断按钮是否按下。
具体步骤如下: 1. 将所有行引脚设为输出,输出高电平。
2. 逐个扫描行,将当前行引脚设为低电平。
3. 读取所有列引脚的状态,如果有低电平表示有按钮按下。
4. 如果有按钮按下,则根据行和列的坐标确定按下的按钮。
51单片机矩阵键盘的实现以下是使用51单片机实现矩阵键盘的基本步骤: 1. 将行和列引脚连接到单片机的IO口。
2. 初始化IO口的状态。
3. 在主程序中进行循环扫描,根据扫描结果执行相应的操作。
优化矩阵键盘的扫描速度为了提高矩阵键盘的扫描速度,可以采用以下优化方法: 1. 使用硬件定时器来定时扫描行,减少CPU的负载。
2. 使用中断方式处理按键事件,从而减少程序中的轮询操作。
3. 将矩阵键盘的行和列布局进行优化,减少扫描的时间复杂度。
利用矩阵键盘实现密码输入矩阵键盘广泛应用于密码输入功能。
通过将矩阵键盘与51单片机结合,可以实现密码的输入、验证等功能。
以下是一个简单的密码输入的实现步骤: 1. 设置一个密码数组用于存储密码。
2. 使用矩阵键盘获取用户输入的密码,并依次存储到临时数组中。
51单片机矩阵键盘设计
一、引言
AT89C51单片机矩阵键盘设计是嵌入式系统中一个重要的技术,它的
作用是以矩阵形式把外部按键与MCU相连,使得系统可以对外部的按键进
行检测和响应。
矩阵键盘设计在可编程嵌入式系统的设计中占有重要的地位,如智能交通系统、智能家居系统、航空电子系统等。
本文主要介绍了矩阵键盘设计中硬件电路的设计,包括按键、拉电阻、和矩阵编码等,同时给出系统的控制算法,使得系统可以实现有效的按键
检测和响应。
二、矩阵键盘概述
矩阵键盘是将多个按键排布成列行形式进行连接,一般来说,矩阵键
盘是由按键、拉电阻、矩阵编码器和控制器组成,按键是系统中重要的部件,其作用是将外部输入信号传递给控制器。
拉电阻起到的作用是防止按
键耦合,一般可以使用4.7KΩ拉电阻来防止按键耦合。
矩阵编码器用来
识别按键的状态,通常通过硬件把按键信号编码为数字信号,输入到处理
器或控制器。
控制器用来实现按键信号的检测,通过定义硬件定时器和软
件定时器,实现按键检测和处理。
1、硬件电路设计
应用AT89C51单片机矩阵键盘。
[单片机矩阵键盘实验实验报告范文]矩阵键盘实验心得实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。
按其它键退出。
2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。
可定义“A”键为“+”键,“B”键为“=”键。
二、实验目的学习独立式按键的查询识别方法。
2、非编码矩阵键盘的行反转法识别方法。
三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。
2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。
3、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。
这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。
由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。
行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0某F0;假如此时没有人按键,从P1口读出的值应仍为0某F0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0某B0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0某BF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0某BE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。
单片机矩阵键盘设计方案一、设计目标设计一个8行8列的矩阵键盘,每个按键都有一个唯一的键码,能够正常读取用户的按键输入,并将按键对应的键码显示在LCD屏幕上。
二、硬件设计硬件设计包括键盘电路和显示电路两部分。
1.键盘电路设计矩阵键盘的硬件设计主要包括键盘矩阵、行扫描电路和列读取电路。
键盘矩阵由8行8列的按键构成,每个按键都连接到一个由二极管组成的矩阵。
行扫描电路使用8位输出的GPIO口,根据行的值来选通对应的行组。
列读取电路使用8位输入的GPIO口,根据列的值来读取对应的列组。
2.显示电路设计三、软件设计软件设计主要包括初始化设置、按键检测、键码解析和显示处理四个部分。
1.初始化设置首先需要对GPIO口进行初始化设置,将扫描行的GPIO口设置为输出模式,将读取列的GPIO口设置为输入模式。
同时需要对LCD屏幕进行初始化设置,设置显示模式、光标位置等参数。
2.按键检测循环扫描每一行,当其中一行被选通时,读取每一列的值。
如果其中一列的值为低电平,则表示对应的按键被按下。
将按下的按键的行和列的值保存下来,用于后续的键码解析。
3.键码解析根据行和列的值,通过查表的方式找到对应的键码。
将键码保存下来,用于后续的显示处理。
4.显示处理将键码传送给LCD屏幕,通过LCD屏幕的驱动芯片进行解析和显示。
根据LCD屏幕的显示方式,可以选择逐行显示或者按需显示的方式。
四、优化设计在以上基本设计方案的基础上,可以进行一些优化设计,以提高系统的性能和可靠性。
1.消除按键抖动按键在实际使用中会存在抖动现象,需要通过软件滤波来消除。
可设置一个适当的延时,当检测到按键按下后,延时一段时间再进行键码解析,只有在延时之后仍然检测到按键按下,才认为是一个有效的按键。
2.防止冲突按键由于矩阵键盘的性质,可能存在一些按键组合会产生冲突的情况。
可以通过硬件设计和软件处理来解决。
在硬件上,可以增加二极管来隔离不同的按键。
在软件上,可以通过扫描算法和按键排除的方式来避免冲突。
单片机矩阵键盘编码是一种常用的输入设备接口技术,它通过将按键矩阵与单片机相连,实现对按键的识别和操作。
在单片机矩阵键盘编码中,常用的编码方式有行列式编码和扫描式编码等。
本文将介绍一种基于行列式编码的单片机矩阵键盘编码方法,以实现按键的识别和操作。
一、按键矩阵电路设计首先,我们需要设计一个按键矩阵电路,该电路由多个按键组成,并使用行线和列线进行连接。
常见的按键矩阵电路有4x4、5x5等不同规格,其中每个按键都通过行线和列线连接到单片机上。
二、行列式编码原理行列式编码是一种基于矩阵的按键编码方式,它通过将按键矩阵中的行线和列线进行编码,实现对按键的识别和操作。
具体来说,我们将按键矩阵中的行线和列线分别连接到单片机的I/O口上,并使用单片机的软件对I/O口的状态进行检测,从而识别出按键的位置和状态。
在行列式编码中,我们通常将行线划分为上、下两行,并将列线划分为左、右两列。
这样,当一个按键被按下时,其所在的行线和列线将同时发生变化。
通过检测行线和列线的状态变化,我们可以确定按键的位置和状态。
三、编码实现方法在实现单片机矩阵键盘编码时,我们需要编写相应的软件程序,对行线和列线的状态进行检测和判断。
通常,我们使用单片机的中断系统来实现按键的实时检测和响应。
具体来说,我们可以在单片机的I/O口上设置相应的中断请求,并在中断服务程序中对行线和列线的状态进行检测和判断。
当一个按键被按下时,其所在的行线和列线将同时发生变化。
我们可以通过比较当前状态和上一次状态的不同来确定按键的位置和状态。
如果某一行或某一列的状态发生变化,则说明有按键被按下。
我们可以通过判断该行或该列的状态变化来确定是哪个按键被按下。
四、总结单片机矩阵键盘编码是一种常用的输入设备接口技术,通过将按键矩阵与单片机相连,实现对按键的识别和操作。
在单片机矩阵键盘编码中,常用的编码方式有行列式编码和扫描式编码等。
本文介绍了一种基于行列式编码的单片机矩阵键盘编码方法,通过将按键矩阵中的行线和列线进行编码,实现对按键的识别和操作。
单片机矩阵键盘实验实验报告
实验名称:单片机矩阵键盘实验
实验目的:掌握单片机矩阵键盘的原理和应用,能够使用单片机按键输入
实验内容:利用Keil C51软件,采用AT89C51单片机实现一个4x4的矩阵键盘,当按下任何一个按键时,将相应的键值传输到液晶显示屏上进行显示。
实验步骤:
1、搭建实验电路,将矩阵键盘与单片机相连,连接好电源正负极,然后将电路焊接成一个完整的矩阵键盘输入电路。
2、打开Keil C51软件,新建一个单片机应用工程,然后编写代码。
3、通过代码实现对矩阵键盘输入的扫描功能,当按下任何一个按键时,将相应的键值传输到液晶显示屏上进行显示。
4、编译代码,生成HEX文件,下载HEX文件到单片机中,将单片机与电源相连,然后就可以测试了。
5、测试完成后,根据测试结果修改代码,重新编译生成HEX 文件,然后下载到单片机中进行验证。
实验结果:
经过测试,实验结果良好,能够准确地输入按键的值,显示在液晶屏上。
实验感想:
通过这次实验,我深深地认识到了矩阵键盘技术的重要性以及应用价值,同时也更加深入了解单片机的工作原理和应用技术,这对我的学习和工作都有很好的帮助。
基于单片机控制的矩阵键盘显示系统设计矩阵键盘是一种常见的输入设备,用于将用户的按键操作转换成数字信号,以便与其他电子设备进行交互。
基于单片机的矩阵键盘显示系统设计实现了对键盘输入的读取,并通过显示器将按键信息进行显示。
下面将对该系统的设计进行详细介绍。
1.系统概述本系统主要由矩阵键盘、单片机、显示器组成。
矩阵键盘采用常见的4行4列的布局,每个按键都与单片机的输入引脚相连接。
单片机负责读取输入引脚的状态,并根据不同的按键进行不同的处理。
而显示器则用于显示按键输入的结果。
2.硬件设计2.1矩阵键盘矩阵键盘采用4行4列的布局,每个按键都与单片机的输入引脚相连接。
为了实现多按键同时按下的检测,采用按键矩阵的方式进行连接。
在按键矩阵中,每个按键与四个不同的引脚相连接,分别代表行和列。
单片机通过轮询的方式读取每个行和列的引脚状态,从而实现对按键状态的检测。
2.2单片机单片机作为系统的核心控制器,负责读取矩阵键盘的输入信号,并对按键进行处理。
单片机需要配置相应的IO引脚作为输入引脚,并进行轮询式的读取。
当按键按下时,单片机会通过扫描算法检测到按键的位置,并将按键的信息存储到相应的缓存区。
2.3显示器显示器用于显示按键输入的结果。
可以采用常见的数码管、LCD屏幕或者LED矩阵作为显示设备。
单片机通过输出引脚将按键信息传递给显示器,显示器根据这些信息进行相应的显示操作。
3.软件设计3.1初始化在系统启动时,单片机需要进行相应的初始化工作。
主要包括配置口线方向、扫描算法的设置、中断使能等。
3.2扫描算法为了检测按键的位置,需要采用合适的扫描算法。
常用的有逐行扫描、逐列扫描和矩阵扫描等。
逐行扫描的方法是先给每一行输出低电平,然后通过检测每一列的引脚状态来确定按键位置。
逐列扫描的方法与之类似,只是输出低电平的对象从行变为列。
矩阵扫描方法是同时扫描行和列,通过检测相交的引脚状态来确定按键位置。
在实际应用中,可以根据具体需求选择合适的扫描算法。
单片机之矩阵键盘
下面是一个stc89c52单片机下的矩阵键盘程序,P0口接键盘,显示在P2口.
#include;
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^2;
sbit key2=P3^3;
uchar code
tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x 7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //定义八个灯的工作状态。
uchar code
wep[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; void yanshi(uint t)
{
while(--t);
}
void main()
{
uchar han,lei,key;
while(1)
{
P0=0xf0; //初始化为开关状态。
11110000
han=P0; //han变量读取P0口的值。
第一次扫描键盘。
han=han&0xf0; //对han变量与0xf0与.
//如果结果等于P0口初值(0xf0)说明没有键被按下. //如果结果不等于P0(0xf0)口初值,说明有键按下. if(han!=0xf0)
yanshi(125*5); //延时消抖.
if(han!=0xf0) //语句执行到这里说明真的有键按下.
{ //例如按下S1键.则P0=1110 0000
lei=P0&0xf0; //lei读取P0口的值.
lei=lei|0x0f; //lei=11101111
P0=lei; //P0=11101111
han=P0; //han=11101110 第二次扫描键盘,
//因为这里按键S1还是闭合的状态。
han=han&0x0f; //han=00001110
lei=lei&0xf0; //lei=11100000
key=han+lei;
}
switch(key)
{
case 0xee: P2=tab[0]; break; case 0xde: P2=tab[1]; break; case 0xbe: P2=tab[2]; break; case 0x7e: P2=tab[3]; break; case 0xed: P2=tab[4]; break; case 0xdd: P2=tab[5]; break; case 0xbd: P2=tab[6]; break; case 0x7d: P2=tab[7]; break; case 0xeb: P2=tab[8]; break; case 0xdb: P2=tab[9]; break; case 0xbb: P2=tab[10]; break; case 0x7b: P2=tab[11]; break; case 0xe7: P2=tab[12]; break; case 0xd7: P2=tab[13]; break; case 0xb7: P2=tab[14]; break; case 0x77: P2=tab[15]; break; }
}
}。