標(biāo)題: 51單片機(jī)矩陣鍵盤密碼鎖提示錯(cuò)誤?附程序 [打印本頁]

作者: 菜鳥的菜鳥一號(hào)    時(shí)間: 2023-5-12 17:31
標(biāo)題: 51單片機(jī)矩陣鍵盤密碼鎖提示錯(cuò)誤?附程序
用51單片機(jī)的矩陣鍵盤結(jié)合LCD1602設(shè)計(jì)密碼鎖時(shí),輸入密碼與設(shè)置的密碼一直但是提示錯(cuò)誤,如果四位密碼都一樣則正確,麻煩各位大佬看看。
詳細(xì)代碼見
51單片機(jī)矩陣密碼鎖問題
問題描述:設(shè)置的密碼和輸入密碼一致卻顯示錯(cuò)誤。
程序如下:
#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;//按鍵對(duì)應(yīng)密碼數(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個(gè)鍵確認(rèn)輸入的密碼
            {
                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í)物顯示如下:

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


作者: wulin    時(shí)間: 2023-5-12 18:49
莫不是密碼順序被你顛倒了
作者: Hephaestus    時(shí)間: 2023-5-12 19:10
  1.                 Password_1=KeyNum%10;//按鍵對(duì)應(yīng)密碼數(shù)字 第一位密碼
  2.                 Password_2=KeyNum%10;//第二位密碼
  3.                 Password_3=KeyNum%10;//第三位密碼
  4.                 Password_4=KeyNum%10;//第四位密碼
復(fù)制代碼


錯(cuò)誤顯然在這里,4位密碼只有一位是對(duì)的。
作者: 菜鳥的菜鳥一號(hào)    時(shí)間: 2023-5-16 19:21
Hephaestus 發(fā)表于 2023-5-12 19:10
錯(cuò)誤顯然在這里,4位密碼只有一位是對(duì)的。

強(qiáng)啊,大佬,按你的思路我在這些語句前面又加了switch語句,他就好了。
作者: 菜鳥的菜鳥一號(hào)    時(shí)間: 2023-5-16 19:21
標(biāo)題: RE: 51單片機(jī)矩陣鍵盤密碼鎖提示錯(cuò)誤?附程序
Hephaestus 發(fā)表于 2023-5-12 19:10
錯(cuò)誤顯然在這里,4位密碼只有一位是對(duì)的。

強(qiáng)啊,大佬,按你的思路我在這些語句前面又加了switch語句,他就好了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1