/*MCU:AT89S52*/
#include
#include
#define uchar unsigned char
int key;
int del;
void Key_Scan(void);
/************主程序*************/
void main(void)
{
void Key_Scan(void);
void delay(int);
while(1)
{
Key_Scan();
delay(2000);
}
}
/********矩鍵查尋鍵值4*4程序******/
void Key_Scan(void)
{
uchar readkey;
uchar x_temp,y_temp;
P1=0x0f;
x_temp=P1&0x0f;
if(x_temp==0x0f) goto keyout;
P1=0xf0;
y_temp=P1&0xf0;
readkey=x_temp|y_temp;
readkey=~readkey;
switch(readkey)
{
case 0x11:key=0;P2=key; break;
case 0x21:key=1;P2=key; break;
case 0x41:key=2;P2=key; break;
case 0x81:key=3;P2=key; break;
case 0x12:key=4;P2=key; break;
case 0x22:key=5;P2=key; break;
case 0x42:key=6;P2=key; break;
case 0x82:key=7;P2=key; break;
case 0x14:key=8;P2=key; break;
case 0x24:key=9;P2=key; break;
case 0x44:key=10;P2=key;break;
case 0x84:key=11;P2=key;break;
case 0x18:key=12;P2=key;break;
case 0x28:key=13;P2=key;break;
case 0x48:key=14;P2=key;break;
case 0x88:key=15;P2=key;break;
default: key=16;P2=key;break;
}
keyout:_nop_();
}
/************延時(shí)程序*************/
void delay(del)
{
for(del;del>0;del--);
}
為了方便大家更好的學(xué)習(xí),您還可以關(guān)注電子發(fā)燒友的公眾號(hào),每天推送相關(guān)知識(shí),希望能對(duì)你的學(xué)習(xí)有所幫助!
-
51單片機(jī)
+關(guān)注
關(guān)注
273文章
5697瀏覽量
123195 -
4×4行列式鍵盤(pán)
+關(guān)注
關(guān)注
0文章
3瀏覽量
8881
原文標(biāo)題:4×4鍵盤(pán)C51單片機(jī)程序
文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論