zoukankan      html  css  js  c++  java
  • 1602 LCDKeypad Shield

    LCD Keypad Shield 是一款提供2行16字符液晶显示的Arduino扩展板。扩展了多个按键输入,可供用户作为LCD显示屏的菜单选择按键或者操控按键使用。

    具有对比度调节和背光灯,使用1个模拟口便完成5个按键的输入,1个复位按键,未使用的IO口都扩展出来备用,充分利用IO口。占用数字端口:PIN4(DB4),5(DB5),6(DB6),7(DB7),8(RS),9(E),10(背光控制),模拟按键端口A0。

    按键控制

     1 #include <LiquidCrystal.h>
     2 
     3 /*******************************************************
     4 
     5 这个程序用来测试LCD液晶显示模块和5个按键。
     6 
     7 ********************************************************/
     8 
     9 // 选择LCD上使用到的引脚
    10 LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    11 
    12 // 定义各按键
    13 int lcd_key     = 0;
    14 int adc_key_in  = 0;
    15 
    16 #define btnRIGHT  0
    17 #define btnUP     1
    18 #define btnDOWN   2
    19 #define btnLEFT   3
    20 #define btnSELECT 4
    21 #define btnNONE   5
    22 
    23 //读取按键值
    24 int read_LCD_buttons()
    25 {
    26  adc_key_in = analogRead(0);          // 从模拟口0读值 
    27  // 直接读到的5个按键值在以下值附近:0,144,329,504,741
    28  // 通过设定不同的阀值,就可以对应读到相应的按键
    29  if (adc_key_in > 1000) return btnNONE; 
    30  if (adc_key_in < 50)   return btnRIGHT;  
    31  if (adc_key_in < 250)  return btnUP; 
    32  if (adc_key_in < 450)  return btnDOWN; 
    33  if (adc_key_in < 650)  return btnLEFT; 
    34  if (adc_key_in < 850)  return btnSELECT;  
    35 
    36  // V1.0的版本使用以下的阀值:
    37 /*
    38  if (adc_key_in < 50)   return btnRIGHT;  
    39  if (adc_key_in < 195)  return btnUP; 
    40  if (adc_key_in < 380)  return btnDOWN; 
    41  if (adc_key_in < 555)  return btnLEFT; 
    42  if (adc_key_in < 790)  return btnSELECT;   
    43 */
    44 
    45  return btnNONE; 
    46 }
    47 
    48 void setup()
    49 {
    50  lcd.begin(16, 2);              // 开始
    51  lcd.setCursor(0,0);
    52  lcd.print("Push the buttons"); // 输出“Push the buttons”
    53 }
    54  
    55 void loop()
    56 {
    57  lcd.setCursor(9,1);            // 光标定在第二行,空开9格
    58  lcd.print(millis()/1000);      // 输出等待时间
    59 
    60 
    61  lcd.setCursor(0,1);            // 光标移动到第二行开头
    62  lcd_key = read_LCD_buttons();  // 读取按键
    63 
    64  switch (lcd_key)               // 选择按键
    65  {
    66    case btnRIGHT:
    67      {
    68      lcd.print("RIGHT ");
    69      break;
    70      }
    71    case btnLEFT:
    72      {
    73      lcd.print("LEFT   ");
    74      break;
    75      }
    76    case btnUP:
    77      {
    78      lcd.print("UP    ");
    79      break;
    80      }
    81    case btnDOWN:
    82      {
    83      lcd.print("DOWN  ");
    84      break;
    85      }
    86    case btnSELECT:
    87      {
    88      lcd.print("SELECT");
    89      break;
    90      }
    91      case btnNONE:
    92      {
    93      lcd.print("NONE  ");
    94      break;
    95      }
    96  }
    97 }
    按键控制
    作者:儒良设计

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 相关阅读:
    20145321《网络对抗技术》逆向与Bof基础
    20145321 《信息安全系统设计基础》课程总结
    20145319 《网络渗透》免考-恶意代码隐藏相关技术
    20145319 《网络渗透》免考—逆向脱壳技术
    20145319 《网络渗透》免考—病毒感染
    20145319 《网络渗透》免考—进程隐藏
    20145319 《网络渗透》免考—远程注入
    20145319 《网络渗透》免考—API拦截技术
    20145319 《网络渗透》免考—任务栏隐藏
    20145319 《计算机病毒》实践三
  • 原文地址:https://www.cnblogs.com/bymeet/p/15143621.html
Copyright © 2011-2022 走看看