基于51单片机的多功能电子密码锁(仿真图+完整程序)

主要功能:当输入密码时,只显示“*”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿LED发光二极管亮一秒钟做为提示,;若密码不正确,禁止按键输入3秒,同时绿发光二极管亮;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define KEY P3      //键盘输入端口
#define No_key 20    //无按键时的返回值
#define lcddata P2  //1602的数据输入端口
sbit  lcden= P1^2;
sbit  lcdrs= P1^0;
sbit  lcdrw= P1^1;
sbit  light= P1^3;
sbit  light1= P1^4;
uchar j ; //用来统计输入 个数的全局变量
沙发比较好的品牌uchar aa; //用来在定时器中计数的 全局变量


uchar code table[]= " Hello!";
uchar code table1[]=" OK!      " ;
uchar code table2[]="Enter please:"  ;
uchar code key_table[16] =
      {
      1,2,3,10,
    4,5,6,11,
    7,8,9,12,
    0,13,14,15
      };
uchar password[]={2,0,1,0,9,3} ;  //设定初始密码51放假2022安排时间表
uchar save[6];        //保存输入的数据
uchar conflag ;                  //确认标志
uchar lockflag;      //锁键盘标志
uchar startflag;    //开始标志
     
void delay(uint z);                        //延时子函数
void wright_com(uchar com);              //写指令函数
void wright_data(uchar date) ;      //写数据函数
void init();                          //初始化
void display_OK();        // 显示OK
void delete();        //删除输入的最后一个数

uchar keyscan() ;      //带返回值的键盘扫描程序

void enter_code(uchar t);      //输入密码函数,把输入的数据存入数组中并在屏幕上显示相应的东西,
void  confirm();    //确认密码对不对,把输入的数据与密码逐一对比,完全一样刚正确,
void  succeed_an();    //输入密码成功时的 响应,
void    fail_an();    //输入密码 失败时 响应
void    lockkey();    //锁键盘三秒
void    alarm();    //发出警报声
void  reset();      //复位函数
void  display_enter();    //显示输入
void main(void)
{
    uchar temp;
  init();   
while(1)
哪吒大战美猴王  {
   
      if(lockflag)
      {
    temp=keyscan();  // 锁键期间也要进行键盘扫描
    if(temp!=No_key) //重新记时三秒         
        {
      aa=0;    //重新在定时器中计数
      }
     
    }
抗日战争片    else
      {
        temp=keyscan();  //反复扫描输入,等待随时输入 
金项链怎么清洗     
     
      if(temp!=No_key) //有按键按下才进行下面的操作
        {
          if(temp==10)
        {
        reset();
        startflag=1; //开始标志置位

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。