2021-07-30

C51矩阵键盘+LPC1602显示

P1_(0,1,2,3,4,5,6,7)引脚控制16个按键
矩阵按键
通过扫描法实现按键使用
代码如下

P1=0XFF;
	P1_3=0;
	if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=1;}
	if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=5;}
	if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=9;}
	if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=13;}
	P1=0XFF;
	P1_2=0;
	if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=2;}
	if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=6;}
	if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=10;}
	if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=14;}
	P1=0XFF;
	P1_1=0;
	if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=3;}
	if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=7;}
	if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=11;}
	if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=15;}
	P1=0XFF;
	P1_0=0;
	if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=4;}
	if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=8;}
	if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=12;}
	if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=16;}
	return keynumber;

如何实现LPC1602显示相应按键数字
通过将按键对应数字赋值给形参变量,作为返回值给到主函数(主函数已经添加lpc1602.c和lpc1602.h文件),将返回值通过调用LCD_shownum( , , , ,)函数显示相应按键数字
关键处
if(返回值非零)
{实现显示操作}
如何做一个4位密码锁
1.通过移位来实现
//password*=10;
password+=number%10;//
2.实现4位输入,之后输入无效
int count=0;
if(count<4){进行移位代码}
count++;
3.控制只有按键1到10才显示对应数字(10显示0)
if(返回值<=10)
{…}
4.实现按键11判断密码对错

if(number==11)
 {
		if(password==1314)
			{
			     LCD_ShowString(2,1,"you are right!"); 
			}
		else
			{
				 LCD_ShowString(2,1,"you are false!");
			}
 }

5.实现按键12复位(4位全部清零)

 if(number==12)
{ 
LCD_Init();
password=0;
count=0;
LCD_ShowString(2,1,"ONCE AGAIN!");
LCD_ShowString(1,1,"shownum:");
}

遗留问题(未解决)
当设定密码为0开头(0111…)
无法实现输入相应密码依旧错误,问题可能出现在if(返回值非零){…}返回值非零才进行接下来的代码操作,第一为零时,语句就没有进行操作使得密码错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值