|
發布時間: 2020-3-7 17:37
正文摘要:4×4矩陣鍵盤程序,檢測哪個按鍵被按下?當寫成0x0f的時候,會有一列按鍵無法使用,改成0xf0的時候就可以使用,請親們幫忙分析一下原因 |
| 0xf0的二進制是11110000,0x0f的二進制是00001111,按鍵掃描會有點差別, |
sunquanfeng 發表于 2020-3-7 23:46 仿真正常實驗板不正常的可能原因: 1.仿真圖與實物圖不一致 2.實驗板上跳線、插針之類轉換電路預置錯誤 |
Sube 發表于 2020-3-7 20:47 判斷是否有鍵按下,可否用0xf0,個人認為可以,但是用了就會出現第三列無法點亮,protues仿真沒問題每列都可以點亮,上實驗板就第三列不亮 |
sunquanfeng 發表于 2020-3-7 19:46 0XEF為1110 1111,按鍵按下后只會被拉低,不會被拉高。 |
| 0XF0轉化為二進制為1111 0000,此時P0.1,P0.1,P0.2,P0.3引腳對應0000為低電平,而另外4個引腳對應1111為高電平,當某一列被按下后,比如第一列(P2.4),那么P2.4引腳會被拉低為低電平,由此可以判斷哪一列按下。接著用同樣的方法掃描行。 |
lihuailiang 發表于 2020-3-7 19:28 用0xef為什么不行呢?請指教 |
| 你這沒貼出完整的掃描程序,不好判斷,不要截屏直接貼出程序吧 |
|
如果式0x0f,檢測這一行應該為P2=0xfe。 、 |
huangwb0113 發表于 2020-3-7 18:16 0x0f的二進制是00001111好不好,你那二進制的是0x08 |
| 寫成0x0f和0xf0的區別:OX0f是讀低4位,而0xf0是讀高4位 |
huangwb0113 發表于 2020-3-7 18:16 不是00001000吧?是00001111 |
| 0x0f 是十六進制顯示,轉化問二進制為0001000,所以第二行不顯示 |
| 第三列按鍵無法使用 |