基于C语言STC89C52单片机电子密码锁

基于C语言STC89C52单片机电子密码锁作者:向国梁指导老师:金桂(湘南学院物理与电子信息科学系)摘要本文介绍一种通过Protues成功仿真的电子密码锁的实现过程。它采用高可靠性的STC89C52单片机来实现开锁和密码的识别,采用具备I²C总线接口的EEPROM芯片来完成密码的存储,通过1602液晶显示器提示程序运行状态和使用步骤,利用蜂鸣器模拟报警,和发光二极管模拟锁的开关。本系统用C语言编写程序,便于修改和增加功能。此种密码锁克服了普通锁需要随身携带钥匙、钥匙易丢失且安全性差的缺点,因此具有很强的实用意义。关键词:Protues;密码锁;单片机;总线;EEPROM;C语言中图分类号:TN4330引言电子密码锁是现代生活中经常用的工具之一。它不仅能代替传统的机械式密码锁,而且还克服了机械式密码锁密码量少、安全性能差的缺点。尤其是使用微控制器制作的智能电子密码锁,不仅具有电子密码锁的功能,还可引入智能化管理功能,从而使密码锁具有更高的安全性和可靠性。当今的单片机程序常用汇编语言,其优点是占用资源少、程序执行效率高,缺点是不同的CPU其汇编语言有所差异,不易移植。而本文所介绍的密码锁使用移植性及可读性强的高级语言C语言编写,便于修改和增减功能,只是占用资源较多。众多的密码锁设计没有显示设备,或者用数码管显示,本系统采用1602液晶显示器,不仅显示清楚,功率消耗小而且寿命长。从经济实用的角度出发,采用STC89C52单片机设计一种具有密码设置、报警功能和防止多次试探密码的电子密码锁所需成本很低。1系统工作原理本系统以STC89C52单片机为核心,使用4×4矩阵键盘作为数据输入方式,驱动1602显示器提示程序运行过程和开锁的步骤。本系统的密码判断过程如下:当使用者输入6位密码后按下BESURE键,单片机通过密码逐个比较,如果输入的6位密码和设定的密码完全相同,那么能成功驱动开锁模拟灯将锁打开。若输入6位密码与设定的密码不相同,按下BESURE键后,模拟灯不亮,可以按BACK键重新输入。由于输入密码过程中难免输入失误,如果密码输错,可直接按下BACK键重新输入,但是系统不允许无限次地按BACK键,以免密码被套用,当3次密码输入都错误,单片机将驱动蜂鸣器报警。并且本系统输入密码还有时间限制,若在规定的时间内没有将正确密码输入也会报警。修改密码功能如下。当密码输入正确后,按下SET键可新设置密码。每设定一位新密码,单片机将其送给EEPROM,当6位新密码都输入完毕,系统将自动回到程序开始,重新读取密码并保存,使用者需输入新的密码才能将锁打开。2系统设计2.1硬件支持使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602、矩阵键盘、报警蜂鸣器、独立按键(模拟门的开关)、发光二极管(模拟锁的开关)和三极管(放大电流)。2.2软件设计本系统软件包括主程序模块、密码比较判断模块、修改密码模块、键盘扫描模块、液晶显示模块及定时程序等模块。系统程序流程如图1所示。2.2.1主程序模块主程序主要用于定义全局变量,给全局变量赋初值,初始化EEPROM,启动定时器以及从AT89C02中读取密码。为整个程序提供数据。2.2.2密码比较判断模块该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则按下BACK键,重新输入密码,每按下BACK键一次,输入次数将自加1,当3次都出错则报警。2.2.3密码修改模块在密码输入正确情况下,可以按下SET对密码进行重新设置,每设定一位就将密码送给AT24C02存储起来,当设置6位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。密码写入AT24C02和从AT24C02读取密码的子程序如下:voidwrite_byte(uchardate){uchari,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1;scl=0;delay1();sda=CY;delay1();scl=1;delay1();}scl=0;delay1();sda=1;delay1();}ucharread_byte(){uchari,k;scl=0;delay1();sda=1;delay1();for(i=0;i<8;i++){scl=1;delay1();k=(k<<1)|sda;scl=0;delay1();}returnk;}图1系统程序流程图2.2.4键盘扫描模块该模块具备功能有:逐列扫描键盘以确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?