欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 學51單片機-搞定矩陣鍵盤 [打印本頁]

作者: jiajiamei    時間: 2015-3-24 22:57
標題: 學51單片機-搞定矩陣鍵盤
      
      矩陣按鍵貌似是學51單片機里面必備的一課,現在基本所有的51開發板都帶這部分電路。因為它用8個IO口實現了16個按鍵的掃描檢測,實現了IO口更充分的利用。
      掃描矩陣按鍵的程序說簡單也簡單,說復雜也復雜。說它簡單,是因為現在網絡太發達了,隨便搜索一下,都能找到可以直接用的源碼。說它復雜,是因為如果不借助網絡,全憑自己去摸索,確實要花一部分時間。
      我當時是性子比較倔,只在網上看了矩陣按鍵的原理,沒有看參考代碼,完全憑借自己的理解,寫了一段矩陣按鍵的掃描程序,花了三天時間才調試通。那三天,真的是折騰的死去活來,但是當程序調好的時候,真的感覺自己還是很拉風的。
      這里,不是讓大家學我那樣去閉門造車,因為太費時間了?催^一個高手說的一段話:寄存器不用死記硬背,我做了那么久單片機項目的開發,連一個寄存器都記不住。需要配置寄存器的時候,直接在網上或者書本上參考別人現成的配置程序是上策,查找芯片數據手冊是中策,死記硬背寄存器是最最下策。
      直接參考別人現成的配置程序是上策,但是一定要理解,否則會出現根基不穩、知其然不知其所以然的情況!
      繼續說矩陣鍵盤,上電路:
      注意,前面廢話了很多,現在開始說原理:
程序掃描時,給P3口賦值就0Xfe。然后讀取高四位的電平,因為此時無按鍵觸發,所以高四位狀態是1111 (二進制數)。
      假設此時S1被按下,高四位會變成什么?1110(二進制數),S1對應的編碼就是:0B11101110.
      假設是S3被按下,高四位會變成什么?1011(二進制數),S3對應的編碼就是:0B10111110
因為S1被按下,所以低四位的狀態會變成1110(二進制數)。
將兩次得到的P3口狀態進行邏輯或運算,就能得到按鍵S1對應的編碼:0B1110 1110.每個按鍵都會有一個編碼,我們只需要對他們的編碼進行比對,就知道按下了哪個按鍵。
注意:編碼的確認是在矩陣電路確定后,就已經隨著電路固定了。
因為程序比較多,我就不在這里貼了,這次是矩陣按鍵控制數碼管顯示,從0~F。程序里會加注釋。
下載地址: 44矩陣.zip (57.68 KB, 下載次數: 209) 44KEY.zip (32.81 KB, 下載次數: 149)





作者: 小油菜    時間: 2017-2-11 15:21
嗯,講的不錯
作者: 小油菜    時間: 2017-2-11 15:22
講的真的挺好
作者: 51嘿嘿嘿51    時間: 2017-3-15 23:29
不錯不錯
作者: 51嘿嘿嘿51    時間: 2017-3-15 23:30
嘿嘿嘿
作者: frf51study    時間: 2017-4-25 15:11
講得很好,清楚明白易懂
作者: 初學者呆呆    時間: 2017-5-11 09:32
新手來學習啦
作者: 不吃草的牛    時間: 2017-9-13 11:22
看了樓主的貼子總算搞清是什么原理了
作者: 1780656612    時間: 2017-10-27 20:51
謝謝分享了
作者: qiuqiu1122    時間: 2017-12-22 11:18
學習了
作者: 9043    時間: 2018-1-16 11:59
說的很在理啊
作者: nuidx    時間: 2018-5-8 00:04
謝謝分享,太感謝了
作者: 池羨    時間: 2018-11-5 08:32
講得很好
作者: monthyasha    時間: 2018-12-2 21:18
非常感謝
作者: monthyasha    時間: 2018-12-3 15:30
不知道能不能將獨立鍵盤與矩陣鍵盤聯合在一起?其實分開就好了吧……
作者: monthyasha    時間: 2018-12-7 07:46
這的非常感謝您的解答!
作者: liu631208    時間: 2019-1-19 19:02
講的真的挺好
作者: L1BB    時間: 2019-7-27 14:48
謝謝分享

作者: 1580864544    時間: 2020-5-13 14:49
還是厲害
作者: 王天庫    時間: 2021-12-30 21:53

講的真的挺好




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1