4 4矩陣鍵盤C51程式

2021-05-22 20:04:11 字數 1272 閱讀 2120

#include

#include

#define key_port  p0   //鍵盤介面定義

sbit key_port_0=key_port^0;

sbit key_port_1=key_port^1;

sbit key_port_2=key_port^2;

sbit key_port_3=key_port^3;

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

stc89c59微控制器一毫秒延時函式

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

void delay_ms(unsigned int ms)   

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

串列埠傳送乙個字元

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

void com_send_dat( unsigned char dat)

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

串列埠初始化

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

void init_com( void )

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

鍵盤掃瞄函式

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

unsigned char keyscan(void)

;key_port=0x0f;         //確定行列位置

if(key_port==0x0f)return(0);//無鍵按下返回0

delay_ms(10);               //呼叫延時函式 ,目的是去前沿鍵抖。

if(key_port==0x0f)return(0);//再次判斷。目的是確保檢測正確

else

key=key_port;       //取得鍵值

for(;key_port!=0x0f;key_port=0x0f);  //等待鍵鬆開,目的是去後沿鍵抖

for(i=0;key_table[i]!=key && i<16;i++); //查表取key的值0-f

key=i;

return(key);                           //帶鍵值返回主調函式}}

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

鍵盤掃瞄測試主函式

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

void main(void)}}

C51 矩陣按鍵 個人筆記

每個按鍵一端和同行一端相連 jp4的高4位 另一端和同列一端相連 jp4的低4位 for int i 8 i 3 i include typedef unsigned int u16 typedef unsigned char u8 define delaytime 50000000 define ...

51的矩陣鍵盤 4 4 的原理與實現

個人感覺,這個矩陣鍵盤的出現,就是為了減少序列口的使用,像這個4 4的矩陣鍵盤,8個序列口就可以控制16鍵,而如果是普通的則需要16個序列口,同樣的效果,序列口的使用減少了一般,對於序列口資源緊張的情況,這個矩陣鍵盤是個不錯的選擇。但凡事都不可能都是好的,你的序列口使用減少了,那麼使用難度也相應上去...

51微控制器C51程式

學習c51程式之前需要對c語言有一定的了解和學習 這裡只介紹與c語言有區別的地方 具體的不同如下 1 c51中增加了幾種針對msc 51微控制器的特有資料型別 a sfr和sfr16 用於定義特殊功能暫存器,如 sfr psw 0xd0 一般情況下這些特殊功能暫存器不需要使用者自定義,通常包含在標頭...