找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)矩陣鍵盤這部分程序,請問是我理解的這樣嗎?

查看數(shù): 1974 | 評論數(shù): 12 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2024-6-1 18:04

正文摘要:

最近在看51單片機(jī),矩陣鍵盤這部分我有點(diǎn)問題,想問問大家。 就是說,我給這個(gè)P2口寫了0xf0,那這個(gè)值是不是寫入了這個(gè)P2口的鎖存器里?其相應(yīng)的IO口會(huì)表現(xiàn)出1111 0000,應(yīng)該是這樣的吧? 然后按鍵輸入會(huì)拉低IO口的 ...

回復(fù)

ID:1061677 發(fā)表于 2024-6-3 22:13
188610329 發(fā)表于 2024-6-3 12:49
你就這樣理解, P2  寄存器 有兩個(gè),  一個(gè) 只讀  一個(gè)只寫。
當(dāng)你讀 P2 的時(shí)候,就獲得  IO 當(dāng)前的真實(shí)電 ...

OK,這樣說感覺也對。
ID:624769 發(fā)表于 2024-6-3 12:49
你就這樣理解, P2  寄存器 有兩個(gè),  一個(gè) 只讀  一個(gè)只寫。
當(dāng)你讀 P2 的時(shí)候,就獲得  IO 當(dāng)前的真實(shí)電平狀態(tài)。
當(dāng)你寫 P2 的時(shí)候,就是讓你 P2口  輸出你期望的電平狀態(tài), 但是受限于IO驅(qū)動(dòng)能力有限,IO口的實(shí)際電平會(huì)被外部電路影響有所改變, 所以 通過寫P2 和 讀P2 這個(gè)組合動(dòng)作,可以用來 分析距陣鍵盤的按鍵情況。
ID:1109793 發(fā)表于 2024-6-3 10:56
yzw846562238 發(fā)表于 2024-6-3 08:48
也可以是6個(gè)輸出2個(gè)輸入、5個(gè)輸出3個(gè)輸入等等組合哦,矩陣很多樣式的,也有2*2、2*3等等

2*2有意義?四個(gè)IO,直接用4個(gè)按鍵接地可以不
ID:1061677 發(fā)表于 2024-6-3 10:05
wswkaishi 發(fā)表于 2024-6-2 20:30
矩陣鍵盤的原理是八個(gè)引腳有4個(gè)是輸入,四個(gè)是輸出。然后讓這四個(gè)輸出一次輸出高電平,然后檢測四個(gè)輸入哪 ...

這樣理解好像確實(shí)沒啥問題,但是這個(gè)51它又不想stm32可以用程序設(shè)置IO口為輸入模式還是輸出模式。所以我想問的是給P2賦值0xf0是不是就是意味著把這個(gè)值寫在了鎖存器中,然后switch(P2)應(yīng)該是讀外部引腳的值。
ID:458247 發(fā)表于 2024-6-3 08:48
wswkaishi 發(fā)表于 2024-6-2 20:30
矩陣鍵盤的原理是八個(gè)引腳有4個(gè)是輸入,四個(gè)是輸出。然后讓這四個(gè)輸出一次輸出高電平,然后檢測四個(gè)輸入哪 ...

也可以是6個(gè)輸出2個(gè)輸入、5個(gè)輸出3個(gè)輸入等等組合哦,矩陣很多樣式的,也有2*2、2*3等等
ID:1123420 發(fā)表于 2024-6-2 21:42
寫沒寫入鎖存器要看原理圖是否有連接的有,你這種情況一般不可能將鎖存器和按鍵放在同一個(gè)IO口,你可以去看看原理圖的按鍵IO口在哪里
ID:1122373 發(fā)表于 2024-6-2 21:11
你這個(gè)相當(dāng)于只判斷行了。
以這個(gè)為例,它用的是行列式掃描法,先判斷列,在判斷行。
先判斷第一列,令P13為0,其他引腳為1。當(dāng)S1按下時(shí),P17被P13拉為低電平,否則P17為高電平,以此類推判斷S5、S9和S13。(延時(shí)的作用是為了消抖)

屏幕截圖 2024-06-02 210122.png (198.84 KB, 下載次數(shù): 23)

屏幕截圖 2024-06-02 210122.png

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

ID:1122373 發(fā)表于 2024-6-2 20:59
你這個(gè)只能判斷行吧
ID:619694 發(fā)表于 2024-6-2 20:30
矩陣鍵盤的原理是八個(gè)引腳有4個(gè)是輸入,四個(gè)是輸出。然后讓這四個(gè)輸出一次輸出高電平,然后檢測四個(gè)輸入哪個(gè)是高電平,這樣就可以對應(yīng)出是按下的哪個(gè)按鍵。個(gè)人理解
ID:1109793 發(fā)表于 2024-6-2 12:42
只有這點(diǎn)就是每個(gè)IO接了一個(gè)開關(guān),不是啥矩陣

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表