




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/毕业设计论文题目基于单片机实现电子密码锁系xxxxxxxxxxxxxx专业xxxxxxxxxxxxxx姓名xxxxxx班级xxxxxxxxxx指导教师xxxxxxx职称xxxxxxxxx指导教师xxxxxx职称xxxxx设计时间20XX11月——20XX1月摘要本次设计的题目是基于单片机的电子密码锁的设计,系统由AT89S52与低功耗CMOS型E²PROMAT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD显示、报警、开锁等电路模块。它能完成以下功能:正确输入密码前提下,开锁;错误输入密码情况下,报警;密码可以根据用户需要更改。本密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,具有一定的推广价值。关键词:电子密码锁;报警;液晶显示目录1引言11.1课题背景11.2课题设计目标12系统总体设计和主要芯片介绍22.1系统总体设计22.2主要芯片介绍22.2.1AT89S5222.2.2存储芯片AT24C0233硬件设计53.1键盘输入模块53.2密码存储模块53.3复位部分63.4晶振部分73.5显示模块73.6报警部分83.7开锁部分84系统软件设计94.1系统程序流程图94.1.1主程序流程图94.1.2键功能程序流程图104.1.3开锁程序流程图114.2子程序举例114.2.1开锁子程序114.2.2按键扫描子程序154.2.3密修改码子程序165实验结果与数据处理195.1测试步骤195.2实验现象196结语20参考文献211引言1.1课题背景随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国密码锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。1.2课题设计目标本设计采用AT89S52单片机为主控芯片,结合外围电路,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改。2系统总体设计和主要芯片介绍2.1系统总体设计本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。系统整体框图如图2-1所示。显示模块键盘输入模块AT89S52显示模块键盘输入模块AT89S52报警电路复位电路报警电路复位电路开锁电路密码存储模块开锁电路密码存储模块图2-1系统结构框图各模块功能如下:1.键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。2.显示模块:用于完成对系统状态显示及操作提示功能。3.复位电路:完成系统的复位。4.报警电路:用于完成输错密码时候的警报功能。5.密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。6.开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。2.2主要芯片介绍2.2.1AT89S52AT89S52单片机是一个低功耗,高性能CMOS8位单片机,片内含8KBytesISP<In-systemprogrammable>的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案[10]。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52的管脚分布如图2-2所示。图2-2AT89S52芯片管脚P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写"1"时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址"1"时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P3口作为AT89S52的一些特殊功能管脚备选功能,P3.0RXD〔串行输入口P3.1TXD〔串行输出口P3.2/INT0〔外部中断0P3.3/INT1〔外部中断1P3.4T0〔记时器0外部输入P3.5T1〔记时器1外部输入P3.6/WR〔外部数据存储器写选通P3.7/RD〔外部数据存储器读选通2.2.2存储芯片AT24C02AT24C02是美国Atmel公司的低功耗CMOS型E²PROM,内含256×8位存储空间,具有工作电压宽<2.5~5.5V>、擦写次数多<大于10000次>、写入速度快<小于10ms>、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I²C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA<串行数据线>及SCL<串行时钟线>两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。AT24C02正是运用了I²C规程,使用主/从机双向通信,主机<通常为单片机>和从机<AT24C02>均可工作于接收器和发送器状态。主机产生串行时钟信号<通过SCL引脚>并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。管脚描述:SCL为串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDL为串行数据/地址:双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或。A0、A1、A2为器件地址输入端:当使用24C02时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。WP为写保护:如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP,管脚连接到Vss或悬空,允许器件进行正常的读/写操作。管脚图如图2-3所示。图2-3AT24C02引脚图3硬件设计本系统外围电路包括键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4×4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成。其原理图如图3-1所示。图3-1电路原理图3.1键盘输入模块由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4×4键盘不但能完成密码的输入还能作特别功能键使用。键盘的每个按键功能在程序设计中设置。它与单片机的连接如图3-2所示。图3-2键盘输入模块3.2密码存储模块图3-3所示AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89S51试验开发板上它们都接地,第5脚和第8脚分别为正、负电源。第8脚SDL为串行数据输入/输出,数据通过这条双向I²C总线串行传送,在AT89S52试验开发板上和单片机的P3.6连接。第6脚SCL为串行时钟输入线,在AT89S52试验开发板上和单片机的P3.7连接。SDL和SCL都需要和正电源间各接一个5.1K的电阻上拉。第6脚接P3.5。AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。图3-3密码存储电路3.3复位部分单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R5<<R6因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态。R5的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电。其电路如图3-4所示。图3-4复位电路3.4晶振部分AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C3按图4-5所示方式连接。晶振、电容C2/C3及片内与非门〔作为反馈、放大元件构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C2、C3的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在5~30pF之间。根据实际情况,本设计中采用12MHZ作为系统的外部晶振。电容取值为10pF。其电路图如图3-5所示。图3-5晶振电路3.5显示模块显示部分由液晶显示器LCD1602取代普通的数码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示"DOOROPEN",单片机其中P2.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示"CODEWRONG",P2.0输出的是高电平,电子密码锁不能打开。通过LCD显示屏,可以清楚地判断出密码锁所处的状态。电路图如图3-6所示。图3-6显示电路3.6报警部分报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,"叮"声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导通蜂鸣器发出噪声报警。如图3-7所示。图3-7报警电路3.7开锁部分开锁控制电路的功能是当输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在E2PROM中作为锁码指令。只有用户操作键盘时,单片机的电源端才能得到3V电源,否则,单片机处于节电工作方式。开锁步骤如下:首先按下键盘上的开锁按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。当用户输入密码后,单片机自动识别密码,如果密码不符,则报警。只有当密码正确,单片机才能使继电器处于开锁状态。具体电路如图3-8所示。图3-8开锁电路4系统软件设计4.1系统程序流程图4.1.1主程序流程图主程序设计流程图如图4-1所示。开始开始初始化开锁修改密码正确输入旧密码开锁出错报警原密码相同返回设新密码图4-1主程序流程图4.1.2键功能程序流程图键功能程序流程图如图4-2所示。键功能程序键功能程序键值=0~9?键值=开锁?键值=确认?键值=设置?返回密码输入程序确认程序设置程序开锁程序 Y N Y N Y N Y N图4-2键功能流程图4.1.3开锁程序流程图开锁程序流程图如图4-3所示。LCD初始化LCD初始化按开锁键按开锁键输入密码输入密码确认程序开锁确认程序开锁N输入密码正确?N输入密码正确?报警程序报警程序开锁成功返回 Y开锁成功返回图4-3开锁流程图4.2子程序举例4.2.1开锁子程序CL:NOPSETBL3MOVBUFF,#00H;消密码缓冲MOVTIMERS,#00HLCALLINITPS;消除AT缓冲,加调电存储后一定要加上LCALLXSCLCALLBPLCALLBPLCALLT100MSDLCALLBPCLRFLAG1AJMPCH_KEYFU4:NOPLCALLBPLCALLT100MSDLCALLBPLCALLT100MSDLCALLBPLCALLT100MSDLCALLBPLCALLT100MSDLCALLBPCLRFLAG1AJMPCH_KEYFU3:NOPLCALLBPLCALLT100MSDLCALLBPLCALLKILLXS;关闭显示CLRFLAG1AJMPCH_KEYFU1:NOPLCALLXSCJBF_F1,NEXT_F1CLRL1LCALLBPSETBF_F1AJMPCH_KEYNEXT_F1:SETBL1LCALLBPCLRF_F1LCALLCH_STATE;查看现在的状态以防误按SETBTR1;报警限制暂时不开INCF_F1CLRFLAG1AJMPCH_KEYFU2:NOPJBF_F2,NEXT_F2CLRL2LCALLBPSETBF_F2AJMPCH_KEYNEXT_F2:SETBL2LCALLBPCLRF_F2CLRFLAG1AJMPCH_KEY;***************按键的功能描述*************************EN:NOPJBBUF_FULL,GOONAJMPEXITGOON:CLRBUF_FULLJBF_F2,AT_WRON;F2按键标志,若为1,则调用修改密码子程序。LCALLAT_RADELCALLC_PSW;比较密码子程序JBPSW_F,OPEN;密码比较正确,则调用开锁子程序LCALLXSDINCTIMERS2MOVR7,TIMERS2;密码错误,调入输入密码输入次数,准备锁定键盘CJNER7,#03H,D0D0:JCNEXT1;错误次数小3次LCALLXSE;锁定5分钟LCALLWARN2SLCALLLOCK_1MNEXT1:LCALLWARN2S;报警2分钟LCALLXSAEXIT:LCALLINITPSMOVBUFF,#00HCLRFLAG1MOVTIMERS,#00HAJMPCH_KEY;跳出AT_WRON:LCALLAT_WRLCALLXSFLCALLBPLCALLT100MSDLCALLBPLCALLT500MSDLCALLKILLXSLCALLT500MSDLCALLXSFLCALLT500MSDLCALLKILLXSLCALLT500MSDLCALLXSFLCALLT500MSDNOPNOPLCALLXSAAJMPEXITOPEN:MOVA,TIMERS1CJNEA,#09H,CLT1CLT1:JCGOON1MOVTIMERS1,#00HGOON1:INCTIMERS1;输入回车的次数MOVTIMERS2,#00HSETBL3CLRPSW_FLCALLXSBCLRJDQ;开门LCALLBPLCALLBPLCALLBPLCALLBPLCALLSECLCALLSECLCALLSECLCALLSECLCALLSECLCALLSECLCALLSECLCALLSECSETBJDQLCALLXSANOPAJMPEXITCLR_BUF:MOVR7,#06HMOVR0,#6FHLOOP1:MOVA,#00HMOV@R0,ADECR0DJNZR7,LOOP1RET4.2.2按键扫描子程序SBIE:MOVR2,#0EFH;识别按键子程序,数据送A保存MOVR4,#00HLK4:MOVA,R2MOVP0,ANOPMOVA,P0JBACC.0,LONEMOVA,#00HAJMPLKPLONE:JBACC.1,LTWOMOVA,#08HAJMPLKPLTWO:JBACC.2,LTHRMOVA,#10HAJMPLKPLTHR:JBACC.3,NEXTT;判断下一列MOVA,#18HLKP:ADDA,R4PUSHACCLK3:ACALLKSJNZLK3POPACCRETNEXTT:INCR4MOVA,R2JNBACC.7,KNDRLAMOVR2,AAJMPLK4KND:AJMPCH_KEYKS:MOVP0,#0FHNOPMOVA,P0CPLAANLA,#0FHNOPRETCH_KF:CLRCMOVA,BUFF;判断是数字按键还是功能按键,为1表示功能键CJNEA,#17H,KYKY:JCSET_CH;假若是数字按键则标志置为0SETBFLAG1;假若是功能按键则标志置为1AJMPCHKE_ENDSET_CH:CLRCMOVA,BUFFSUBBA,#00HJNZEN_CHSETBFLAG1AJMPCH_ENDEN_CH:MOVA,BUFFSUBBA,#03HJNZDIGSETBFLAG1AJMPCH_ENDDIG:CLRFLAG1CH_END:NOPCHKE_END:RETT12MS:MOVR7,#18HTM1:MOVR6,#0FFHTM66:DJNZR6,TM66DJNZR7,TM1RET4.2.3密修改码子程序XSC:PUSHACCPUSHPSWLCALLKILLXSSETBRS1;切换到第三组寄存器。防止操作数读取错误。MOVR6,TIMERSMOVA,R6SUBBA,#01HJNCSC0JZSC1SC0:MOVSBUF,#0FEHJNBTI,$CLRTISC1:MOVA,R6SUBBA,#02HJNCSC11JNZSC2SC11:MOVSBUF,#0FEHJNBTI,$CLRTISC2:MOVA,R6SUBBA,#03HJNCSC22JNZSC3SC22:MOVSBUF,#0FEHJNBTI,$CLRTISC3:MOVA,R6SUBBA,#04HJNCSC33JNZSC4SC33:MOVSBUF,#0FEHJNBTI,$CLRTISC4:MOVA,R6SUBBA,#05HJNCSC44JNZSC5SC44:MOVSBUF,#0FEHJNBTI,$CLRTISC5:MOVA,R6SUBBA,#06HJNCSC55JNZSC6SC55:MOVSBUF,#0FEHJNBTI,$CLRTISC6:MOVA,R6SUBBA,#07HJNCSC66JNZEXIT_CSC66:MOVSBUF,#0FEHJNBTI,$CLRTINOPNOPEXIT_C:NOPCLRRS1POPPSWPOPACCNOPRET;密码输入错误的提示XSD:PUSHACCPUSHPSWMOVSBUF,#98HJNBTI,$CLRTIMOVSBUF,#79HJNBTI,$CLRTIMOVSBUF,#11HJNBTI,$CLRTIMOVSBUF,#79HJNBTI,$CLRTIMOVSBUF,#79HJNBTI,$CLRTIMOVSBUF,#38HJNBTI,$CLRTIPOPPSWPOPACCRET5实验结果与数据处理5.1测试步骤1、按照要求将设计好的电路图,利用QUARTUSII软件,建立工程,添加文件,将电路图正确地画出来。2、画好电路图后进行编译,如果编译不成功,仔细查错。3、编译成功后,进入定义管脚阶段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石英玻璃管(棒)项目发展计划
- 2025年卫星整流罩合作协议书
- 2025年GSM和CDMA制移动通信检测设备项目发展计划
- 耐心资本与创新投入对企业绩效的协同效应研究
- 2025年嘉兴桐乡市机关事业单位选调考试试题【答案】
- 2025年增敏化学发光免疫分析仪项目发展计划
- 2025年高压清洗车合作协议书
- 智能教室的硬件设备与技术要求
- 教育政策的跨领域影响与未来趋势
- 2025年金太阳广东省物理高二下期末学业质量监测试题含解析
- GB/T 23312.3-2009漆包铝圆绕组线第3部分:130级聚酯漆包铝圆线
- GB/T 18380.13-2022电缆和光缆在火焰条件下的燃烧试验第13部分:单根绝缘电线电缆火焰垂直蔓延试验测定燃烧的滴落(物)/微粒的试验方法
- 中国铂族金属供需发展趋势
- 国外发票模板invoice
- 计量分中心在供电公司工作会议上的表态发言(4篇)
- GB 19304-2018食品安全国家标准包装饮用水生产卫生规范
- 小学英语素材-1-5年级英语牛津词汇表(带音标) 牛津上海版
- 2022年重庆出版集团有限公司招聘笔试试题及答案解析
- DB11-T1836-2021 城市桥梁工程施工技术规程高清最新版
- 大猪料配方设计思路课件
- 川崎病课件讲稿
评论
0/150
提交评论