欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機(jī) 4X4矩陣鍵盤(pán)(查表法)
[打印本頁(yè)]
作者:
凱爾特
時(shí)間:
2018-6-3 20:04
標(biāo)題:
51單片機(jī) 4X4矩陣鍵盤(pán)(查表法)
/*行線接P1.0-P1.3,列線接P1.4-P1.7。
根據(jù)掃描鍵盤(pán)返回的鍵值編碼查鍵值編碼表,從而得到鍵值并送數(shù)碼管顯示。
開(kāi)機(jī)時(shí),數(shù)碼管顯示“-”。
當(dāng)鍵按下時(shí),數(shù)碼管顯示按下鍵的鍵值,蜂鳴器響一聲。*/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit BEEP = P3^6; //蜂鳴器驅(qū)動(dòng)線
uchar key;
unsigned char code disp_code[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};
unsigned char code key_code[]={
0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77 };
/**********************************************************
延時(shí)子函數(shù)
**********************************************************/
void delayms(uint ms)
{
uchar t;
while(ms--)
{
for(t = 0; t < 120; t++);
}
}
/**********************************************************
x*0.14MS 延時(shí)子函數(shù)
**********************************************************/
void delay0(uchar x)
{
uchar i;
while(x--)
{
for (i = 0; i<13; i++) {;}
}
}
/**********************************************************
蜂鳴器驅(qū)動(dòng)子函數(shù)
**********************************************************/
void beep()
{
uchar i;
for (i=0;i<180;i++)
{
delay0(5);
BEEP=!BEEP; //BEEP取反
}
BEEP=1; //關(guān)閉蜂鳴器
delayms(250); //延時(shí)
}
/**********************************************************
鍵盤(pán)掃描子函數(shù)
**********************************************************/
uchar keyscan()
{
uchar scan1,scan2,keycode,j;
P1=0xf0;
scan1=P1;
if((scan1&0xf0)!=0xf0) //判鍵是否按下
{
delayms(30); //延時(shí)30ms
scan1=P1;
if((scan1&0xf0)!=0xf0) //二次判鍵是否按下
{
P1=0x0f;
scan2=P1;
keycode=scan1|scan2; //組合成鍵編碼
for(j=0;j<=15;j++)
{
if(keycode== key_code[j]) //查表得鍵值
{
key=j;
return(key);
}
}
}
}
else P1=0xff;
return (16);
}
/**********************************************************
判鍵是否按下子函數(shù)
**********************************************************/
void keydown()
{
P1=0xf0;
if((P1&0xf0)!=0xf0)
{
keyscan();
P0=disp_code[key];
beep();
}
}
/**********************************************************
主函數(shù)
**********************************************************/
main()
{
P0 = 0xbf;
P2 = 0x7f; //數(shù)碼管顯示"-"
P1 = 0xff;
while(1)
{
keydown();
}
}
/*********************************************************/
4X4矩陣鍵盤(pán)(查表法).rar
2018-6-3 20:04 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
12.15 KB, 下載次數(shù): 23, 下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1