单片机实用密码锁

发布者:fnfeecjknquc最新更新时间:2018-05-12 来源: eefocus关键字:单片机  密码锁 手机看文章 扫描二维码
随时随地手机看文章

unsigned char num,i,j;                      

 unsigned char passwordtemp[16];        //最大输入16个    

 unsigned char inputtimes;              //密码输入错误次数    

 unsigned char passwordlength,PLEN;     //输入密码长度,实际密码长度    

 bit Flag;    

     

 PLEN=sizeof(password)/sizeof(password[0]);//用于计算出实际密码长度    

     

 LCD_Init();         //初始化液晶屏    

 DelayMs(10);        //延时用于稳定,可以去掉    

 LCD_Clear();        //清屏    

 LCD_Write_String(0,0,"  Welcome! ");    //写入第一行信息,主循环中不再更改此信息,所以在while之前写入    

 LCD_Write_String(0,1,"Input password!");    //写入第二行信息,提示输入密码    

while (1)         //主循环    

  {    

    

    

 num=KeyPro();  //扫描键盘    

 if(num!=0xff)  //如果扫描是按键有效值则进行处理    

   {     

    if(i==0)    //输入是第一个字符的时候需要把改行清空,方便观看密码    

      LCD_Write_String(0,1,"                ");//清除该行    

    if(i<16)    

      {    

       passwordtemp[i]=num;    

       LCD_Write_Char(i,1,'*');//输入的密码用"*"代替    

       }    

    i++;   //输入数值累加    

    if((15==num)|| (i==16))//输入按键值15或者密码输入到最大值16,表示输入结束,需要进行比对    

      {    

      passwordlength=i-1;  //计算输入密码长度    

      i=0;  //计数器复位    

      if(passwordlength==PLEN)//长度相等则比较,否则直接输出错误    

        {    

         Flag=1;//先把比较位置1    

         for(j=0;j

            Flag=Flag&&(passwordtemp[j]==password[j]);//比较输入值和已有密码    

         }    

      if(Flag)//如果比较全部相同,标志位置1    

       {    

        LCD_Write_String(0,1,"                ");//清除该行    

        LCD_Write_String(0,1,"Right Open!>>>>");//密码正确显示的信息    

        inputtimes=0;//输入正确则次数清零,重新计数    

        Flag=0;      //清除正确标志    

        }    

      else     

        {    

        LCD_Write_String(0,1,"                ");//清除该行    

        LCD_Write_String(0,1,"Wrong! Retry!");//密码错误,提示重新输入    

        inputtimes++;//连续输入错误,则次数累加    

        if(inputtimes==3)    

          {    

           LCD_Write_String(0,1,"                ");//清除该行    

           LCD_Write_String(0,1,"Wrong 3 times!");//密码错误,提示重新输入    

           while(1);//停止该位置,重启电源后才能输入,实际实用中则需要等到一定时间后才能再次输入。    

          }    

        }    

    

      }    

    }       

  }    

}


关键字:单片机  密码锁 引用地址: 单片机实用密码锁

上一篇:单片机串口通信中断
下一篇:单片机DS18b20 温度检测液晶显示

推荐阅读最新更新时间:2024-03-16 16:02

单片机位操作的逻辑运算详解
首先,对一个字节,8位也好,16位也好,32位也好,只有两种操作,一种叫置位,一种叫清零。先从置位说起。 置位可以对全部位进行操作,也可以对某个位进行操作。 全部操作很简单直接赋值就ok了。我们假设一个无符号字符型uchar为8位。且最低位为0,也就是说0-7位,而不是1-8位,那么改变值的状态只需要直接等于就ok了 uchar a=0; a=0xfe; 这样的话,就让a的低1-7位置1,a的0位不变 但这样做有一个问题,我每次改变数值时,还要先打开计算器,然后设置到2进制功能,然后要把我要选择的位输入进去,比如100,然后按16进制功能。然后计算器显示4。我觉得这样很麻烦。咋办呢,结果前辈们就想出了一个法子。通过位移
[单片机]
PIC16C5X单片机数据存储器
程序计数器f2(PC) 程序计数器给出片内2048x12的ROM地址,不同的型号程序计数器与它们的两层堆栈为9-11位寛,如表1所示。 表1 程序计数器PC与堆栈大小 型号 PC宽度/位 堆栈宽度/位 PIC16C54/55 9 9 PIC16C56 10 10 PIC16C57 11 11 系统复位后,PC为全 1 ,程序执行每一条指令PC自动加 1 ,除非程序指令本身改变PC的内容(例如程序跳转,中断服务等),下面的指令将改变PC的值。 . GOTO 指令:允许直接装入程序
[单片机]
壹拾贰:单片机与芯片164的通信
本篇之后都是提高篇 1)只为学习,不讨论现实意义 2)与实物电路会有差距(以实物为准) 3)讲解范围:串行通信、数码管、1602、12864、点阵、直流电机、AD、DA等基础电路。 高级内容暂不讲(USB、CAN、DMA、Wifi、网络、真彩大液晶、触摸屏、GPS、GPRS、Zigbee、NandFlash、Camera等等)(ARM11上讨论这些) #基础知识 通信分为两种:并行通信和串行通信。 并行通信是将要所传送的数据的各位同时发送或接受,在该通信中,使用几条数据线,将数据分段同时进行传输,传输速度快,信息率高。 串行通信时使用很少的数据线,将要传送数据各个位按顺序一位一位地发送或接收,每一位都需要固定的时间长度,在串行通信
[单片机]
壹拾贰:<font color='red'>单片机</font>与芯片164的通信
MSP430单片机的中断机制
msp430教程之四 上次和大家聊到了GPIO的使用,但是讲的不是很全面,要是全面涉及的话就是我们后面要讲的内容了,这里我们就不多加描述。在后期的讲解中也会慢慢涉及我们没有讲到的一些功能的。今天我们要涉及一个对于单片机来说非常重要的一个概念和功能。 什么是中断? 我们不以专业术语来描述这个东西,我们以一个比较好理解的方式来讲。首先大家要有一个理解就是我们单片机是按照程序一步一步的执行的,通过仿真的时候大家也可以看出来我们点击单步运行我们就可以看到光标向下移动一步,也就是单片机向下移动一步。就是单步运行的。就像我们人一样,你只能在一个时刻内做一件事情,没有办法说一边吃饭一边喝水吧(极短的时刻内你不行的吧),当你要做另外一件事
[单片机]
基于STM32单片机的DLP驱动电路研究
DLP投影技术是应用美国德州仪器公司开发的数字微镜元件--DMD(Digital Micromirror Device)作为主要关键处理元件以实现数字光学处理过程的技术。DLP显示的色彩清晰度高、艳丽、细腻、逼真,且为全数字显示即可靠性极高,能在各类产品(如大屏幕数字电视、公司/家庭/专业会议投影机和数码相机(DLP Cinema))中提供最佳图像效果。目前,大部分的家用或商用DLP投影机都采用了单片结构,使得其便于移动携带,因而得到越来越广泛的应用。在目前应用发展的基础上,又对其结构的精简性、携带的方便性提出了更高的要求。传统的DLP投影仪是通过DVI接口接收外部信号,并且经过信号转换传送给DLP控制器来控制DLP的显示,占用的
[单片机]
基于STM32<font color='red'>单片机</font>的DLP驱动电路研究
AVR单片机-- I/O口的使用
简介:本文章主要通过程序控制实现按键控制LED 灯的亮灭,按一下亮,再按一下灭,如此循环往复,并学习AVR 单片机的I/O口如何配置为输入和输出。 //文件名:delay_rest.c //文件描述:实现按键控制LED 灯的亮灭,按一下亮,再按一 //下灭,如此循环往复。 //实验目的:学习AVR 单片机的I/O口如何配置为输入和输出 //当前版本号:V1.0 //--------------------------------------------------------------------- //----------------------------start------------------
[单片机]
详解单片机应用系统的抗干扰技术
随着工业控制的发展,单片机应用系统以其高性价比逐步取代模拟式控制系统,被广泛应用于各个领域。应用现场存在着各种干扰源,对单片机应用系统的工作影响很大,在实验室里设计好的控制系统,安装调试时完全符合设计要求,而置入现场后,系统常常无法正常稳定地工作。干扰虽不能直接造成硬件的损坏,但常使计算机不能正常运行以致控制失灵,造成设备和生产事故。因此,为了保证设备在实际应用中可靠地工作,从系统设计开始就必须充分考虑到对系统抗干扰性能的要求。 1 干扰源、干扰途径和干扰的影响 1.1 应用系统自身干扰源及干扰途径 应用系统自身干扰源是因在设计系统时对某些问题考虑不全面,如元器件布局不合理、电路工作不可靠、元器件质量差等,形
[单片机]
详解<font color='red'>单片机</font>应用系统的抗干扰技术
基于单片机的复合开关及其应用研究
  介绍了一种基于单片机PIC16C61并应用于低压电容 无功补偿 的复合开关,该复合开关与接触器、固态继电器相比,具有投入浪涌电流小,工作时无损耗等优点,文中分析了这种复合开关的工作原理以及各种电压波形。同时介绍了他在低压无功补偿中的应用。理论和实验都证实了这种新型复合开关是具有广泛应用前景的电器产品。   1用于低压电容无功补偿的各种开关应用情况   在用电设备中,存在着大量的感性负载(如电动机),这些感性负载在消耗有功功率的同时,也占用了大量的感性无功功率,由于无功功率虚占了设备容量、增大了线路的电流值,而线路的损失与电流的平方成正比。因此,无功功率必须予以补偿。为了提高功率因数,一般企事业单位用电容器的容性进行
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved