单片机之旅——电子密码锁

5 篇文章 0 订阅

共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。


#include<reg52.h>
sbit fmq=P0^7;

sbit pass_1 = P2^0;
sbit pass_2 = P2^1;
sbit pass_3 = P2^2;
sbit pass_4 = P2^3;

unsigned int count;
unsigned int jishu;

void delay500us()
{
unsigned char j;
 for(j=0;j<57;j++)	  //500us基准延时程序 
 {
  ;
 } 
}

void beep()	//产生1KHZ频率声音的函数
{
 	fmq=0;
	delay500us();
	fmq=1;
	delay500us();	
}

void delay1ms(unsigned int i)
{
unsigned char j;
 while(i--)
 {
 for(j=0;j<115;j++)	  //1ms基准延时程序 
 {
  ;
 }
 } 
}

void delayms(unsigned int m)
{
	unsigned int i,j;
	for(i = m; i > 0; i--)
	{
		for(j = 110; j > 0; j--)
		;
	}	
}
unsigned int i,j,t;
void voice()
{
	for(i = 10000; i > 0; i--)
	{
		for(j = 110; j > 0; j--)
		{
			for(t=0;t<1000;t++)
			{
				beep();
			}
			fmq=1;
			delay1ms(1000);
		}
	}
}
unsigned char temp;
void monitor_key()
{
	P2 = 0xff;
	temp = P2;
	if(temp != 0xff)
	{
		delayms(10);
		if(temp != 0xff)
		{
			if(pass_1 == 0)
			{
				count++;
			}else if(pass_2 == 0)
			{
				count++;
			}else if(pass_3 == 0)
			{
				count++;
			}else if(pass_4 == 0)
			{
				count++;
			}else{
				count = 0;
				jishu++;
			}
		}
	   delayms(10);
	}
}

void main()
{
unsigned int t;
  while(1)
  {
	monitor_key();
	if(jishu == 3)
	{
		voice();
		delayms(5 * 60 * 1000);
		jishu = 0;
	}
  }
}


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设计说明书 概述: 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。 本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,本系统各项功能已达到本设计的所有要求。 着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值