基于单片机的电子密码锁1602液晶显示设计

简介: 基于单片机的电子密码锁1602液晶显示设计

仿真


20200929215147299.png

程序

//×÷ÕßQQ:497259320
//ÍøÕ¾http://proteus.5d6d.com
//ÄÏÑôÀí¹¤Ñ§Ôº
//ѧϰÊÇÒÅÍüµÄ×îºÃµÄ·½Ê½
//Ö»»¨Á˺ÜÉÙʱ¼äдµÄ,Óкܶ಻×ãµÄËã·¨Óë±à³ÌÐò·½Ê½,¼ûÁÂ!
#include"at89x51.h"
#include"key.h"
#include"lcd.h"
uchar code show_0[]="Please input the password:";
uchar code show_1[]="The cipher is:" ;
uchar code show_2[]="********";
uchar code show_3[]="The password is wrong!";
uchar code show_4[]="This is the last time,";
uchar code show_5[]="Please try it tomorrow!";
uchar code show_6[]="you are right!";
uchar code show_7[]="Please input the new cipher:";
uchar code show_8[]="Input it again!";
uchar code show_9[]="Establishes successful! ";
uchar code show_10[]="(^_^)";
uchar  init_pswd[]={8,8,8,8,8,8,8,8};
uchar  pswd[8]={0};
uchar  pswd_1[8]={0};
void play(uchar *j,uchar k)   //KÊÇÏÔʾµÄ¸öÊý,jÊǵØÖ·
{
   uchar  i;
   for(i=0;i<k;i++)
   {
    dat_w(*(j+i));
  delay(20);
   }
}
main()
{
  uchar j=0,i=0,sum_1=0;
  loop:init();
  clear();
  gotoxy(1,0);
  play(show_0,16);
  gotoxy(2,0);
  play(show_0+17,10);
  /****ÃÜÂëÊäÈë****/
  do
  {
    key();
  }
  while(ki!=15);
  clear();
  gotoxy(1,0);
  play(show_1,15);
  do
  {
    flag=0;
    key();
  gotoxy(2,0);
  if(flag==1&&ki<=9)
   {
    pswd[i]=ki;
    play(show_2,i);
    i++;
   }
  if(ki==14)  //14ÔòÍ˳ö.
    break;
   }  
   while(i<=8);
   for(i=0;i<=7;i++)
   {
     sum_1=init_pswd[i]-pswd[i]+sum_1;
     if(sum_1!=0)
   {
     clear();
     j++;
     if(j==3)
     {
      clear();
      gotoxy(1,0);
      play(show_4,16);
    gotoxy(2,0);
    play(show_4+16,14);
    delay(500);
    delay(500);
    clear();
    gotoxy(1,0);
    play(show_5+7,16);
    gotoxy(2,5);
    play(show_10,5);
      while(1);   //Èý´ÎÊäÈëÃÜÂëʧ°Ü,×ÔËø
     }
     gotoxy(1,0);
     play(show_3,16);
     gotoxy(2,5);
     play(show_3+15,7);
     delay(500);
     clear();
     gotoxy(1,0);
     play(show_8,15);
     goto loop;
    }
    if(sum_1==0) 
    {
     clear();
     gotoxy(1,0);
     play(show_6,15);
     do
     {
     key();
     }
     while(ki!=13);
     loop1:clear();
     gotoxy(1,0);
     play(show_7,13);
     gotoxy(2,0);
     play(show_7+13,15);
     /****µÚÒ»´ÎÊäÃÜÂë***/
     i=0;
      do
      {
      flag=0;
          key();
      if(flag==1&&ki<=9)
        {
         pswd[i]=ki;
       i++;
       clear();
       gotoxy(1,0);
       play(show_2,i);
       }
       }while(i<=7);
     clear();
     gotoxy(1,0);
       play(show_8,15);
     /***µÚ¶þ´ÎÊäÃÜÂë****/
     i=0;
     sum_1=0;
      do
      {
      flag=0;
          key();
      if(flag==1&&ki<=9)
        {
         pswd_1[i]=ki;
       i++;
       clear();
       gotoxy(1,0);
       play(show_2,i);
       }
       }
     while(i<=7);
     for(i=0;i<=7;i++)
      {
       sum_1=sum_1+ pswd_1[i]-pswd[i];
       }
     if(sum_1==0)
       {
        clear();
        gotoxy(1,2);
      play(show_9,12);
      gotoxy(2,2);
      play(show_9+13,11);
      for(i=0;i<=7;i++)
      {
      init_pswd[i]=pswd[1];
       }
      while(1);
       }
     if(sum_1!=0)
       {
         clear();
         goto loop1;
       }
    }   
    } 
 }  


相关文章
|
5月前
|
C语言
基于单片机的简易电子时钟
基于单片机的简易电子时钟
85 0
|
5月前
|
传感器 监控 IDE
基于单片机的温度监控系统设计
基于单片机的温度监控系统设计
226 0
|
5月前
|
存储 数据安全/隐私保护
基于51单片机的6位密码锁设计
该文档描述了一个基于AT89C52单片机的多功能电子密码锁系统设计,具备6位密码设置与修改功能,输入错误三次会锁定,并在LCD屏上以*号隐藏真实密码。系统包括矩阵键盘、LCD显示、AT24C02存储及报警系统,当密码错误时,会有蜂鸣器报警和LED灯闪烁。此外,还提供了密码重置(通过管理员密码131420)和输入错误提示。文中附有Proteus仿真及原理图,展示了开锁、重设密码和错误输入时的响应。
96 0
|
4月前
|
数据安全/隐私保护
单片机课程设计——基于C51电子密码锁(源代码)
单片机课程设计——基于C51电子密码锁(源代码)
|
5月前
|
数据安全/隐私保护
【51单片机】初学者必学的一个矩阵键盘基本项目——(矩阵键盘密码锁)(8)
【51单片机】初学者必学的一个矩阵键盘基本项目——(矩阵键盘密码锁)(8)
|
5月前
|
数据安全/隐私保护
C51单片机实现矩阵键盘密码锁
C51单片机实现矩阵键盘密码锁
|
安全
51单片机和LCD1602实现简单的密码锁
51单片机和LCD1602实现简单的密码锁
111 0
|
存储 安全 网络性能优化
基于单片机的交通灯控制系统设计
基于单片机的交通灯控制系统设计
397 0
基于单片机的交通灯控制系统设计
|
芯片 内存技术
基于单片机步进电机控制器设计(正转反转指示灯挡位)
基于单片机步进电机控制器设计(正转反转指示灯挡位)
234 0
基于单片机步进电机控制器设计(正转反转指示灯挡位)
|
传感器
基于51单片机直流电机PWM控制器设计
基于51单片机直流电机PWM控制器设计
242 0
基于51单片机直流电机PWM控制器设计

热门文章

最新文章