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

標題: 51單片機+LCD1602+4*4矩陣鍵盤做的密碼鎖代碼 [打印本頁]

作者: 1842559923    時間: 2023-4-14 14:14
標題: 51單片機+LCD1602+4*4矩陣鍵盤做的密碼鎖代碼
51單片機+LCD1602+4*4矩陣鍵盤做的密碼鎖
密碼可以輸入10位數
  1. #include <REGX52.H>
  2. #include "Delay.h"
  3. #include "LCD1602.h"
  4. #include "MatrixKey.h"

  5. unsigned char KeyNum;
  6. unsigned long Password,Count;

  7. void main()
  8. {
  9.         LCD_Init();
  10.         LCD_ShowString(1,1,"Password:");
  11.         while(1)
  12.         {
  13.                 KeyNum=MatrixKey();
  14.                 if(KeyNum)
  15.                 {
  16.                         if(KeyNum<=10)        //如果S1~S10按鍵按下,輸入密碼
  17.                         {
  18.                                 if(Count<4)        //如果輸入次數小于4
  19.                                 {
  20.                                         Password*=10;                                //密碼左移一位
  21.                                         Password+=KeyNum%10;                //獲取一位密碼
  22.                                         Count++;        //計次加一
  23.                                 }
  24.                                 LCD_ShowNum(2,1,Password,4);        //更新顯示
  25.                         }
  26.                         if(KeyNum==11)        //如果S11按鍵按下,確認
  27.                         {
  28.                                 if(Password==2345)        //如果密碼等于正確密碼
  29.                                 {
  30.                                         LCD_ShowString(1,14,"OK ");        //顯示OK
  31.                                         Password=0;                //密碼清零
  32.                                         Count=0;                //計次清零
  33.                                         LCD_ShowNum(2,1,Password,4);        //更新顯示
  34.                                 }
  35.                                 else                                //否則
  36.                                 {
  37.                                         LCD_ShowString(1,14,"ERR");        //顯示ERR
  38.                                         Password=0;                //密碼清零
  39.                                         Count=0;                //計次清零
  40.                                         LCD_ShowNum(2,1,Password,4);        //更新顯示
  41.                                 }
  42.                         }
  43.                         if(KeyNum==12)        //如果S12按鍵按下,取消
  44.                         {
  45.                                 Password=0;                //密碼清零
  46.                                 Count=0;                //計次清零
  47.                                 LCD_ShowNum(2,1,Password,4);        //更新顯示
  48.                         }
  49.                 }
  50.         }
  51. }
復制代碼

  1. #include <REGX52.H>
  2. #include "Delay.h"

  3. /**
  4.   * @brief  矩陣鍵盤讀取按鍵鍵碼
  5.   * @param  無
  6.   * @retval KeyNumber 按下按鍵的鍵碼值
  7.                         如果按鍵按下不放,程序會停留在此函數,松手的一瞬間,返回按鍵鍵碼,沒有按鍵按下時,返回0
  8.   */
  9. unsigned char MatrixKey()
  10. {
  11.         unsigned char KeyNumber=0;
  12.        
  13.         P1=0xFF;
  14.         P1_3=0;
  15.         if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=1;}
  16.         if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=5;}
  17.         if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=9;}
  18.         if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=13;}
  19.        
  20.         P1=0xFF;
  21.         P1_2=0;
  22.         if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=2;}
  23.         if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=6;}
  24.         if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=10;}
  25.         if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=14;}
  26.        
  27.         P1=0xFF;
  28.         P1_1=0;
  29.         if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=3;}
  30.         if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=7;}
  31.         if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=11;}
  32.         if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=15;}
  33.        
  34.         P1=0xFF;
  35.         P1_0=0;
  36.         if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=4;}
  37.         if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=8;}
  38.         if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=12;}
  39.         if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=16;}
  40.        
  41.         return KeyNumber;
  42. }
復制代碼


矩陣鍵盤密碼鎖.rar

43.54 KB, 下載次數: 17, 下載積分: 黑幣 -5

代碼


作者: heicad    時間: 2023-4-14 23:42
樓主能分享一下原理圖嗎?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 天堂中文在线观看 | 欧美日韩国产欧美 | 成人午夜视频在线观看 | 欧美久久一级 | 免费观看的黄色网址 | 日韩at | 在线欧美日韩 | 午夜精品久久久久久久星辰影院 | 每日在线更新av | 久久视频一区 | 国产亚洲精品久久久久动 | 18gay男同69亚洲网站 | 久久精品二区亚洲w码 | www亚洲精品 | 午夜精品久久久久久久99黑人 | 九九精品在线 | 国产精品区二区三区日本 | 欧美视频三区 | 免费毛片www com cn | 99精品观看 | 久久久视频在线 | 久久久网 | 日韩精品一区二区三区 | av网站免费看 | 国家aaa的一级看片 h片在线看 | 成人啊啊啊 | 欧美日韩精品一区二区 | 午夜在线观看视频 | 国产美女黄色片 | 婷婷综合网 | 亚洲精品乱码久久久久久蜜桃91 | 伊人激情网 | 一级毛片成人免费看a | 黄色日批视频 | 免费的日批视频 | 四虎成人免费视频 | 亚洲综合热| 热re99久久精品国产99热 | 亚洲在线免费观看 | 亚洲高清av| 久久免费视频观看 |