#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 一般情況下這些特殊功能暫存器不需要使用者自定義,通常包含在標頭...