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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1896|回復: 1
打印 上一主題 下一主題
收起左側

51單片機+LCD1602+4*4矩陣鍵盤做的密碼鎖代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:551638 發(fā)表于 2023-4-14 14:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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

代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:262 發(fā)表于 2023-4-14 23:42 | 只看該作者
樓主能分享一下原理圖嗎?
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品久久久久久 | 欧美精品一区在线 | 爱操影视| 日本精品999| 在线成人免费视频 | 天堂视频免费 | 国产91久久久久久 | 日韩免费视频一区二区 | 亚洲一区二区视频 | 亚洲欧美在线观看视频 | 日韩精品一区二区三区 | heyzo在线 | 91操操操| 欧美黄色片 | jav成人av免费播放 | 91精品久久久久久久久99蜜臂 | 成人一区二区在线 | 欧美性jizz18性欧美 | 天天艹日日干 | 欧美一区二区三区久久精品 | 成人二区| 成人亚洲网站 | 久久久久99 | 国产精品不卡 | 91成人免费看 | 自拍 亚洲 欧美 老师 丝袜 | 91精品国产91综合久久蜜臀 | 国产精品99久久久久久动医院 | 国产伦一区二区三区视频 | 午夜免费视频 | 亚洲久在线 | 亚洲高清在线 | 欧美精品1区2区3区 精品国产欧美一区二区 | 日韩av在线免费 | 天天曰天天曰 | 日本黄色大片免费看 | 综合亚洲视频 | 91精品在线播放 | 成人欧美一区二区三区在线观看 | 欧美成人在线网站 | 91在线视频一区 |