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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:551638 發表于 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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美网站一区二区 | 午夜在线影院 | 成人在线观看免费视频 | 亚洲自拍偷拍视频 | 亚洲精品在线免费看 | 欧美在线播放一区 | 精品国模一区二区三区欧美 | 伊人狠狠干| 亚洲精品久久久久久久久久吃药 | 91在线观看免费 | 91精品国产91久久综合桃花 | 成人精品国产 | 欧美一区2区三区4区公司二百 | 成人在线国产 | 成人精品国产一区二区4080 | 免费小视频在线观看 | 欧美中文字幕一区二区 | 99精品一区二区三区 | www.国产.com| 中文字幕日韩专区 | 国产一区二区在线播放 | 亚洲日本一区二区 | 亚洲综合第一页 | 亚洲精品一区二区三区在线 | 99riav国产一区二区三区 | 91亚洲国产成人精品一区二三 | 中文字幕免费中文 | 性做久久久久久免费观看欧美 | 伊人久久在线 | 97在线超碰| 91精品国产综合久久久动漫日韩 | 一级片视频免费观看 | 亚洲性视频| 日本黄色大片免费 | 91 视频网站 | 成人免费小视频 | 日本一二区视频 | 91久久久久久久久久久久久 | 99精品电影 | 日韩午夜精品 | 国产免费视频在线 |