節(jié)約單片機端口資源的鍵盤電路
uchar getkey(void)
{
uchar x
P1=P1|0x07; /*I/O1至I/O3寫“1”*/
xP10x07; /*讀入I/O1至I/O3并屏蔽其它位*/
if(x= =10)
{
P1=P1|0x07;
P1=P10xfd; /*I/O2寫“0”*/
x=P10x07;
x=(x+1)/2+10; /*屏蔽I/O2并轉(zhuǎn)換K10至K12的鍵值*/
if(x = =13)
{
P1=P1|0x07;
P1=P10xfb; /*I/O3寫“0”*/
x=P10x07;
x=x+13; /*屏蔽I/O3并轉(zhuǎn)換K13至K15的鍵值*/
}
}
}
return x;
}
利用該鍵盤電路并根據(jù)邏輯組合原理可推斷開n條I/O線可組合的按鍵數(shù)N為:
N=(2n-1)+(2 n-1 -1)n
表1給出了2至4條I/O線可組合的按鍵數(shù)。
表1 2~4條I/O線可組合的按鍵數(shù)
I/O線 可組合按鍵
2 5
3 16
4 43
3 結(jié)束語
這種新型鍵盤電路在使用時非常穩(wěn)定可靠,節(jié)省大量的I/O端口,而且程序處理也很簡潔,速率比4×4的掃描式電路還要快,因此,該電路特別適合一些引腳較少的單片機,如PIC12C508、Z86E03以及AT89C2051等。
評論