導航:首頁 > 操作系統 > 單片機44矩陣鍵盤原理圖

單片機44矩陣鍵盤原理圖

發布時間:2023-09-10 04:20:38

『壹』 單片機最小系統原理圖,求詳細講解

我是一名單片機老玩家.
STC89C52單片機最小系統比較復雜,需要
STC89C52晶元 1 個,晶元底座 1 個,單排針 2 排
晶振電路:晶振 1 個,30pF電容 2 個
復位電路:10K電阻 1 個,10uF/16V電容 1 個
P0口上拉:10K排阻一個
電源去耦:10uF/16V電容 1 個,104 電容一個

建議使用STC最新的單片機STC15W4K32S4
完全兼容STC89C52,單獨一個晶元就是最小系統
內部集成了高精度晶振和復位電路
P0、P1、P2、P3、P4、P5 口都可以配置為
開漏輸出(和STC89C52的P0口一樣)
或者弱上拉輸出(和STC89C52的 P1、P2、P3 口一樣)
或者推挽輸出(最大驅動電流 20 mA)

『貳』 理解89c52單片機開發板的電路原理圖

這個圖應該很清楚了,各個功能模塊都歸納到一個方框裡面:
1、LCD1602顯示模塊介面
2、LCD12864顯示模塊介面
3、LED介面
4、蜂鳴器介面
5、ISP下載介面
6、PL2303驅動電路
7、電源電路
8、數碼管電路介面及獨立按鍵介面
9、DS18B20溫度感測器介面及紅外接收電路介面
10、CPU
11、復位電路和時鍾電路。
這個開發板缺少4*4矩陣鍵盤。

『叄』 這是單片機4X4的鍵盤識別程序,請幫我解釋,最好每句執行操作和原理都有,特別是case 0X0e; key=7的原因

temp等於0x0e時,鍵值key等於7 : 這個鍵值是你自己定義的,就是起一個標志位的作用,然後用程序判斷鍵值,當鍵值等於7時,該進行什麼動作,這就相當於當你那個按鍵按下時執行什麼動作

寫單片機C程序 一定要活用標志位
還有你好像都大四了,怎麼這樣普通的矩陣鍵盤程序還看不懂,該好好學習呀 兄弟

I和J 只是一個變數 用來決定延時時間的長短 延時是為了消除按鍵的抖動
畢竟機械按鍵存在抖動(按下去並不是電平直接就跳變並穩定下來了)
延時是軟體消抖 增強系統的穩定性

『肆』 單片機 4*4矩陣鍵盤

這個電路圖,只是你使用哪幾個口在程序中對應上就可以了

程序

//行列掃描程序,可以自己定義埠和掃描方式,這里做簡單介紹

#include<reg52.h>//包含頭文件

#defineucharunsignedchar

#defineuintunsignedint

unsignedcharconstdofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F

ucharkeyscan(void);

voiddelay(uinti);

voidmain()

{

ucharkey;

P2=0x00;//1數碼管亮按相應的按鍵,會顯示按鍵上的字元

while(1)

{

key=keyscan();//調用鍵盤掃描,

switch(key)

{

case0x7e:P0=dofly[0];break;//0按下相應的鍵顯示相對應的碼值

case0x7d:P0=dofly[1];break;//1

case0x7b:P0=dofly[2];break;//2

case0x77:P0=dofly[3];break;//3

case0xbe:P0=dofly[4];break;//4

case0xbd:P0=dofly[5];break;//5

case0xbb:P0=dofly[6];break;//6

case0xb7:P0=dofly[7];break;//7

case0xde:P0=dofly[8];break;//8

case0xdd:P0=dofly[9];break;//9

case0xdb:P0=dofly[10];break;//a

case0xd7:P0=dofly[11];break;//b

case0xee:P0=dofly[12];break;//c

case0xed:P0=dofly[13];break;//d

case0xeb:P0=dofly[14];break;//e

case0xe7:P0=dofly[15];break;//f

}

}

}

ucharkeyscan(void)//鍵盤掃描函數,使用行列反轉掃描法

{

ucharcord_h,cord_l;//行列值

P3=0x0f;//行線輸出全為0

cord_h=P3&0x0f;//讀入列線值

if(cord_h!=0x0f)//先檢測有無按鍵按下

{

delay(100);//去抖

if(cord_h!=0x0f)

{

cord_h=P3&0x0f;//讀入列線值

P3=cord_h|0xf0;//輸出當前列線值

cord_l=P3&0xf0;//讀入行線值

return(cord_h+cord_l);//鍵盤最後組合碼值

}

}return(0xff);//返回該值

}

voiddelay(uinti)//延時函數

{

while(i--);

}

不明白的在聯系我,也可以直接訪問我的Blog:hi..com/lyzhangxiang

閱讀全文

與單片機44矩陣鍵盤原理圖相關的資料

熱點內容
什麼伺服器雲鳥最便宜 瀏覽:214
vs編譯器反匯編 瀏覽:562
程序員直播做項目創業 瀏覽:396
linux下samba配置 瀏覽:795
程序員面試銀行崗位會有編制嗎 瀏覽:412
ex表怎麼加密碼保護 瀏覽:170
小孩上編程課用哪款好 瀏覽:556
如何製作伺服器商店 瀏覽:732
壓縮氣管閥門 瀏覽:464
pdf推文 瀏覽:355
69程序員 瀏覽:581
阿里雲伺服器鏡像如何遷移到騰訊 瀏覽:989
安卓如何顯示日期在狀態欄 瀏覽:803
cadsplt這個命令用不了 瀏覽:467
安卓誇克怎麼取消監管 瀏覽:662
pdf怎麼裁剪圖片 瀏覽:438
黑上宏命令 瀏覽:644
mac解壓壓縮包有密碼 瀏覽:706
命令與征服知乎 瀏覽:562
小時代pdf 瀏覽:223