久久久久久久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
主站蜘蛛池模板: 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 九九久久久| 欧洲精品一区 | 成人性视频免费网站 | 午夜男人免费视频 | 亚洲精品天堂 | 91一区二区三区在线观看 | 国产精品欧美一区二区三区不卡 | 成人一级片在线观看 | 亚洲国产成人精 | 在线播放国产一区二区三区 | 午夜精品久久久久久久久久久久 | 天天操夜夜爽 | 午夜精品在线观看 | 国产精品久久精品 | 免费观看一级毛片 | 羞羞的视频在线 | 国产成人免费视频网站视频社区 | 久久久性色精品国产免费观看 | 一级在线视频 | 亚洲第一网站 | 久久中文视频 | 欧美一区在线视频 | 亚洲网在线| 国产综合久久久久久鬼色 | 一二区成人影院电影网 | 久夜精品 | 男女污污网站 | 美女三区 | 婷婷色婷婷 | 在线观看中文字幕亚洲 | 日本在线中文 | 久久综合九色综合欧美狠狠 | 操久久| 狠狠操电影 | 久久久久久久久久久久久久久久久久久久 | 91精品国产色综合久久 | 国产福利在线 | 精品欧美一区二区三区久久久 | 国产精品欧美一区二区三区不卡 | 色偷偷888欧美精品久久久 |