用51單片機的矩陣鍵盤結合LCD1602設計密碼鎖時,輸入密碼與設置的密碼一直但是提示錯誤,如果四位密碼都一樣則正確,麻煩各位大佬看看。
詳細代碼見
51單片機矩陣密碼鎖問題
問題描述:設置的密碼和輸入密碼一致卻顯示錯誤。
程序如下:
#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 密碼區1-10
{
Password_1=KeyNum%10;//按鍵對應密碼數字 第一位密碼
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)//刪除已經輸入的密碼
{
}*/
}
}
}
LCD實物顯示如下:
但如果密碼設置成8888,輸入8888就能顯示right
|