基于单片机的简易密码锁设计.doc

基于单片机的简易密码锁设计.doc

ID:55797854

大小:158.00 KB

页数:21页

时间:2020-06-07

基于单片机的简易密码锁设计.doc_第1页
基于单片机的简易密码锁设计.doc_第2页
基于单片机的简易密码锁设计.doc_第3页
基于单片机的简易密码锁设计.doc_第4页
基于单片机的简易密码锁设计.doc_第5页
资源描述:

《基于单片机的简易密码锁设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于单片机的简易密码锁设计学校:专业:姓名:敬告本文是作者实现更复杂功能硬件设计中的一小部分,只是涉及到了密码锁的实现设计,供大家学习研究,读者可根据自己需要增加相应的功能,本文只针对初学者,硬件工程师请绕道而行。本文主要包含STC89C52RC单片机,4*4的矩阵键盘,AT24C02存储器,LCD1602液晶显示器。中间的一些变量数组的定义,读着可自行调整,作者是需要别的功能定义过的变量重复利用。芯片什么的就不介绍了,自己去网上查。另外,本设计作者在单片机开发板上测试通过,相应功能都能实现,如果读者没有实现功能,肯定哪一步未做好,需要回去检

2、查。主要功能:密码有两套,命名为出门密码和管理员密码,想要修改密码,必须通过管理员密码,还一个修改时间按键功能是作者需要显示系统时间,修改系统时间的作用。读者如不需要,可以删除相关代码,不影响整体功能。两套密码分别存储在不同的地方,在程序里可以清楚的区别开来。输入出门密码时,错误则提醒再次输入,直到正确为止,三次错误则转到相应代码,如错误提示音。当修改密码时,输入管理员密码,与输入出门密码一样,直到通过为止,三次错误执行相应代码,验证通过后输入新的密码,两次一样则通过,不一样则失败。电路图如下:在矩阵键盘模块,可能横纵接线画错,即使这样连接也

3、不用怕,可以自己测试,根据实际情况来调整按键的顺序,如按最左上角按键,找到返回的组合码,即可修改返回的数值。按键功能如下:123a456b789cF0ed其中确认键的功能此处未用到,其他按键的功能,读者可根据自己的需要进行调整,接下来就是关键部分了,程序的源代码,本次设计是基于C语言,采用KEIL软件编写完成。本次设计还包含了一些小功能,退格键,返回键,长时间不操作自动返回。#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#include

4、>#defineCHECK_BUSY#defineKeyPortP1sbitRS=P2^4;//定义端口sbitRW=P2^5;sbitEN=P2^6;sbitSDA=P2^7;//模拟I2C数据传送位sbitSCL=P2^3;//模拟I2C时钟控制位#defineRS_CLRRS=0#defineRS_SETRS=1#defineRW_CLRRW=0#defineRW_SETRW=1#defineEN_CLREN=0#defineEN_SETEN=1#defineDataPortP0/*---------------------------

5、----------------------函数的声明--------------------------------------------------*/voidDelayMs(unsignedchart);voidLCD_Write_Char(unsignedcharx,unsignedchary,unsignedcharData);voidLCD_Write_Com(unsignedcharcom);voidLCD_Write_Data(unsignedcharData);voidLCD_Clear(void);voidLCD_Wri

6、te_String(unsignedcharx,unsignedchary,unsignedchar*s);voidLCD_Init(void);voidDelayUs2x(unsignedchart);unsignedcharKeyScan(void);unsignedcharKeyPro(void);unsignedcharCheckCode(unsignedchar*s);bitack;//------------------AT24C02的函数声明----------------//voidStart_I2c();voidStop_I

7、2c();voidSendByte(unsignedcharc);unsignedcharRcvByte();voidAck_I2c(void);voidNoAck_I2c(void);bitISendStr(unsignedcharsla,unsignedcharsuba,unsignedchar*s,unsignedcharno);bitIRcvStr(unsignedcharsla,unsignedcharsuba,unsignedchar*s,unsignedcharno);/*----------------------------

8、--------------------判忙函数------------------------------------------------*/bitLCD_C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。