來電了! 電工總算煩了,沒想到會這麼快,多虧阿福,外面真是只能湊合,還是自個兒宿舍舒服,明天開焊!
總圖最小系統&數碼管
與門實現鍵盤中斷觸發
解碼器實現矩陣鍵盤的擴充套件
擴充套件的矩陣鍵盤
程式**:
#include//標頭檔案
#include
#define uchar unsigned char //巨集定義
#define uint unsigned int
code uchar table=;
code uchar key_tab[32]=; // c,d,e,f,
uchar l_key=0x00; //定義變數,存放鍵值
uchar l_keyold=0xff; //作為按鍵放開否的憑證
uchar flag,flag1;//flag為了使最初不顯示數字,flag1
void readkey(); //掃瞄鍵盤,獲取鍵值
void display(uchar *lp); //顯示子函式
void delay1(uint z)
void delay(); //延時子函式
void main() }
void key_scan() interrupt 0//外部中斷,的優先順序最高
void time0() interrupt 1 //定時器的中斷函式
void readkey() //掃瞄鍵盤子函式
j++; //此函式的功能是:左移迴圈
}if(key==0xff) //如果讀取不到p0口的值,如干擾,則返回
if(l_keyold==key) // 檢查按鍵放開否,如果相等表明沒有放開
th0=0x2e;
tl0=0;
tr0=1; //啟動定時器
l_keyold=key; //獲取鍵值,作為放開否的憑證
key+=j;
for(i=0;i<32;i++) //查表獲得相應的進製值存放到l_key中
}//程式執行到此,就表明有鍵值存放到l_key中,主程式
//就可以檢測鍵盤值並作相應的處理
}void display(uchar *lp) //顯示子函式 }
}void delay() //延時子函式
STM32 4 4矩陣鍵盤掃瞄程式(中斷方式)
總體思路 中斷線為4行連線的gpio口,先初始化矩陣的4行輸出低電平4列輸出高電平,當有按鍵按下時的上公升沿觸發中斷 然後在相應的中斷處理函式裡面採取查詢的方式 參考上篇 獲得鍵值。部分程式 void exti9 5 irqhandler void 外部中斷中斷函式 if gpio readinpu...
4 4矩陣鍵盤的實現方式
在網上看了些4 4矩陣鍵盤的程式,哥們自己也想寫乙個,首先是初始化就是p0口賦初值,這是數碼管的i o口,然後就是p3口的賦初值,這個是選通有幾個數碼管的,就是這個意思吧,最重要的是p1口這是連線鍵盤的i o口。首先說說它的原理 我是依據我自己的圖來寫的,我的圖是p1.0 p1.3是行,p1.4 p...
STM32使用中斷驅動矩陣鍵盤
巨集定義 b6,b7,c8,c9做行掃瞄,c10 c12做列掃瞄 define row1 gpio port gpiob 行1 define gpio clk rcc apb2periph gpiob rcc apb2periph gpioc gpio埠時鐘 define row1 gpio pin...