久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 關于單片機矩陣鍵盤界面切換 [打印本頁]

作者: 李小蟲    時間: 2024-2-18 15:49
標題: 關于單片機矩陣鍵盤界面切換
原理圖上p33和p32分別對應外部中斷0和外部中斷1,我目前的代碼功能能夠通過s4,s5拉低電平觸發中斷切換界面,但是s8和s9的功能我沒有合適的思路加進去,我試了把p42口置1來區分,但是p33口默認就是高電平,低電平觸發中斷,沒法正常實現。有沒有好大哥能分享一下思路

屏幕截圖 2024-02-18 154118.png (42.31 KB, 下載次數: 95)

原理圖

原理圖

屏幕截圖 2024-02-18 154150.png (633.79 KB, 下載次數: 105)

需求

需求

作者: xianfajushi    時間: 2024-2-19 07:45
計數切換當等于1執行1當等于2執行2
作者: xiaobendan001    時間: 2024-2-19 09:09
4*4的鍵盤不是要通過掃描獲得16個按鍵的狀態,然后哪個用了干啥再決定嗎?掃描就掃描,和中斷有啥關系
作者: xiaobendan001    時間: 2024-2-19 09:31
我買了一個成品的3*4的那種,手感還不錯。
  1. switch(keysm){
  2.         case 1:
  3.         if(!key_l1)key_1 = 0;else key_1 = 1;
  4.         if(!key_l2)key_2 = 0;else key_2 = 1;
  5.         if(!key_l3)key_3 = 0;else key_3 = 1;
  6.         break;
  7.         case 2:
  8.         if(!key_l1)key_4 = 0;else key_4 = 1;
  9.         if(!key_l2)key_5 = 0;else key_5 = 1;
  10.         if(!key_l3)key_6 = 0;else key_6 = 1;
  11.         break;
  12.         case 3:
  13.         if(!key_l1)key_7 = 0;else key_7 = 1;
  14.         if(!key_l2)key_8 = 0;else key_8 = 1;
  15.         if(!key_l3)key_9 = 0;else key_9 = 1;
  16.         break;
  17.         case 4:
  18.         if(!key_l1)key_x = 0;else key_x = 1;
  19.         if(!key_l2)key_0 = 0;else key_0 = 1;
  20.         if(!key_l3)key_j = 0;else key_j = 1;
  21.         break;
  22.         default:
  23.         break;
  24.         }
  25. keysm++;if(keysm>4)keysm = 1;
  26. key_h1 = 1;key_h2 = 1;key_h3 = 1;key_h4 = 1;
  27. switch(keysm){
  28.         case 1:
  29.         key_h1 = 0;
  30.         break;
  31.         case 2:
  32.         key_h2 = 0;
  33.         break;
  34.         case 3:
  35.         key_h3 = 0;
  36.         break;
  37.         case 4:
  38.         key_h4 = 0;
  39.         break;
  40.         default:
  41.         break;
  42.         }
復制代碼

這樣識別12個按鍵的狀態
作者: 李小蟲    時間: 2024-2-19 11:04
xiaobendan001 發表于 2024-2-19 09:09
4*4的鍵盤不是要通過掃描獲得16個按鍵的狀態,然后哪個用了干啥再決定嗎?掃描就掃描,和中斷有啥關系

我的想法是放到中斷里不是能實時切換嗎,放到程序里切換可能會不太靈敏吧
作者: xiaobendan001    時間: 2024-2-19 13:44
李小蟲 發表于 2024-2-19 11:04
我的想法是放到中斷里不是能實時切換嗎,放到程序里切換可能會不太靈敏吧

對于界面顯示,幾個微秒的時間眼睛是看不到的。幾毫秒也看不到,所以沒必要切換那么快。而且這也不是你切換的速度,是按鍵反應速度。
作者: hhh402    時間: 2024-2-25 00:11
樓主用中斷來判斷是不對的,按鍵會抖動,會多次觸發中斷。先判斷按鍵,再決定按鍵的功能。
作者: joyb    時間: 2024-2-25 08:44
xiaobendan001 發表于 2024-2-19 09:31
我買了一個成品的3*4的那種,手感還不錯。

這樣識別12個按鍵的狀態

請說明一下原理,key如何排列的
作者: 明日之星8    時間: 2024-2-25 09:38
中斷方式要先處理防抖,可以并聯小電容實現消抖。
但是你這種矩陣按鍵一般都是用掃描方式而不用擔心
抖動問題。
作者: a399288395    時間: 2024-2-25 09:43
看看我之前帖子; 只要獲得了正確的鍵值后, 想怎么處理就怎么處理;
http://www.zg4o1577.cn/bbs/dpj-227062-1.html
作者: 君工創    時間: 2024-2-25 10:59
矩陣鍵盤不需要用中斷,用掃描就可以了。
作者: xiaobendan001    時間: 2024-2-25 11:49
joyb 發表于 2024-2-25 08:44
請說明一下原理,key如何排列的

排列就是矩陣啊,樓主不是有個原理圖啊,就是那樣的,總共7根線。
原理就是每行輸出一個低,然后度每列的值,確定每個按鍵的狀態,總共12個BIT,這樣比較廢時間和空間。但是處理起來比較隨心所欲。
消除抖動可以放在每個BIT的服務里面。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: av电影手机版 | 中文字幕在线网 | 青娱乐国产 | 中文字幕亚洲一区二区三区 | 亚洲精品久久久久久一区二区 | 黄色成人免费在线观看 | 欧美综合一区 | 久久精品中文 | 国产精品亚洲欧美日韩一区在线 | 亚洲电影一区二区三区 | 欧美色综合一区二区三区 | 一区二区三区四区日韩 | 久久久久国产一区二区三区 | 国产一区二区久久 | 精品1区2区3区4区 | 免费中文字幕 | 亚洲欧美激情精品一区二区 | 欧美成人猛片aaaaaaa | 日韩免费一区二区 | 伊人春色在线观看 | 国产成人精品久久二区二区 | 国产一级免费在线观看 | 在线国产视频 | 毛片视频免费观看 | 亚洲美女视频 | 逼逼网| 日日夜夜精品视频 | 成人免费高清 | 日韩成人 | 男人亚洲天堂 | 九九亚洲精品 | 国产成人精品久久二区二区91 | 久久se精品一区精品二区 | 免费成人av网站 | 色在线免费视频 | 久久久精品网站 | 欧美人妇做爰xxxⅹ性高电影 | 成人免费视频一区 | 欧美精品一区在线 | 日韩福利一区 | 国产精品久久久久久婷婷天堂 |