?? key.c
字號:
#include"reg52.h"
#define uchar unsigned char
sbit a1=P2^4;
sbit a2=P2^5;
sbit a3=P2^6;
sbit a4=P2^7;
sbit R1=P3^5;
sbit R2=P3^6;
sbit R3=P3^7;
uchar RR;
void delay()
{uchar i,j;
for (i=0;i<200;i++)
{for(j=0x00;j<20;j++) {} }
}
uchar keynum(uchar i)
{uchar j;
j=((0xf0&i)>>4);
i=i&0x0f;
if (i==0xf) return 0xff;
switch(i)
{case 0x0e: while(a1==0){ P2=0xf0;}; return(j+0x00);//break;
case 0x0d: while(a2==0){ P2=0xf0;}; return(j+0x01);//break;
case 0x0b: while(a3==0){ P2=0xf0;}; return(j+0x02);//break;
case 0x07: while(a4==0){ P2=0xf0;}; return(j+0x03);//break;
}
}
uchar keyscan()
{uchar LL;
R1=0;
R2=0;
R3=0;
P2=0xf0;
//P0=0x30;
if((P2&0xf0)!=0xf0)
{delay();
if((P2&0xf0)!=0xf0)
{
R1=0;
R2=1;
R3=1;
if((P2&0xf0)!=0xf0)
{LL=((P2&0xf0)>>4);
if (RR!=(0x10|LL)) {RR=0x10|LL; return (keynum(0x10|LL));}
else return (0xff);}
R1=1;
R2=0;
R3=1;
if((P2&0xf0)!=0xf0)
{LL=((P2&0xf0)>>4);
if (RR!=(0x50|LL)) {RR=0x50|LL;return (keynum(0x50|LL));}
else return (0xff);}
R1=1;
R2=1;
R3=0;
if((P2&0xf0)!=0xf0)
{LL=((P2&0xf0)>>4);
if (RR!=(0x90|LL)) {RR=0x90|LL ;return (keynum(0x90|LL));}
else return (0xff);}
}
}
else
{ RR=0xff;
return (0xff);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -