模块化代码在目录另一篇文章
此代码实现
按S1~S10按键输入密码
S11:取消
S12:确认
输入密码:3456 LCD1602 显示 OK
否则 显示 ERR
代码如下:
#include <REGX52.H>
#include "Delay.h"
#include "MatrixKey.h"
#include "LCD1602.h"
/*
´Ë´úÂëÔÚSTC89C52¿ª·¢°åʵÏÖ£º
ͨ¹ý°´ÏÂ4X4¾ØÕó¼üÅ̵ÄÏàÓ¦°´Å¥
ÔÚÒº¾§ÆÁÉÏÏÔʾ¶ÔÓ¦¼üÂë
ÀýÈ磺°´ÏÂS9°´Å¥ ÔòÒº¾§ÆÁÏÔʾ£º
KKeyNum:
09
*/
unsigned char KeyNum;
unsigned int password;
unsigned int count;
void main()
{
LCD_Init();
LCD_ShowString(1,1,"passbook:");
while(1)
{
KeyNum=Matrixkey();
if(KeyNum)
{
if(KeyNum<=10)
{
if(count<4)
{
password*=10;
password+=KeyNum%10;
count++;
}
LCD_ShowNum(2,1,password,4);
}
if(KeyNum==11)
{
KeyNum=0;
password=0;
count=0;
LCD_ShowNum(2,1,password,4);
}
if(KeyNum==12)
{
if(password==3456)
{
LCD_ShowString(1,12,"OK ");
}
if(password!=3456)
{
LCD_ShowString(1,12,"ERR");
}
}
}
}
}