找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1430|回復: 4
打印 上一主題 下一主題
收起左側(cè)

51單片機矩陣鍵盤密碼鎖提示錯誤?附程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1077092 發(fā)表于 2023-5-12 17:31 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
用51單片機的矩陣鍵盤結(jié)合LCD1602設(shè)計密碼鎖時,輸入密碼與設(shè)置的密碼一直但是提示錯誤,如果四位密碼都一樣則正確,麻煩各位大佬看看。
詳細代碼見
51單片機矩陣密碼鎖問題
問題描述:設(shè)置的密碼和輸入密碼一致卻顯示錯誤。
程序如下:
#include <REGX52.H>
#include <LCD1602.H>
#include "Delay.H"
#include "MatrixKey.H"
void main()
{
    unsigned char KeyNum=0;
    unsigned char Password_1,Password_2,Password_3,Password_4;
    unsigned char count=0;
    LCD_Init();
    while(1)
    {
        LCD_ShowString(1,1,"Password:");//LCD printf
        KeyNum=MatrixKey();//scanf MatrixKey 把按鍵的值賦給KeyNum,
        if(KeyNum!=0)//檢測按鍵被按下
        {
            count++;
            if(KeyNum<=10)//s1-s10 Input Password 密碼區(qū)1-10
            {
                Password_1=KeyNum%10;//按鍵對應密碼數(shù)字 第一位密碼
                Password_2=KeyNum%10;//第二位密碼
                Password_3=KeyNum%10;//第三位密碼
                Password_4=KeyNum%10;//第四位密碼
            }//四位密碼
                switch(count)
                {
                    case 1:LCD_ShowNum(2,1,Password_1,1);break;
                    case 2:LCD_ShowNum(2,2,Password_2,1);break;
                    case 3:LCD_ShowNum(2,3,Password_3,1);break;
                    case 4:LCD_ShowNum(2,4,Password_4,1);break;
                }   
            if(KeyNum==11)//按下第11個鍵確認輸入的密碼
            {
                if(Password_1==8&&Password_2==8&&Password_3==8&&Password_4==7)
                {
                LCD_ShowString(2,6,"Right!");
                }
                else
                {
                LCD_ShowString(2,6,"Wrong!");
                }
            }
            /*if(KeyNum==12)//刪除已經(jīng)輸入的密碼
            {
               
            }*/
        }
    }
}
LCD實物顯示如下:

但如果密碼設(shè)置成8888,輸入8888就能顯示right

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

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2023-5-12 18:49 | 只看該作者
莫不是密碼順序被你顛倒了
回復

使用道具 舉報

板凳
ID:883242 發(fā)表于 2023-5-12 19:10 | 只看該作者
  1.                 Password_1=KeyNum%10;//按鍵對應密碼數(shù)字 第一位密碼
  2.                 Password_2=KeyNum%10;//第二位密碼
  3.                 Password_3=KeyNum%10;//第三位密碼
  4.                 Password_4=KeyNum%10;//第四位密碼
復制代碼


錯誤顯然在這里,4位密碼只有一位是對的。
回復

使用道具 舉報

地板
ID:1077092 發(fā)表于 2023-5-16 19:21 | 只看該作者
Hephaestus 發(fā)表于 2023-5-12 19:10
錯誤顯然在這里,4位密碼只有一位是對的。

強啊,大佬,按你的思路我在這些語句前面又加了switch語句,他就好了。
回復

使用道具 舉報

5#
ID:1077092 發(fā)表于 2023-5-16 19:21 | 只看該作者

RE: 51單片機矩陣鍵盤密碼鎖提示錯誤?附程序

Hephaestus 發(fā)表于 2023-5-12 19:10
錯誤顯然在這里,4位密碼只有一位是對的。

強啊,大佬,按你的思路我在這些語句前面又加了switch語句,他就好了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表