单片机 矩阵键盘4*4按键程序 求大神指导!!!!有程序

num num1 都赋初始值为0 求告知case 0xd7:num1=10*num1;num=num1 这种怎么运算的 什么意思 谢谢了

switch(key)
{
case 0xd7:num1=10*num1;num=num1;key=0xff; //0
break;
case 0xee:num1=10*num1+1;num=num1;key=0xff; // 1
break;
case 0xde:num1=10*num1+2;num=num1;key=0xff; // 2
break;
case 0xbe:num1=10*num1+3;num=num1;key=0xff; // 3
break;
case 0xed:num1=10*num1+4;num=num1;key=0xff; //4
break;
case 0xdd:num1=10*num1+5;num=num1;key=0xff; //5
break;
case 0xbd:num1=10*num1+6;num=num1;key=0xff; //6
break;
case 0xeb:num1=10*num1+7;num=num1;key=0xff; //7
break;
case 0xdb:num1=10*num1+8;num=num1;key=0xff; //8
break;
case 0xbb:num1=10*num1+9;num=num1;key=0xff; //9
break;
case 0xe7: num1=0; num2=0; num=0;flag=0;key=0xff; //clear
break;
case 0x7e:num2=num1;num1=0; flag=1;key=0xff; //+
break;
case 0x7d: num2=num1;num1=0;flag=2;key=0xff; //-
break;
case 0x7b: num2=num1; num1=0;flag=3;key=0xff; //*
break;
case 0x77:num2=num1;num1=0;flag=4;key=0xff; // /
break;
case 0xb7: if(flag==1)num=num2+num1; //运算+
if(flag==2)num=num2-num1; // 运算-
if(flag==3)num=num2*num1; // 运算*
if(flag==4)num=num2/num1; // 运算/
num1=0;
num2=0;
key=0xff; //全 置高
break; //=

求告知case 0xd7:num1=10*num1;num=num1 这种怎么运算的 什么意思?
答:<1>如果num num1 都赋初始值为0 是全局变量定义的。
直接计算就得了,本意是num1 = 10*0 = 0; num = 0;
case 0xee:num1=10*num1+1 = 1; num = 1;
case 0xde:num1=10*num1+2 = 12; num = 12;

case 0xbe:num1=10*num1+3; =123; num =123;

<2>如果num num1 都赋初始值为0 是局部变量定义的。
10*num1 = 0,每个case的10*num1都是等于0,表达式没什么意义。
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机中的4×4矩阵键盘的键值怎么求?
while(1) { P1=0xf0; key_l=P1; \/\/读P1端口的值 key_l=key_l&0xf0; \/\/令低4位置位为0 if(key_l!=0xf0) \/\/判断是否有按键按下 { delay_50us(100)

求单片机大神讲解一下程序啊 ,组合按键值为什么要取反
矩阵键盘的核心:以4X4为例(行4 列4线)1.拉高列线,拉低行线 假设为0xf0,此时扫描列线,若按键按下,则对应的列线被拉低了,此时我们可以确定列线,但不清楚对应哪个行线 2.拉高行线,拉低列线(相反),此时扫描可以得出具体行线,在将行列组合,就能得出对应按键 case 0x11. (由于按键检...

求 关于 用单片机和4*4矩阵键盘输入数字并在LCD1602上显示出来的C语言...
名称 : Delay_1ms()功能 : 延时子程序,延时时间为 1ms * x 输入 : x (延时一毫秒的个数)输出 : 无 \/ void Delay_1ms(uint i)\/\/1ms延时 { uchar x,j;for(j=0;j<i;j++)for(x=0;x<=148;x++);} \/ 名称 : delay()功能 : 延时,延时时间大概为5US。输入 : 无 输出 : 无 ...

单片机4×4矩阵键盘扫描编程问题(里面详细,欢迎高手)
扫描第一行,就是将第一行电平置为低电平,其他的都为高,扫描哪一行就让哪一行的电平置零,其他行为高电平。这就是第一个问题。在没有键按下的时候,列线全部是高电平,有第一行的键按下的时候,相应的列线就为低电平了,n=P1;n&=0xf0;if(n!=0xf0)这几句就是判断有没有键按下。在第...

单片机4*4矩阵键盘两位数码管显示0—16
步骤如下:1、将4x4矩阵键盘连接到单片机上,并将数码管连接到单片机上。2、编写程序以实现键盘扫描和数码管显示。3、使用行扫描法识别键盘输入。将行线设置为高电平,然后逐行扫描列线。4、使用两位数码管显示0-16的数值。将数码管的段选线连接到单片机的GPIO引脚上,并将位选线连接到另一个GPIO引脚...

89c51单片机4*4矩阵键盘编程。
JZ SW1 LCALL DELAY10MS JZ SW1\/\/确认有键按下,但不知道哪个,此时可以之间让蜂鸣器叫 MOV P3.0,#1\/\/蜂鸣器发声(赋1还是赋0取决你用的蜂鸣器)MOV A,P1 ANL A,#0FH CJNE A,#0EH,K1 MOV COUNT,#0 LJMP DK K1: CJNE A,#0DH,K2 MOV COUNT,#4 LJMP DK K2: CJNE A,#0BH,K3 M...

用c51单片机按下4*4矩阵按键,数码管显示0-F,能正常显示,只是0号和7...
\/ 类型:矩阵键盘。现象:按下键盘后,数码管显示相应的数字0-F 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!\/ include<reg52.h> \/\/52单片机头文件,一般不要改动,里面包含特殊功能寄存器的定义 define uchar unsigned char \/\/将unsigned char定义为uchar,简化输写。提高编程速度 d...

谁能给我讲明白单片机的4x4矩阵键盘工作原理
4x4矩阵键盘的工作原理是在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,通过读入输入线的状态就可得知是否有键被按下。

单片机中的4×4矩阵键盘的键值怎么求?
单片机书上应该有讲的哦,多查资料。既然是4x4,即4行4列了,共需要8个I\/O口,有8bit数据(如高四位为行4bit,低四位为列4bit)位:xxxx xxxx。还要结合你的程序来编码键值,如果有键按下了,查询所有按键的所连接的I\/O口电平状态,每个按键需要两个I\/O口,一端连接行(行4bit之一),一端...

汇编语言设计的单片机4*4矩阵键盘
2.了解单片机输入和输出的过程,以及如何对数据进行采集的 实验内容:键盘上对应有16个按键,从0到F,按下相应的键会在数码管上显示相应的数字,其中K0到K15是采用4*4的方式连接的 \/ ;; 0 1 2 3 ---P20 ; 4 5 6 7 ---P21 ; 8 9 A B ---P22 ;...

相似回答