标题: 矩阵键盘扫描编里面有不懂的地方请大家帮帮我 [打印本页]

作者: fujian2014    时间: 2014-10-30 21:18
标题: 矩阵键盘扫描编里面有不懂的地方请大家帮帮我
4*4矩阵键盘扫描编



#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit BEEP = P3^7;uchar code DSY_CODE[]={         0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00};uchar Pre_KeyNO = 16,KeyNO = 16;void DelayMS(uint ms){         uchar t;        while(ms--)        {                 for(t=0;t<120;t++);        }}void Keys_Scan(){         uchar Tmp;        P1 = 0x0f;        DelayMS(1);        Tmp = P1 ^ 0x0f;        switch(Tmp)        {                 case 1: KeyNO = 0; break;                case 2: KeyNO = 1; break;                case 4: KeyNO = 2; break;                case 8: KeyNO = 3; break;                default: KeyNO = 16;        }        P1 = 0xf0;        DelayMS(1);        Tmp = P1 >> 4 ^ 0x0f;        switch(Tmp)        {                 case 1: KeyNO += 0; break;                case 2: KeyNO += 4; break;                case 4: KeyNO += 8; break;                case 8: KeyNO += 12;        }}void Beep(){         uchar i;        for(i=0;i<100;i++)        {                 DelayMS(1);                BEEP = ~BEEP;        }        BEEP = 1;}void main(){         P0 = 0x00;        while(1)        {                 P1 = 0xf0;                if(P1 != 0xf0)                        Keys_Scan();                if(Pre_KeyNO != KeyNO)                {                         P0 = ~DSY_CODE[KeyNO];                        Beep();                        Pre_KeyNO = KeyNO;                }                DelayMS(100);        }}以上程序是我从别处摘录的
     我这里不明白
    switch(Tmp)
        {                 case 1: KeyNO += 0; break;                case 2: KeyNO += 4; break;                case 4: KeyNO += 8; break;                case 8: KeyNO += 12;        }

       KeyNO +=?这是什么意思呢
       还有Tmp = P1 >> 4 ^ 0x0f;
      不就是和第一次的那个TMP一样吗为啥这么写
      请大家帮帮我哈


作者: a110    时间: 2014-11-2 01:48
  KeyNO +=?  意思是 keyno= KeyNO +12
作者: jiege    时间: 2014-11-4 12:38
楼上的说的很很对,这是c语言的操作符号,这种写法可以简化程序。二楼的这种写法就明显要长一些
作者: fujian2014    时间: 2014-11-5 15:28
谢谢哦




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1