新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CCS PICC實(shí)現(xiàn)的矩陣鍵盤掃描

CCS PICC實(shí)現(xiàn)的矩陣鍵盤掃描

作者: 時間:2012-10-27 來源:網(wǎng)絡(luò) 收藏

網(wǎng)上關(guān)于 的參考程序較少,本人近來做了此類實(shí)驗(yàn),這里將把程序公開至此以便和學(xué)習(xí) 的網(wǎng)友交流!

例:

unsigned char key()
{
#use fast_io(C)
unsigned char k1,k2,k3;
set_tris_c(0x00);
output_c(0x0f);
set_tris_c(0x0f);
k1=input_c()0x0f;
set_tris_c(0x00);
output_c(0xf0);
set_tris_c(0xf0);
k2=input_c()0xf0;
k3=k1|k2;
return(k3);
}//此程序只是最基本的矩陣掃描,忽略了抖鍵、干擾和多鍵同時按下的情況!

/*需要注意的是: 中庫函數(shù)output_x()、input_x()都會整個的將TRIS端口方向控制寄存器改為輸出或輸入,而時要求:端口輸出0x0f,然后高四位設(shè)置為輸出低四位設(shè)置為輸入,結(jié)果和0x0f相與屏蔽無效位,檢測是否有0出現(xiàn),如果有,即有按鍵按下,轉(zhuǎn)到掃描處理,如果沒有,低四位應(yīng)該為0x0f。接著端口輸出0xf0,然后高四位設(shè)置為輸入低四位設(shè)置為輸出,結(jié)果和0xf0相與屏蔽無效位,檢測是否有0出現(xiàn),如果有,即有按鍵按下,轉(zhuǎn)到掃描處理,如果沒有,高四位應(yīng)該為0xf0。PIC單片機(jī)與51系列單片機(jī)不同,如果使用過程中不注意設(shè)置端口方向,將得不到正確的值。CCS PICC中庫函數(shù)output_x()、input_x()能自動將整個TRIS端口方向控制寄存器改為輸出或輸入,但在矩陣掃描中,需要手動設(shè)置方向控制寄存器,本例中就使用#use fast_io(C)、set_tris_x()這些語句來設(shè)置方向控制寄存器。本人在這個例子中走了不少彎路。*/



關(guān)鍵詞: CCS PICC 矩陣鍵盤掃描

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉