基于51单片机的数字密码锁设计与制作_第1页
基于51单片机的数字密码锁设计与制作_第2页
基于51单片机的数字密码锁设计与制作_第3页
基于51单片机的数字密码锁设计与制作_第4页
基于51单片机的数字密码锁设计与制作_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1产品功能分析......................................................1

2设计方案遴选......................................................1

2.1单片机的选择................................................1

2.2人机交互输入器件的选择......................................1

2.3数字储存芯片的选择..........................................1

2.4显示器件的选择..............................................2

2.5系统框图设计................................................2

3产品硬件设计......................................................3

3.1STC89C51单片机核心电路设计.................................3

3.2STC89C51单片机最小系统.....................................5

3.3按键电路设计................................................5

3.4蜂鸣器电路设计..............................................6

3.5继电器驱动电路设计..........................................7

3.6LCD1602液晶显示模块电路....................................8

4产品软件设计.....................................................10

4.1主程序流程图...............................................10

4.2LCD1602液晶显示程序设计...................................11

4.3产品程序清单...............................................11

5产品使用说明.....................................................12

5.1产品装配图.................................................12

5.2产品调试...................................................13

5.3产品使用说明...............................................13

6产品设计技术标准.................................................14

参考资料...........................................................15

附录...............................................................16

附录1元器件清单...............................................16

附录2电路原理图..............................................17

I

湖南商务职业技术学院毕业设计

附录3PCB设计图...............................................18

附录4产品实物图..............................................19

附录5主程序代码..............................................21

II

湖南商务职业技术学院毕业设计

基于51单片机数字密码锁设计与制作

1产品功能分析

该密码锁利用51单片机的高性能和低成本,结合矩阵键盘、液晶显示器、

继电器等外围电路,实现了密码输入、显示、验证、开关门锁和报警等功能。

2设计方案遴选

通过老师的指导和自己探究电路设计中硬件模块的选择问题,分析了不同模

块的特点和优缺点,提出了一些选择原则和建议。我认为,合适的硬件模块是电

路设计的前提,它决定了电路的性能、稳定性和可靠性。因此,电路设计者应该

根据自己的需求和条件,综合考虑各种因素,选择最适合的硬件模块,以实现高

效、高质量的电路设计。

2.1单片机的选择

为了实现本次的设计目标,我选择了STC89C51单片机作为主控芯片。

STC89C51单片机是一款基于MCS-51内核的八位CMOS微处理器,它不仅保留了

MCS-51的指令集和寄存器结构,还增加了一些新的功能和特性。首先,它具有8k

在线编程Flash存储器,可以方便地对程序进行修改和更新,无需拆卸芯片。其

次,它还具有4k的EEPROM存储器,可以实现掉电数据保护,无需外接存储器。

再次,它的工作电压范围为2.7V~5.5V,功耗低,适合用于便携式设备。最后,

它的价格低廉,性价比高,易于采购和使用。综上所述,STC89C51单片机是一

款适合本次设计需求的主控芯片。

2.2人机交互输入器件的选择

采用矩阵键盘作为输入设备。矩阵键盘通过将按键的两端分别接到行线和列

线上,然后将每一条行线和列线连接到单片机上,通过程序算法进行读取按下的

是哪一个按键。这样做虽然增加了程序算法的难度,但是节约了单片机I/O口的

使用。

2.3数字储存芯片的选择

在本次设计中,我选择了一种基于AT24C02的数据存储方案,该方案能够有

1

湖南商务职业技术学院毕业设计

效地解决单片机内部EEPROM的局限性。AT24C02是一种2K位的串行电可擦可编

程只读存储器,它具有以下几个优点:首先,它的功耗很低,只需要0.1mA的工

作电流和1uA的待机电流,这对于节省电池寿命和降低成本非常有利;其次,它

的接口简单,只需要两根信号线就可以与单片机通信,无需额外的硬件支持;第

三,它具有写保护功能,可以通过引脚控制是否允许写入数据,防止意外或恶意

修改;最后,它具有页写缓冲器功能,可以一次性写入8个字节的数据,提高了

写入速度和效率。综上所述,AT24C02是一种适合于数据存储的芯片,它可以满

足不同应用场景的需求,是一种值得推荐的方案。

2.4显示器件的选择

液晶显示屏是一种常见的显示设备,LCD1602液晶显示屏是一种字符型液晶,

它可以显示32个字符,包括数字、字母、符号和自定义字符。每个字符由5*7

的点阵组成,用户可以通过编程控制每个点的亮灭。LCD1602液晶显示屏是一种

功能强大、使用方便、成本低廉的显示设备,适用于各种场合。

2.5系统框图设计

图2.1系统框图

2

湖南商务职业技术学院毕业设计

3产品硬件设计

此次设计采用STC89C51单片机组成的系统,LCD1602显示屏,AT24C02进

行存储,矩阵键盘组成。

按键介绍:有0到9的数字键,退出输入键,重置密码键,重新输入按键,

确定键,退格键,输入密码键

(1)系统可设置4到8位的由0~9数字组成的密码,密码通过键盘输入,若

密码正确,则继电器断开(锁打开)。若密码错误,密码错误次数加1,蜂鸣器LED

灯对应声光几次,超过三次怎锁定输密码,第一次锁定在30s后解除锁定便可

再次输入密码解锁,第二次锁定在60s后解除锁定便可在次输入密码解锁,以

此类推。

(2)密码可通过按键重新设置,在设置前必须输入旧密码然后连续输入两次

新密码,若输入旧密码时输错便直接退出修改密码,并且输错密码次数加1。

(3)密码具有掉电保护功能,锁定后在此解除锁定的时间也具有掉电保护的

功能。这样就可以防止外人或小偷输错密码后拔掉电源后再次插上电重新输入

密码。

(4)在密码输入或重置时可退格、重输、退出输入等等操作。

3.1STC89C51单片机核心电路设计

STC89C51是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K

在系统可编程Flash存储器。

选择STC89C51芯片的主要原因:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,

MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中

断结构。

开发简单,可在线编程,下载成本低。

STC89C51单片机原理图如下图所示(图3.1)

3

湖南商务职业技术学院毕业设计

图3.1STC89C51单片机原理图

4

湖南商务职业技术学院毕业设计

3.2STC89C51单片机最小系统

由复位电路,晶振电路,STC89C51单片机组成的系统。

图3.2STC89C51单片机最小系统

3.3按键电路设计

在单片机的应用中,按键是一种常见的输入设备,它可以让用户与系统进

行交互。然而,当操作中需要使用到比较多的按键的时候,如果直接将每个按

键连接到单片机的I/O口,会占用大量的硬件资源,降低系统的效率和可扩展

性。为了解决这个问题,一种常用的方法是将按键排列成矩阵形式,这就是矩

阵键盘。矩阵键盘的原理是利用按键在水平线和垂直线的交叉处形成一个开关,

通过扫描行或列来判断哪个按键被按下。这样,一个端口就可以构成4*4=16个

按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,

比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9

键)。由于这次设计用到的按键比较多,所以我采用矩阵键盘。

5

湖南商务职业技术学院毕业设计

矩阵键盘原理图如图3.3所示。

图3.3矩阵键盘原理图

3.4蜂鸣器电路设计

本次设计使用一种基于单片机的蜂鸣器控制电路,实现了对蜂鸣器的开关

控制。该电路采用了5V电磁式有源蜂鸣器,由于其工作电流较大,不能直接由

单片机的I/O口驱动,因此需要借助三极管开关电路。本次设计选用了8550三

极管,它是一种PNP型的三极管,可以根据单片机I/O口的低电平和高电平来

分别导通和截止,从而使蜂鸣器发出或停止声音。蜂鸣器电路原理图如下3.4

所示。

6

湖南商务职业技术学院毕业设计

图3.4蜂鸣器电路原理图

3.5继电器驱动电路设计

为了实现了对继电器的开关控制。该电路利用了三极管的电流放大作用,

解决了单片机输出电流不足的问题。

三极管的选择需要符合:

(1)功率PCM:大于5V*继电器电流的两倍;

(2)最大集电极电流:大于继电器吸合电流40mA的两倍以上;

(3)耐压BV:大于继电器工作电压5V;

(4)直流放大倍数:取100。

单片机IO口的电平信号可以控制三极管的状态,从而控制继电器的开关。

当IO口输出高电平时,三极管截止,继电器断开;当IO口输出低电平时,

三极管导通,继电器吸合。

7

湖南商务职业技术学院毕业设计

图3.5继电器驱动电路原理图

3.6LCD1602液晶显示模块电路

图3.6LCD1602电路原理图

8

湖南商务职业技术学院毕业设计

该电路使用了电位器,可以自己调节亮度方便使用。

图3.7LCD1602实物图

9

湖南商务职业技术学院毕业设计

4产品软件设计

本设计采用KeilμVision4进行编程实现。

4.1主程序流程图

图4.1主程序流程图

10

湖南商务职业技术学院毕业设计

4.2LCD1602液晶显示程序设计

图4.2液晶显示流程图

4.3产品程序清单

11

湖南商务职业技术学院毕业设计

图4.3产品程序清单

5产品使用说明

5.1产品装配图

产品装配图如图5.1所示

12

湖南商务职业技术学院毕业设计

图5.1产品装配图

5.2产品调试

检查电路是否有各种问题,如漏焊、短路、断路、虚焊、元件方向错误等,

可以用对照PCB图和用数字万用表来检测和修复。

5.3产品使用说明

使用说明:

1.把电源全部接好,打开开关。可自由设计密码4到八位由数字组成,密

码可修改,只需要输入正确旧密码,在输入两次新设好的密码。

2.输入错误密码三次会锁定30秒,第二次60秒,最多四分钟,锁定后蜂

鸣器会响,红灯会亮。

3.密码正确,电磁锁打开,过二十秒就会关闭

按键介绍:0到9为数字键,A为退出输入键,B为重置密码键,C为重新

13

湖南商务职业技术学院毕业设计

输入键按下清除已输入的密码,D为确定键,E为退格键,F为输入密码键

6产品设计技术标准

[1]J-STD-001E电气与电子组件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求

[3]IPC-7711/21电子组件和电路板的返工&返修

[4]GB/T11457-2006信息技术软件工程术语

[5]GB/T8566-2007信息技术软件生存周期过程标准

[6]GB/T8567-2006计算机软件文档编制规范

14

湖南商务职业技术学院毕业设计

参考资料

[1]姜秀玲.单片机在电子技术中的应用和开发技术研究[J].科学技术创新,2018(15):2.

[2]孙万麟.基于Proteus的多功能电子密码锁控制系统设计及实现[J].机械制造与自动化,2021,

50(4):3.

[3]程志远.基于单片机的电子密码锁设计[J].科技视界,2021(15):3.

15

湖南商务职业技术学院毕业设计

附录

附录1元器件清单

附表1.1元器件清单

16

湖南商务职业技术学院毕业设计

附录2电路原理图

附图2.1产品原理图

17

湖南商务职业技术学院毕业设计

附录3PCB设计图

附图3.1产品PCB设计图

18

湖南商务职业技术学院毕业设计

附录4产品实物图

附图4.1产品实物图正面

19

湖南商务职业技术学院毕业设计

附图4.2产品实物图反面

20

湖南商务职业技术学院毕业设计

附录5主程序代码

#include<reg51.h>//头文件

#include<LCD1602.h>

#include<AT24C02.h>

#include<KEY.h>

#include<INTERRUPT.h>

#defineucharunsignedchar//宏定义

#defineuintunsignedint

#defineulongunsignedlong

/**********************变量定义************************/

uchara;//存储按键值

ucharnum;//记录输入的密码位数

ucharnums;//记录重设密码时输入的新密码位数(4~8位)

bitin_f;//输入密码的标志

bitreset_f;//重设密码的标志

ucharerror_num;//密码错误的次数

ucharreset_num;//修改密码输入次数

uchartime;//记录密码被锁的时间(S)

uchartime_num;//记录密码被锁的次数(最大值:8)

ulonglow_mima;//解锁密码

ucharmima_length;//存储密码长度

ulongin_mima;//暂存输入的密码

ulongnew_mima;//暂存输入新密码

ucharcodeerror[]="PasswordError!";//密码错误

ucharcodesucces[]="Unlocksuccess!";//解锁成功

ucharcodemimasuo[]="Passwordtolock";//密码以锁

ucharcodereset[]="Resetthesucces";//重设密码成功

ucharcodeinmima[]="Enterpassword:";//请输入密码

ucharcodenewmima[]="Newpassword:";//新密码

ucharcodenewmima2[]="ConfirmPassword";//重新在输一遍

ucharcodeoldmima[]="Theoldpassword";//旧密码

ucharcodeshibai[]="Setupfailed!!!";//重设密码失败

ucharcodekaishi[]="Welcometouse";//欢迎使用

ucharcodekaishi2[]="codedlock";//密码锁

ucharcodedaojishi[]="Removecountdown";//解除密码锁倒计时

/****10的N次方

****0*1**2***3****4*****5******6*******7*********8*******/

21

湖南商务职业技术学院毕业设计

ulongcodePOW[]={1,10,100,1000,10000,100000,1000000,10000000,100000000};

/********************************************************

函数名称:voiddidi(uchari)

函数作用:LED、蜂鸣器鸣叫

参数说明:i为报警次数

********************************************************/

voiddidi(uchari)

{

ucharj;

for(j=0;j<i;j++)//循环i次,LED、蜂鸣器鸣叫几次

{

buzz=1;

led=0;

delay_n40us(10000);

buzz=0;

led=1;

delay_n40us(10000);

}

led=1;

buzz=1;//响完关闭蜂鸣器、LED灯

}

/*********************************************************

函数名称:voiddisplay_mima()

函数作用:显示输入的数字键信息

参数说明:num为已输入的密码位数

*********************************************************/

voiddisplay_mima()

{

uchari;

for(i=0;i<num;i++)

{

if(in_f==1||(reset_f==1&&reset_num==1))

LCD_disp_char((16-num)/2+i,2,'*');

else

LCD_disp_char((16-num)/2+i,2,in_mima%POW[num-i]/

POW[num-1-i]+0x30);

}

}

/*********************************************************

函数名称:voidchuli()

函数作用:对按下的按键进行处理

参数说明:

22

湖南商务职业技术学院毕业设计

*********************************************************/

voidchuli()

{

if(key_f==1&&TR0==0)//先判断是否有按键按下,并且键盘没有锁定

{

if(a<10&&num<8&&(in_f==1||reset_f==1))//如果输入密码状态,并且按下

数字键,位数未达到最大8位

{

in_mima=in_mima*10+a;//记录输入的密码

num++;//输入的密码个数加1

display_mima();//显示输入的情况

}

if(a==13&&reset_f==0&&jdq==1)//输入密码

{

in_f=1;//标记进入密码解锁

if(num==0)

{

LCD_write_command(0x01);//清除显示LCD1602

delay_n40us(100);

}

lcd1602_write_character(0,1,inmima);//显示输入密码

}

if(a==10)//取消输入,关闭门锁

{

init_f=1;//恢复初始界面

}

if(a==11&&in_f==0&&reset_f==0)//重设密码

{

reset_f=1;//标记进入修改密码

reset_num=1;//标记当前处于第1阶段:输入旧密码

num=0;//输入的密码位数清0

in_mima=0;//输入的密码清0

LCD_write_command(0x01);//清除显示LCD1602

delay_n40us(100);

lcd1602_write_character(0,1,oldmima);//显示输入旧密码

}

if(a==12&&(in_f==1||reset_f==1))//清除输入

{

LCD_write_command(0x01);//清除显示LCD1602

23

湖南商务职业技术学院毕业设计

delay_n40us(100);

num=0;//输入的密码位数清0

in_mima=0;//输入的密码清0

if(in_f==1)//在输入密码状态

lcd1602_write_character(0,1,inmima);//显示输入密码

if(reset_f==1)//在重设密码状态

{

if(reset_num==1)

lcd1602_write_character(0,1,oldmima);//显示输入旧密

else

if(reset_num==2)

lcd1602_write_character(0,1,newmima);//显示输入新密

else

lcd1602_write_character(0,1,newmima2);//显示输入再次

输入新密码

}

}

if(a==14&&(in_f==1||reset_f==1))//退格

{

if(num!=0)//输入密码个数减1

num--;

in_mima=in_mima/10;

lcd1602_write_character(0,2,"");

display_mima();//显示输入的情况

}

if(a==15&&num>=4)//密码确定

{

LCD_write_command(0x01);//清除显示

LCD1602

delay_n40us(100);

if(reset_f==1)//当前处于修改密

码状态

{

if(reset_num==3)//再次输入新

密码状态

{

if(in_mima==new_mima&&num==nums)//两次输

24

湖南商务职业技术学院毕业设计

入的新密码一致匹配正确

{

reset_num=0;//清除修改密码

标志

reset_f=0;

low_mima=in_mima;//重新记录密码

mima_length=num;//重新记录密码位

AT24C02_write_date(0,low_mima/1000000);//分四部分,

存储密码

AT24C02_write_date(1,low_mima%1000000/10000);

AT24C02_write_date(2,low_mima%10000/100);

AT24C02_write_date(3,low_mima%100);

AT24C02_write_date(4,mima_length);//存储密码位数

lcd1602_write_character(0,1,reset);//显示密码修改成

error_num=0;

AT24C02_write_date(6,error_num);//将错误次数存

入AT24C02

time_num=0;

AT24C02_write_date(8,time_num);//清除锁定次

}

else//旧密码匹配失败

{

lcd1602_write_character(0,1,shibai);//显示密码修改失败

didi(1);//进入报警

reset_f=0;

}

}

if(reset_num==2)//输入新密码

状态

{

reset_num=3;//进入再次输入新

密码阶段

new_mima=in_mima;//记录输入的

新密码

nums=num;//记录输入的新密

25

湖南商务职业技术学院毕业设计

码位数

lcd1602_write_character(0,1,newmima2);//显示输入新密码

}

if(reset_num==1)//输入密码状

{

if(in_mima==low_mima&&num==mima_length)//旧密码匹

配正确

{

reset_num=2;//进入输入新密码

阶段

lcd1602_write_character(0,1,newmima);//显示输入新密码

}

else//旧密码匹配失败

{

reset_f=0;//结束重置密码

lcd1602_write_character(0,1,error);//显示密码错误

didi(3);//进入报警

}

}

}

else//解锁区间

{

if(in_mima==low_mima&&num==mima_length)//密码匹配正

{

lcd1602_write_character(0,1,succes);//显示解锁成功

error_num=0;

AT24C02_write_date(6,error_num);//将错误次数存入

AT24C02

time_num=0;

AT24C02_write_date(8,time_num);//清除锁定次数

jdq=0;//吸合继电器表示打

开门

}

else//密码匹配错误

{

error_num++;

AT24C02_write_date(6,error_num);//将错误次数存入

AT24C02

26

湖南商务职业技术学院毕业设计

if(error_num==3)//判断错误次数是

否等于3次

lcd1602_write_character(0,1,mimasuo);//显示密码锁定

else

lcd1602_write_character(0,1,error);//显示密码错误

didi(error_num);//输错几次蜂鸣器响几次、LED亮几次以提

示用户

if(error_num==3)//如果连续错误次数等于三次了

{

time=0;//开启锁定计时

TR0=1;//开始定时器0,进入锁定倒计时

if(time_num<8)//最大锁定时间8*30秒(4分钟)

time_num++;//密码被锁次数加1(最大值:

8)

AT24C02_write_date(8,time_num);//锁定时间

写入到AT24C02保存起来

lcd1602_write_character(0,1,daojishi);//显示解除密码锁

定倒计时

}

}

in_f=0;//清除输入标志

}

num=0;//清除输入密码位数

in_mima=0;//清除输入密码

}

T1_num=0;

TR1=1;//开启定时器,12.5秒自动退出初始的界面

key_f=0;//清除按键标志

}

}

/*********************************************************

函数名称:voidmain()

函数作用:主函数

参数说明:

*********************************************************/

voidmain()

{

jdq=1;//开机继电器断开,表示门关着

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论