51单片机学习

矩阵键盘

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"

unsigned char KeyNum;
    
void main()
{                
        LCD_Init();
        while(1)
        {
            KeyNum=MatrixKey();
            
            if(KeyNum)
            {
                    LCD_ShowNum(1,1,KeyNum,2);
            }
        }
}

矩阵键盘密码锁(主函数)

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"

unsigned char KeyNum;
unsigned int Password;
unsigned int Count=0;
void main()
{                
        LCD_Init();
        LCD_ShowString(1,1,"Password:");
        while(1)
        {
                KeyNum=MatrixKey();
                if(KeyNum)
                    {    
                        if(Count<4)
                        {
                            if(KeyNum<=10)//ÃÜÂëÇøs1~s10
                                {
                                    Password*=10;//ÃÜÂë×óÒÆһλ
                                    Password+=KeyNum%10;//»ñȡһλÃÜÂë
                                    Count++;//¼Æ´Î¼ÓÒ»
                                }
                                LCD_ShowNum(2,1,Password,4);//¸üÐÂÏÔʾ                                
                        }    
                        if(KeyNum==11)//È¡ÏûһλÊý×Ö
                                {
                                    if(Count>0)
                                        {
                                            Count--;
                                        }
                                    Password/=10;
                                    LCD_ShowNum(2,1,Password,4);//¸üÐÂÏÔʾ    
                                }
                        
                        if(KeyNum==12)//ÊäÈëÍê³ÉÑéÖ¤¶Ô´í
                                {
                                    if(Password == 2496)
                                        {
                                            LCD_ShowString(2,14,"YES");
                                            Password = 0;
                                            Count=0;
                                            LCD_ShowNum(2,1,Password,4);//¸üÐÂÏÔʾ                            
                                        }
                                    else
                                        {
                                            LCD_ShowString(2,14,"NO ");
                                            Password = 0;
                                            Count=0;
                                            LCD_ShowNum(2,1,Password,4);//¸üÐÂÏÔÊ
                                        }
                                }
                        
                    }
                
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值