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

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

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

單片機源程序如下:
  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. }
復制代碼

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






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 拍真实国产伦偷精品 | 亚洲精品久久久久久国产精华液 | 伊人导航| 一级特黄a大片 | a a毛片| 亚洲国产精品99久久久久久久久 | 免费观看一级毛片视频 | 国产精品久久久久久久久久久久久 | 亚洲精品国产综合区久久久久久久 | 毛片免费视频 | 91精品久久久久久综合五月天 | 精品永久 | 欧美日韩专区 | 欧美精品一区二区三区一线天视频 | www.久久.com | 在线 丝袜 欧美 日韩 制服 | 国产精品免费一区二区三区四区 | 欧美一级片久久 | 搞av.com| 精精国产xxxx视频在线播放7 | 亚洲日韩欧美一区二区在线 | 欧美成人一区二免费视频软件 | 日韩久久久久 | 无码一区二区三区视频 | 人人看人人干 | 谁有毛片| 精品动漫一区 | 日韩欧美在线观看一区 | www.久草| 91精品国产色综合久久不卡蜜臀 | 国产精品乱码一区二区三区 | 国产欧美精品区一区二区三区 | 亚洲国产精品久久久久秋霞不卡 | 特级毛片www | 日韩国产黄色片 | 国产乱码精品1区2区3区 | 国内精品免费久久久久软件老师 | 一级一片在线观看 | 六月色婷 | 亚洲国产精品自拍 | 欧美精品一区二区在线观看 |