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

標題: arduino_4*4矩陣鍵盤掃描_oled(i2c)顯示_串口顯示程序 [打印本頁]

作者: 耶耶嘿嘿    時間: 2019-7-18 20:50
標題: arduino_4*4矩陣鍵盤掃描_oled(i2c)顯示_串口顯示程序
arduino的4*4矩陣鍵盤的掃描程序oled(i2c)的簡單應(yīng)用顯示

單片機源程序如下:
  1. #include <Wire.h>  //oled SCL——A5 SDA——A4
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #define OLED_RESET 4
  5. Adafruit_SSD1306 display(OLED_RESET);
  6. #define NUMFLAKES 10
  7. #define XPOS 0
  8. #define YPOS 1
  9. #define DELTAY 2
  10. #define LOGO16_GLCD_HEIGHT 16
  11. #define LOGO16_GLCD_WIDTH  16
  12. #if (SSD1306_LCDHEIGHT != 64)
  13. #error("Height incorrect, please fix Adafruit_SSD1306.h!");
  14. #endif

  15. int R1 = 4;//行引腳  
  16. int R2 = 5;
  17. int R3 = 6;
  18. int R4 = 7;
  19. int C1 = 8;//列引腳
  20. int C2 = 9;
  21. int C3 = 10;
  22. int C4 = 11;
  23. int key_Scan();
  24. void pinHigh();
  25. void setup() {
  26.   pinMode(R1, OUTPUT);
  27.   pinMode(R2, OUTPUT);
  28.   pinMode(R3, OUTPUT);
  29.   pinMode(R4, OUTPUT);
  30.   
  31.   pinMode(C1, INPUT_PULLUP);
  32.   pinMode(C2, INPUT_PULLUP);
  33.   pinMode(C3, INPUT_PULLUP);
  34.   pinMode(C4, INPUT_PULLUP);
  35.   
  36.   Serial.begin(115200);
  37.   delay(100);
  38.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  39.   display.fillScreen(WHITE);
  40.   display.display();
  41.   delay(1000);//全屏顯示,檢查是否有壞點
  42.   display.fillScreen(BLACK);
  43.   display.display();
  44.   
  45. }
  46. int i;
  47. void loop(){
  48.     i = key_Scan();
  49.     if(i){
  50.       Serial.print("按下第");
  51.       Serial.print(i);
  52.       Serial.println("個按鍵");
  53.       display.clearDisplay();
  54.       display.setTextSize(2);
  55.       display.setTextColor(WHITE);
  56.       display.setCursor(0,0);
  57.       display.print("NO.key= ");
  58.       display.print(i);
  59.       display.display();  
  60.     }     
  61. }
  62.   
  63. int key_Scan(){
  64.   pinHigh();//掃描第一行
  65.   digitalWrite(R1, LOW);
  66.   if(digitalRead(C1) == LOW){
  67.     while(digitalRead(C1) == LOW);
  68.     return 1;
  69.   }
  70.   if(digitalRead(C2) == LOW){
  71.     while(digitalRead(C2) == LOW);
  72.     return 2;
  73.   }
  74.   if(digitalRead(C3) == LOW){
  75.     while(digitalRead(C3) == LOW);
  76.     return 3;
  77.   }
  78.   if(digitalRead(C4) == LOW){
  79.     while(digitalRead(C4) == LOW);
  80.     return 4;
  81.   }

  82.   pinHigh();//掃描第二行
  83.   digitalWrite(R2, LOW);
  84.   if(digitalRead(C1) == LOW){
  85.     while(digitalRead(C1) == LOW);
  86.     return 5;
  87.   }
  88.   if(digitalRead(C2) == LOW){
  89.     while(digitalRead(C2) == LOW);
  90.     return 6;
  91.   }
  92.   if(digitalRead(C3) == LOW){
  93.     while(digitalRead(C3) == LOW);
  94.     return 7;
  95.   }
  96.   if(digitalRead(C4) == LOW){
  97.     while(digitalRead(C4) == LOW);
  98.     return 8;
  99.   }

  100.   pinHigh();//掃描第三行
  101.   digitalWrite(R3, LOW);
  102.   if(digitalRead(C1) == LOW){
  103.     while(digitalRead(C1) == LOW);
  104.     return 9;
  105.   }
  106.   if(digitalRead(C2) == LOW){
  107.     while(digitalRead(C2) == LOW);
  108.     return 10;
  109.   }
  110.   if(digitalRead(C3) == LOW){
  111.     while(digitalRead(C3) == LOW);
  112.     return 11;
  113.   }
  114.   if(digitalRead(C4) == LOW){
  115.     while(digitalRead(C4) == LOW);
  116.     return 12;
  117.   }

  118.   pinHigh();//掃描第四行
  119.   digitalWrite(R4, LOW);
  120.   if(digitalRead(C1)== LOW){
  121.     while(digitalRead(C1) == LOW);
  122.     return 13;
  123.   }
  124.   if(digitalRead(C2) == LOW){
  125.     while(digitalRead(C2) == LOW);
  126.     return 14;
  127.   }
  128.   if(digitalRead(C3) == LOW){
  129.     while(digitalRead(C3) == LOW);
  130.     return 15;
  131.   }
  132.   if(digitalRead(C4) == LOW){
  133.     while(digitalRead(C4) == LOW);
  134.     return 16;
  135.   }
  136.   return 0;
  137. }

  138. void pinHigh(){
  139.   digitalWrite(R1, HIGH);
  140.   digitalWrite(R2, HIGH);
  141.   digitalWrite(R3, HIGH);
  142.   digitalWrite(R4, HIGH);
  143. }
復(fù)制代碼

所有資料51hei提供下載:
4x4矩陣鍵盤.rar (25.6 KB, 下載次數(shù): 37)






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕色哟哟 | 国产欧美精品一区二区色综合 | 一级黄色片网站 | 久久久久久久网站 | 一级片免费网站 | 91黄色免费视频 | 97色婷婷| 超碰人人艹 | 91黄色免费| 亚洲免费成人 | 人人爽人人澡 | 亚洲一区精品视频 | www久久| 日韩欧美一区二区在线 | 亚洲毛片在线 | 午夜激情小视频 | 中文字幕免费视频 | 欧美日本一区 | av观看网站| 天天艹夜夜艹 | 亚洲精品一区二区三区在线观看 | 午夜久久久久久 | 国产精品海角社区 | 亚洲最大黄色网址 | 欧美日韩在线视频观看 | 91久久奴性调教 | 欧美在线视频一区 | 国产精品成人一区二区网站软件 | 国产激情小说 | 日韩黄色在线视频 | 亚洲福利一区 | 青青草国产精品 | 久久99精品国产麻豆91樱花 | 中文字幕在线视频观看 | 午夜小视频在线观看 | 五月婷婷综合网 | 99午夜 | 免费三级网站 | аⅴ资源新版在线天堂 | 饥渴放荡受np公车奶牛 | 狠狠的操|