找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1885|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1061677 發(fā)表于 2024-6-1 18:04 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在看51單片機,矩陣鍵盤這部分我有點問題,想問問大家。
就是說,我給這個P2口寫了0xf0,那這個值是不是寫入了這個P2口的鎖存器里?其相應(yīng)的IO口會表現(xiàn)出1111 0000,應(yīng)該是這樣的吧?
然后按鍵輸入會拉低IO口的電平,那這個switch(P2)應(yīng)該是讀外部引腳,而不是讀P2寄存器的值,所以才會有switch(P2)吧?
請問是這樣的嗎?能解釋一下這個過程嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1061677 發(fā)表于 2024-6-1 18:07 | 只看該作者
這個是我說的這部分程序

下載.png (49.71 KB, 下載次數(shù): 28)

附件程序圖,忘記傳了

附件程序圖,忘記傳了
回復(fù)

使用道具 舉報

板凳
ID:1109793 發(fā)表于 2024-6-2 12:42 | 只看該作者
只有這點就是每個IO接了一個開關(guān),不是啥矩陣
回復(fù)

使用道具 舉報

地板
ID:619694 發(fā)表于 2024-6-2 20:30 | 只看該作者
矩陣鍵盤的原理是八個引腳有4個是輸入,四個是輸出。然后讓這四個輸出一次輸出高電平,然后檢測四個輸入哪個是高電平,這樣就可以對應(yīng)出是按下的哪個按鍵。個人理解
回復(fù)

使用道具 舉報

5#
ID:1122373 發(fā)表于 2024-6-2 20:59 | 只看該作者
你這個只能判斷行吧
回復(fù)

使用道具 舉報

6#
ID:1122373 發(fā)表于 2024-6-2 21:11 | 只看該作者
你這個相當(dāng)于只判斷行了。
以這個為例,它用的是行列式掃描法,先判斷列,在判斷行。
先判斷第一列,令P13為0,其他引腳為1。當(dāng)S1按下時,P17被P13拉為低電平,否則P17為高電平,以此類推判斷S5、S9和S13。(延時的作用是為了消抖)

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

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:1123420 發(fā)表于 2024-6-2 21:42 | 只看該作者
寫沒寫入鎖存器要看原理圖是否有連接的有,你這種情況一般不可能將鎖存器和按鍵放在同一個IO口,你可以去看看原理圖的按鍵IO口在哪里
回復(fù)

使用道具 舉報

8#
ID:458247 發(fā)表于 2024-6-3 08:48 | 只看該作者
wswkaishi 發(fā)表于 2024-6-2 20:30
矩陣鍵盤的原理是八個引腳有4個是輸入,四個是輸出。然后讓這四個輸出一次輸出高電平,然后檢測四個輸入哪 ...

也可以是6個輸出2個輸入、5個輸出3個輸入等等組合哦,矩陣很多樣式的,也有2*2、2*3等等
回復(fù)

使用道具 舉報

9#
ID:1061677 發(fā)表于 2024-6-3 10:02 | 只看該作者
zzzyfzz 發(fā)表于 2024-6-2 21:42
寫沒寫入鎖存器要看原理圖是否有連接的有,你這種情況一般不可能將鎖存器和按鍵放在同一個IO口,你可以去看 ...

這個就是P2口,我覺得給P2口賦值0xf0的話相當(dāng)于將這個值寫在鎖存器里,而swicth(P2)相當(dāng)于讀P2引腳的值。請問是這樣嗎?

Snipaste_2024-06-03_09-59-49.png (85.98 KB, 下載次數(shù): 27)

Snipaste_2024-06-03_09-59-49.png
回復(fù)

使用道具 舉報

10#
ID:1061677 發(fā)表于 2024-6-3 10:05 | 只看該作者
wswkaishi 發(fā)表于 2024-6-2 20:30
矩陣鍵盤的原理是八個引腳有4個是輸入,四個是輸出。然后讓這四個輸出一次輸出高電平,然后檢測四個輸入哪 ...

這樣理解好像確實沒啥問題,但是這個51它又不想stm32可以用程序設(shè)置IO口為輸入模式還是輸出模式。所以我想問的是給P2賦值0xf0是不是就是意味著把這個值寫在了鎖存器中,然后switch(P2)應(yīng)該是讀外部引腳的值。
回復(fù)

使用道具 舉報

11#
ID:1109793 發(fā)表于 2024-6-3 10:56 | 只看該作者
yzw846562238 發(fā)表于 2024-6-3 08:48
也可以是6個輸出2個輸入、5個輸出3個輸入等等組合哦,矩陣很多樣式的,也有2*2、2*3等等

2*2有意義?四個IO,直接用4個按鍵接地可以不
回復(fù)

使用道具 舉報

12#
ID:624769 發(fā)表于 2024-6-3 12:49 | 只看該作者
你就這樣理解, P2  寄存器 有兩個,  一個 只讀  一個只寫。
當(dāng)你讀 P2 的時候,就獲得  IO 當(dāng)前的真實電平狀態(tài)。
當(dāng)你寫 P2 的時候,就是讓你 P2口  輸出你期望的電平狀態(tài), 但是受限于IO驅(qū)動能力有限,IO口的實際電平會被外部電路影響有所改變, 所以 通過寫P2 和 讀P2 這個組合動作,可以用來 分析距陣鍵盤的按鍵情況。
回復(fù)

使用道具 舉報

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

OK,這樣說感覺也對。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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