?? 鍵盤掃描程序1.txt
字號:
4×4鍵盤程序(c語言) 分類:默認欄目#include <AT89X51.C>
unsigned char code table[]={0x01,0x02,0x03,0x04,
0x05,0x06,0x07,0x08
0x09,0x0a,0x0b,0x0c
0x0d,0x0e,0x0f,0x00};
unsigned char temp;
unsigned char key;
unsigned char i,j;
void main(void)
unsigned char loop; //列數
unsigned char mark=0x10; //
while(1) //開始無限循環
{
for(loop=0;loop<4;loop++)//共4列,分別循環4次
p3=~(mark<<loop); //mark=100000<<0,后取反為11100000
temp=p3; //讀取p3口當前值
temp=temp&0x0f; //屏蔽高4位
if (temp!=0x0f) //判斷temp的值是否等于0x0f
{for(i=50;i>0;i--)
for(j=200;j>0;j--) //等待50次200的循環
temp=p3; //又讀一遍
temp=temp&0x0f;
if(temp!= 0x0f) // temp的低4位不等于0x0f
{ switch(temp)
case 0x0e:key=0;break;
case 0x0d:key=1;break;
case 0x0b:key=2;break;
case 0x07:key=3;break;
break;
default;break;
key=key+loop*4; // 每循環一次,k的值就加4
//send key value by uart 傳送key的值
while ((p3&0x0f)!=0x0f); //如果按鍵沒有松開就一直等
}}}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -