89C52RC芯片
1.矩阵按键输入正确密码,LCD1602右上角显示ok,错误显示Err。
涉及文件:
1.main.c (#include<regx52.h>)
2.lcd1602.c lcd1602.h
3.Delay.c Delay.h
4.MatrixKey.c MetrixKey.h
共7项
![]() |
![]() |
代码
main.c
#include <REGX52.H>
#include "Delay.h" // 延时
#include "LCD1602.h" // LCD1602库
#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) //如果输入次数小于4
{
Password*=10;//密码左移一位
Password+=KeyNum%10;//获取一位密码
Count++; //计次加一
}
LCD_ShowNum(2,1,Password,4);//更新显示
}
if(KeyNum==11)//如果s11按键按下,确认
{
if(Password==6666) //密码正确
{
LCD_ShowString(1,14,"ok ");
Password=0;//密码清零
Count=0; //计数清零
LCD_ShowNum(2,1,Password,4);//更新显示
}else{ //密码错误
LCD_ShowString(1,14,"Err");
Password=0;//密码清零
Count=0; //计数清零
LCD_ShowNum(2,1,Password