主要是对主函数中逻辑的描述
#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"
unsigned char KeyNum;
unsigned int PassWord,Count;
void main()
{
LCD_Init();
LCD_ShowString(1,1,"PassWord:");
while(1)
{
KeyNum=MatrixKey();
if(KeyNum)
{
if(KeyNum<10) //如果S1~S10按键按下,输入密码
{
if(Count<4)
{
PassWord*=10; //密码左移一位
PassWord+=KeyNum % 10; //获取一位密码
Count++;
}
LCD_ShowNum(2,1,PassWord,4);//更新显示
}
if(KeyNum==11)//如果S11按键按下,确认
{
if(PassWord==2345)//如果密码等于正确密码
{
LCD_ShowString(1,14,"OK ");//显示OK
PassWord=0;
Count=0;
LCD_ShowNum(2,1,PassWord,4);//更新显示
}
else
{
LCD_ShowString(1,14,"ERR");//显示ERROR
PassWord=0;
Count=0;
LCD_ShowNum(2,1,PassWord,4);//更新显示
}
}
if(KeyNum==12)//如果S12按键按下,取消
{
PassWord=0;
Count=0;
LCD_ShowNum(2,1,PassWord,4);//更新显示
}
}
}
}