日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

51單片機鍵盤掃描程序解析

出處:電子發(fā)燒友網(wǎng) 發(fā)布于:2018-09-04 13:31:56

/****************************************鍵盤_不采用定時器_不延時特點:按鍵在松手后有效,靈敏度高,消耗資源少,運行效率高獨立鍵盤為:K01=P2^4;K02=P2^5;K03=P2^6;K04=P2^7;矩陣鍵盤為:行(上到下)_P2.3_P2.2_P2.

/****************************************

51單片機鍵盤掃描程序解析


特點:

按鍵在松手后有效,靈敏度高,消耗資源少,運行效率高

獨立鍵盤為:K01=P2^4;K02=P2^5;K03=P2^6;K04=P2^7;

矩陣鍵盤為:行(上到下)_P2.3_P2.2_P2.1_P2.0

列(左到右)_P2.7_P2.6_P2.5_P2.4

提供的操作函數(shù):

//獨立鍵盤。無按鍵動作時其返回值num_key=0,否則返回按鍵號num_key

extern unsigned char keyboard_self();

//矩陣鍵盤。無按鍵動作時其返回值num_key=0,否則返回按鍵號num_key****檢測高四位

extern unsigned char keyboard_matrix();

****************************************/

先看獨立鍵盤(和矩陣鍵盤的算法一樣)

-----------------------------------------------------------------------

#include

#include

//獨立鍵盤。無按鍵動作時其返回值num_key=0,否則返回按鍵號num_key

extern unsigned char keyboard_self()

{

unsigned char num_key=0;//按鍵號

unsigned char temp=0;//用于讀取P2線上按鍵值

staTIc unsigned char temp_code=0;//保存按鍵值

staTIc unsigned char num_check=0;//低電平有效次數(shù)

staTIc unsigned char key_flag=0;//按鍵有效標(biāo)識

temp=P2&0xF0;//讀取P2線數(shù)據(jù)

if(temp!=0xF0)//低電平判斷

{

num_check++;

if(num_check==10)//連續(xù)10次(10ms)低電平有效,則認(rèn)為按鍵有效

{

key_flag=1;//使能按鍵有效標(biāo)識

temp_code=temp;//保存按鍵值

}

}

else//松手時判斷

{

num_check=0;

if(key_flag==1)//按鍵有效

{

key_flag=0;

switch(temp_code)//讀取按鍵號

{

case 0xE0: num_key=1;

break;

case 0xD0: num_key=2;

break;

case 0xB0: num_key=3;

break;

case 0x70: num_key=4;

break;

}

}

}

return(num_key);

}


-----------------------------------------------------------------------

#include

#include

//矩陣鍵盤。無按鍵動作時其返回值num_key=0,否則返回按鍵號num_key****檢測高四位

extern unsigned char keyboard_matrix()

{

unsigned char num_key=0;//按鍵號

unsigned char temp=0;//讀取P2口線數(shù)據(jù)

staTIc unsigned char temp_code=0;//用于保存按鍵值

staTIc unsigned char temp_circle=0xFE;//保存P2線上的循環(huán)掃描值

static unsigned char num_check=0;//低電平計數(shù)

static unsigned char key_flag=0;//按鍵有效標(biāo)識

P2=temp_circle;//0xFX

temp=P2;//讀取P2口線數(shù)據(jù)

if(temp!=temp_circle)//有按鍵動作

{

num_check++;//低電平計數(shù)|逢低電平加1

if(num_check==10)//連續(xù)10次(10ms)低電平有效

{

key_flag=1;//按鍵有效標(biāo)識置1

temp_code=temp;//保存按鍵值

}

}

else//松手OR無按鍵動作,此時應(yīng)該改變掃描線

{

num_check=0;

if(key_flag==1)//按鍵有效判斷

{

key_flag=0;

switch(temp_code)//讀取按鍵號

{

//P2^0線

case 0xEE: num_key=1;

break;

case 0xDE: num_key=2;

break;

case 0xBE: num_key=3;

break;

case 0x7E: num_key=4;

break;

//P2^1線

case 0xED: num_key=5;

break;

case 0xDD: num_key=6;

break;

case 0xBD: num_key=7;

break;

case 0x7D: num_key=8;

break;

//P2^2線

case 0xEB: num_key=9;

break;

case 0xDB: num_key=10;

break;

case 0xBB: num_key=11;

break;

case 0x7B: num_key=12;

break;

//P2^3線

case 0xE7: num_key=13;

break;

case 0xD7: num_key=14;

break;

case 0xB7: num_key=15;

break;

case 0x77: num_key=16;

break;

}

}

temp_circle=_crol_(temp_circle,1);//改變掃描線

if(temp_circle==0xEF)

{

temp_circle=0xFE;

}

}

return(num_key);//返回按鍵號

}

/*************************************************************************

未按鍵時,掃描線一直變化。

長按鍵時,掃描線不變化,使得該行按鍵變成了獨立按鍵,這樣的掃描效率極高。

如當(dāng)按下P2.0線上的某個鍵時,程序?qū)呙璧竭@個鍵,而后掃描線不變化,

當(dāng)鍵盤程序連續(xù)10次進入時檢測到10次按鍵有效,直到松手后掃描線才變化

*************************************************************************/

關(guān)鍵詞:51單片機,鍵盤掃描,定時器

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!