600基于单片机的智能电子密码锁系统设计-毕设课设资料

本文详细介绍了设计一种基于AT89C51单片机的智能电子密码锁系统的过程,该系统利用AT24C02存储密码,并具备输入验证、信息显示、键盘锁定、报警及开锁闭锁等功能,提高了安全性与智能化水平。通过液晶显示屏和键盘交互,实现密码输入与修改,并在多次输入错误后锁定键盘并触发报警,确保家居安全。
摘要由CSDN通过智能技术生成

摘要:

本文设计了一种基于AT89C51单片机的智能电子密码锁系统。该系统通过单片机控制外围电路,实现密码的输入与修改、信息显示、键盘锁定、系统报警以及开锁和闭锁等功能。设计中采用AT24C02存储器保存密码,初始密码设为199010。通过验证用户输入的密码是否正确,系统执行开锁或报警操作,提高了密码锁的安全性和智能化水平。

一、引言

随着科技的发展和人们生活水平的提高,对于家居安全的需求也日益增长。传统的机械锁因其固定性和易复制性,已无法满足现代安全需求。因此,开发一种安全、便捷、智能化的电子密码锁系统显得尤为重要。

二、系统总体设计

本设计采用AT89C51单片机作为控制核心,配合外围电路和软件程序,实现电子密码锁的各项功能。系统主要包括密码输入模块、信息显示模块、键盘锁定模块、报警模块、开锁和闭锁模块等。

三、硬件设计

3.1 单片机选择

AT89C51单片机作为本设计的核心控制器,具有性能稳定、功耗低、价格实惠等优点。其丰富的I/O端口和强大的处理能力为系统的实现提供了有力支持。

3.2 存储器选择

采用AT24C02存储器用于保存密码。AT24C02具有非易失性、低功耗、高速读取等特点,适合用于存储密码等关键信息。

3.3 外围电路设计

外围电路包括密码输入键盘、液晶显示屏、继电器等。键盘用于输入密码,液晶显示屏用于显示密码输入状态、错误信息以及系统状态等,继电器用于控制锁的开关。

四、软件设计

软件设计是实现系统功能的关键。本设计采用C语言进行编程,通过编写程序实现密码的输入与修改、信息显示、键盘锁定、系统报警以及开锁和闭锁等功能。具体实现过程如下:

4.1 密码输入与修改

系统通过判断用户输入的密码与存储器中保存的密码是否一致,来执行开锁或报警操作。同时,提供密码修改功能,允许用户在满足一定条件(如正确输入原密码)的情况下修改密码。

4.2 信息显示

液晶显示屏用于实时显示密码输入状态、错误信息以及系统状态等,方便用户了解系统运行状态和操作结果。

4.3 键盘锁定与报警

当用户连续多次输入错误密码时,系统将自动锁定键盘并触发报警功能,以防止非法入侵。

4.4 开锁与闭锁

通过控制继电器实现锁的开关功能。当用户输入正确密码时,继电器动作实现开锁;否则保持闭锁状态。

五、系统测试与结果分析

在实际测试中,本系统能够准确识别用户输入的密码,并根据密码的正确性执行相应的操作。同时,系统具有良好的稳定性和可靠性,能够满足实际应用需求。

六、结论与展望

本文设计了一种基于AT89C51单片机的智能电子密码锁系统,实现了密码的输入与修改、信息显示、键盘锁定、系统报警以及开锁和闭锁等功能。该系统具有安全、便捷、智能化等特点,可广泛应用于家庭、办公室等场所。未来,可以进一步研究如何增加系统的安全性能,如采用更复杂的加密算法、增加生物识别功能等,以提高系统的整体安全水平。

uchar code table7[12]="Enter Again:";
uchar code table8[12]="Enter Error!";
uchar code table9[15]="Modify Success!";
uchar code table10[13]="Welcome back!";
//***********************************
//相关函数的声明
//***********************************
void delay1ms();
void delay(uchar n);
void write_1602com(uchar com);
void write_1602dat(uchar dat);
void initinal(void);
bit lcdbusy();
uchar key_scan();
void enter_password(void);	//功能:显示输入密码画面
void password_error(void);//功能:显示输入密码错误后的画面
void ok(void);//功能:显示输入密码正确后的画面
void new_password(void);//功能:显示输入新密码的画面
void enter_again(void);//功能:显示再次输入新密码的画面
void enter_error(void);//功能:显示两次输入的密码不一样后的画面
void modify_success(void);//功能:显示更改成功后的画面
void welcome(void);  //功能:显示欢迎画面
void wtite_1602com(uchar com);
void write_1602dat(uchar dat);
 /*****************************************************
函数功能:延时若干毫秒
入口参数:n
***************************************************/
 void delay(uchar n)
 {	unsigned char i,x,y;
	for(i=0;i<n;i++){for(x=0;x<10;x++)for(y=0;y<33;y++); } }
 /*****************************************************
函数功能:延时1ms
***************************************************/
void delay1(uchar n){   unsigned char i,j;	
	 for(i=0;i<n;i++){  for(j=0;j<10;j++)delay(10);}	 }
 /*****************************************************
函数功能:定时器子函数,调用该函数可以计时
***************************************************/
 void time( ){	TMOD = 0x01;	  //定时器0,工作方式1
    		TH0 = (65536-50000)/256;
    		TL0 = (65536-50000)%256;	 //50ms中断一次
    		EA = 1;ET0 = 1;TR0 = 1;}
  /*****************************************************
函数功能:定时函数,在一段时间内没有键按下则关闭显示器
***************************************************/
void time_1( ) interrupt 1{
   TH0 = (65536-65536)/256;TL0 = (65536-65536)%256;time_50ms++;
	if(time_50ms==20){time_1s++;time_50ms=0;}
	if(time_1s==20){write_1602com(0x01);write_1602com(0x0c

  

  【资源下载】下载地址:点击下载(600) https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值