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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3636|回復: 0
收起左側

一個簡單的51單片機 4x4 Keypad 測試小程序

[復制鏈接]
ID:406093 發表于 2018-11-21 09:50 | 顯示全部樓層 |閱讀模式
這里介紹一個簡單的51單片機 4x4 Keypad 測試小程序,它同樣可以用在 4x1, 4x2 或者 4x3 Keypad 上。希望對大家有用。

  1. unsigned short kp, cnt, oldstate = 0;
  2. char txt[6];

  3. // Keypad module connections
  4. char keypadPort at P0;
  5. // End Keypad module connections

  6. // Lcd module connections
  7. sbit LCD_RS at P2_0_bit;
  8. sbit LCD_EN at P2_1_bit;

  9. sbit LCD_D4 at P2_2_bit;
  10. sbit LCD_D5 at P2_3_bit;
  11. sbit LCD_D6 at P2_4_bit;
  12. sbit LCD_D7 at P2_5_bit;
  13. // End Lcd module connections

  14. void main() {
  15.   cnt = 0;                                 // Reset counter
  16.   Keypad_Init();                           // Initialize Keypad
  17.   Lcd_Init();                              // Initialize Lcd
  18.   Lcd_Cmd(_LCD_CLEAR);                     // Clear display
  19.   Lcd_Cmd(_LCD_CURSOR_OFF);                // Cursor off

  20.   Lcd_Out(1, 1, "Key  :");                 // Write message text on Lcd
  21.   Lcd_Out(2, 1, "Times:");

  22.   do {
  23.     kp = 0;                                // Reset key code variable

  24.     // Wait for key to be pressed and released
  25.     do
  26.       // kp = Keypad_Key_Press();          // Store key code in kp variable
  27.       kp = Keypad_Key_Click();             // Store key code in kp variable
  28.     while (!kp);
  29.    // Prepare value for output, transform key to it's ASCII value
  30.     switch (kp) {
  31.       //case 10: kp = 42; break;  // '*'   // Uncomment this block for keypad4x3
  32.       //case 11: kp = 48; break;  // '0'   
  33.       //case 12: kp = 35; break;  // '#'
  34.       //default: kp += 48;

  35.       case  1: kp = 49; break; // 1        // Uncomment this block for keypad4x4
  36.       case  2: kp = 50; break; // 2
  37.       case  3: kp = 51; break; // 3
  38.       case  4: kp = 65; break; // A
  39.       case  5: kp = 52; break; // 4
  40.       case  6: kp = 53; break; // 5
  41.       case  7: kp = 54; break; // 6
  42.       case  8: kp = 66; break; // B        
  43.       case  9: kp = 55; break; // 7
  44.       case 10: kp = 56; break; // 8
  45.       case 11: kp = 57; break; // 9
  46.       case 12: kp = 67; break; // C
  47.       case 13: kp = 42; break; // *
  48.       case 14: kp = 48; break; // 0
  49.       case 15: kp = 35; break; // #
  50.       case 16: kp = 68; break; // D

  51.     }

  52.     if (kp != oldstate) {                  // Pressed key differs from previous
  53.       cnt = 1;
  54.       oldstate = kp;
  55.       }
  56.     else {                                 // Pressed key is same as previous
  57.       cnt++;
  58.       }

  59.     Lcd_Chr(1, 10, kp);                    // Print key ASCII value on Lcd

  60.     if (cnt == 255) {                      // If counter varialble overflow
  61.       cnt = 0;
  62.       Lcd_Out(2, 10, "   ");
  63.       }

  64.     WordToStr(cnt, txt);                   // Transform counter value to string
  65.     Lcd_Out(2, 10, txt);                   // Display counter value on Lcd
  66.   } while (1);
  67. }
復制代碼
相關信息:http://www.zg4o1577.cn/bbs/dpj-136722-1.html

4x4 Keypad.jpg


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区在线视频 | 国产亚洲一区二区三区 | 久久com| 日韩精品一二三区 | 欧美亚洲另类在线 | 国产色99 | 国产露脸对白88av | 欧美日韩美女 | 91婷婷韩国欧美一区二区 | 在线观看国产wwwa级羞羞视频 | 久久国产精品视频 | www国产成人免费观看视频,深夜成人网 | 在线午夜 | www.日韩| 永久免费在线观看 | 天天操天天射综合 | 精品国产一区二区国模嫣然 | 成人欧美一区二区三区白人 | 免费日韩av网站 | 成人日批视频 | 久草在线 | 在线观看国产视频 | 亚洲精品国产偷自在线观看 | 亚洲综合小视频 | 国产精品夜间视频香蕉 | 在线精品一区二区三区 | 欧美极品在线视频 | 99视频在线免费观看 | 久久在线精品 | 久久精品日产第一区二区三区 | 国产精品综合一区二区 | 丝袜久久 | 中文字幕亚洲一区二区三区 | 91亚洲精| 在线中文字幕亚洲 | 国产乱码精品1区2区3区 | 精彩视频一区二区三区 | 亚洲国产一区在线 | 精品日本久久久久久久久久 | 成人精品免费视频 | 日韩欧美中文字幕在线观看 |