毕业设计(论文)基于单片机密码锁的设计(已通过答辩).doc
《毕业设计(论文)基于单片机密码锁的设计(已通过答辩).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机密码锁的设计(已通过答辩).doc(76页珍藏版)》请在三一办公上搜索。
1、目 录1 概述- 1 -2 系统设计 - 2 - 2.1 结构设计- 2 -2.2 结构设计- 3 -3 硬件设计- 4 - 3.1 ATS8952简介- 5 -3.2 液晶显示电路- 6 -3.3 发声电路- 12 -3.4 开锁控制电路- 13 -3.5 密码存储电路- 13 -3.6 键盘输入电路- 17 -3.7 手动复位电路- 18 -3.8 晶振电路- 19 -4 软件设计- 20 -4.1 系统主程序- 20 -4.2 系统相关子程序- 28 -5 系统调试与测试- 33 -6 结论- 36 -参考文献- 37 -谢 辞- 38 -附录一:- 39 -附录二:- 40 -附录三:
2、- 79 -1 概述 锁具是源流千古的社会性用品,主要用于日常生活和工作中,住宅与部门的安全防范。当前门锁的主流是弹子锁,其保密性不强,钥匙容易被仿制和意外丢失;且持有者需随时携带钥匙,使用不方便。保存贵重物件的保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高昂,且易出现故障。随着科技、经济和社会的发展,当今社会公共安全防范系统对锁具的保密性、牢固性、可靠性、耐用性以及安装使用等提出了新的更高的要求。针对原有锁具的特点和缺陷,为满足人们对锁的使用需求,增加其安全性,用密码代替钥匙的电子密码锁应运而生。早期开发的电子密码锁由于电子器件所限,种类不多,保密性差,最基本的就是只依靠最简
3、单的模拟电子开关来实现的,制作简单但不安全。后来多是基于EDA实现,其电路结构复杂,电子元件繁多,也有使用早先2051系列单片机来实现的,但密码简单,容易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,保密安全性更强;由以前的单密码输入发展到现在密码加感应元件,实现了真正的电子加密。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。电子密码锁的出现给人们带来了极大的方便,有很广阔的市场前景。现在应用较广的电子密码锁是以芯片为核心,通过
4、编程来实现的。其性能和安全性已大大超过了机械锁,特点有:l 保密性好,编码量多。l 随机开锁成功率几乎为零。l 密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。l 误码输入保护。当输入密码多次错误时,报警系统自动启动。l 操作简单易行,一学即会。论文阐述基于美国Atmel公司的AT89S52单片机,采用液晶显示器1602作为输出显示系统提示信息的电子密码锁的设计与实现。2 系统设计2.1 功能设计本系统拟采用单片机为主控芯片,由于单片机种类繁多,各种型号都有其各自特点,应用于不同的环境,因此在选用时要多加比较。一般来说,在选取单片机时从下面几个方面考虑
5、:性能、存储器、运行速度、I/O口、定时/计数器、串行/并行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性等等。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用该单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机I/O接口上外接输入键盘用于输入和一些功能的控制。考虑到密码的存在形式一般为数字或字母形式,而字母数量众多,并且排列不规则,不能使用矩阵式键盘排列字母;并且按键过多会大大增加系统的体积,对适用性极为不利,故只使用数字作为密码。阿拉伯数字不仅便于用户记忆,而且通用性极强,是作为密码的首选。10个数字需要1个不同的按
6、键,故选用为4*4矩阵键盘;除去10个数字键,还剩6个按键可设置不同的功能。用户使用电子密码锁开锁的步骤为:用户输入数字密码,输入完毕后按确认键。如果密码正确,再按开锁键,即可开锁。如果密码错误则报警,如果密码错误多次,还会锁定键盘。这里需要蜂鸣器提示用户按键已按下,开锁需要继电器开关。液晶显示器则直观显示系统当前状态和提示用户需要做的操作。用户修改密码步骤为:首先输入旧密码,输入完毕后按确认键。如果密码正确再按改密键。输入两次新密码并确认。如果两次密码输入长度一致,则密码修改成功。如果两次输入不一致,则密码修改失败。失败后只能重新输入旧密码才能继续改密。为防止系统发生异常,还应提供复位开关,
7、在系统无法正常运转时手动复位。2.2 结构设计单片机密码存储开锁部分液晶显示发声部分电源键盘复位晶振图2-1 系统结构图如图2-1所示,整个系统以单片机为核心,辅以若干外围电路。其中密码存储部分是输入输出双向结构,保证密码可以掉电保存,上电后读出。其余都是单向输入或输出。电源部分为整个系统供电,采用5V直流电源。键盘输入部分采用4*4矩阵行列键盘,需不断扫描检查有无按键按下。复位部分提供手动复位功能,当系统发生异常或未知错误时可以由用户手动复位单片机。晶振部分是提供外部石英晶体谐振器。系统输出有:液晶显示部分,为用户显示字符提示当前操作状态。蜂鸣器发声,提示用户按键已按下,以及密码正确的提示音
8、,错误的警告音等。开锁电路部分是控制继电器,只有密码正确并选择开锁后,继电器内部的电磁铁才会吸合,发光二极管电路连通后发光,表示锁已打开。3 硬件设计根据上面的结构设计思路,具体设计中选用一块20cm*10cm的通用PCB板做为系统焊接板。单片机为Atmel公司的AT89S52,电源部分为直流4.5V,3节5号电池供电,实验时也可以用直流5V电源供电。键盘输入部分为4*4矩阵薄膜键盘,不需上拉电阻,但扫描时需先给行线或列线供电。液晶显示器选用1602,可以显示两行,每行16个字符。蜂鸣器为有源5V。继电器为5脚5V。密码存储选用串行AT24C02芯片,256B空间,足够存储密码,采用串行传输可
9、以极大减少连线数目。系统原理电路图如图3-1所示。下面按系统的结构具体介绍一些电路及其所用的芯片。图3-1 系统原理电路图3.1 AT89S52简介AT89S52是一款低功耗、高性能CMOS8位微控制器,具有8K可编程 Flash存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。AT89S52具有以下标准功能:8K字节Flash, 256字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。其引脚如图3-2所示,下面简要介绍其引脚功能:图3
10、-2 AT89S52引脚图VCC:电源。本设计中接电源正极。GND:地。本设计中接电源负极。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写1时,引脚用作高阻抗输入。 P1口:P1口是一个具有内部上拉电阻的8 位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对 P1 端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写1时,内部上拉电阻把端口拉高,此时可以
11、作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。EA/VPP:访问外部程序存储器控制信号。为使能从000
12、0H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。本设计中不需要外部程序存储器,因此需接高电平。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。以上是AT89S52的引脚功能介绍,下面简要介绍AT89S52的存储
13、器结构。AT89S52有单独的程序存储器和数据存储器,外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于AT89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52有256字节片内数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。3.2 液晶显示电路3.2.1 LCD160
14、2简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,市面上字符液晶绝大多数是基于HD44780液晶芯片,HD44780是带西文字库的液晶显示控制器,用户只需要向HD44780送ASCII的字符码,HD44780就按照内置的ROM点阵发生器自动在LCD液晶显示器上显示出来。所以,HD44780主要适用于显示西文ASCII字符内容的液晶显示。图3-3 LCD1602引脚图1602字符型LCD能够同时显示16*2即32个字符(16列2行)。其内置192种字符(160个5*7点阵字符和32个5*10点阵字符),具有64个字节的自定义字符RAM,可自定义8个5*8点阵字符或4个5*
15、11点阵字符。1602通常有14条引脚线或16条引脚线两种,多出来的2条线是背光电源线和地线,带背光的比不带背光的略厚,控制原理与14脚的LCD完全一样,是否带背光在应用中并无差别。本设计中采用带背光16引脚线的。其主要技术参数为:显示容量:162个字符。芯片工作电压:4.5-5.5V。工作电流:2.0mA(5.0V)。模块最佳工作电压:5.0V。字符尺寸:2.954.35(WH)mm。LCD1602的16个引脚可参照图3-3,其引脚功能分别为:VSS:电源地(GND)。VCC:电源电压(5V)。V0:LCD驱动电压,液晶显示器对比度调整端。使用时可以通过一个10K的电位器调整对比度,接正电源
16、时对比度最弱,接地电源时对比度最高。RS:寄存器选择输入端,选择模块内部寄存器类型信号。RS=0,进行写模块操作时指向指令寄存器,进行读模块操作时指向地址计数器。RS=1,无论进行读操作还是写操作均指向数据寄存器。图3-4 LCD1602写时序R/W:读写控制输入端,选择读/写模块操作信号。R/W=0,读操作;R/W=1,写操作。本设计中只需往LCD里写数据即可,写时序见图3-4。E:使能信号输入端。读操作时,高电平有效;写操作时,下降沿有效DB0DB7:数据输入/输出口,单片机与模块之间的数据传送通道。选择4位方式通讯时,不使用DB0DB3。BLA:背光的正端+5V。BLK:背光的负端0V。
17、1602模块内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。控制器接受来自MPU的指令和数据,控制着整个模块的工作。主要由显示数据缓冲区DDRAM,字符发生器CGROM,字符发生器CGRAM,指令寄存器IR,地址寄存器DR,忙标志BF,地址计数器AC以及时序发生电路组成。模块通过数据总线DB0DB7和E、R/W、RS三个输入控制端与MPU接口。这三根控制线按照规定的时序相互协调作用,使控制器通过数据总线接受MPU发来的数据和指令,从CGROM中找到欲显示字符的字符码,送入DDRAM,在LCD显示屏上与DDRAM存储单元对应的规定位置显示出该字符。控制器还可以根据MPU的指令,实现字
18、符的显示,闪烁和移位等显示效果。CGROM内提供的是内置字符码,CGRAM则是供用户存储自定义的点阵图形字符。模块字符在LCD显示屏上的显示位置与该字符的字符代码在显示缓冲区DDRAM内的存储地址一一对应。LCD1602模块内部具有两个8位寄存器:指令寄存器IR和地址寄存器DR,用户可以通过RS和R/W输入信号的组合选择指定的寄存器,进行相应的操作。表3-1中列出了组合选择方式:表3-1 寄存器选择组合RSR/W操 作00将DB0DB7的指令代码写入指令寄存器IR中01分别将状态标志BF和地址计数器AC内容读到DB7和DB6DB010将DB0DB7的数据写入数据寄存器中,模块的内部操作将数据写
19、到DDRAM或者CGRAM中的数据送入数据寄存器中11将数据寄存器内的数据读到DB0DB7,模块的内部操作自动将DDRAM或者CGRAM中的数据送入数据寄存器中1602提供了较为丰富的指令设置,通过选择相应的指令设置,用户可以实现多种字符显示样式。下面仅简要介绍本次设计中需要用到的一些指令设置。l 清屏指令 Clear display清显示指令将空位字符码20H送入全部DDRAM地址中,时DDRAM中的内容全部清除,显示消失,地址计数器AC=0,自动增一模式。显示归位,光标闪烁回到原点(显示屏左上角),但不改变移位设置模式。清屏指令码见表3-2。表3-2 清屏指令码RSR/WDB7DB6DB5
20、DB4DB3DB2DB1DB00000000001l 进入模式设置指令 Entry mode set 见表3-3,进入模式设置指令用于设定光标移动方向和整体显示是否移动。表3-3 模式设置指令码RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DS I/D:字符码写入或者读出DDRAM后DDRAM地址指针AC变化方向标志。I/D=1,完成一个字符码传送后,AC自动加1。I/D=0,完成一个字符码传送后,AC自动减1。 S:显示移位标志。S=1,完成一个字符码传送后显示屏整体向右(I/D=0)或向左(I/D=1)移位。S=0,完成一个字符码传送后显示屏不移动。l 显示
21、开关控制指令 Display on/off control 指令码见表3-4,该指令功能为控制整体显示开关,光标显示开关和光标闪烁开关。表3-4 显示开关控制指令码RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000001DCB D:显示开/关标志。D=1,开显示;D=0,关显示。关显示后,显示数据仍保持在DDRAM中,开显示即可再现。 C:光标显示控制标志。C=1,光标显示;C=0,光标不显示。不显示光标并不影响模块其他显示功能。显示5*8点阵字体时,光标在第八行显示;显示5*10点阵字符时,光标在第11行显示。 B:闪烁显示控制标志。B=1,光标所在位置会交替显示全黑点阵和显
22、示字符,产生闪烁效果;B=0,光标不闪烁。l 功能设置指令 Function set 功能设置指令用于设置接口数据位数,显示行数以及字形。指令码见表3-5。表3-5 功能设置指令码RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLNF* DL:数据接口宽度标志。DL=1,8位数据总线DB7DB0;DL=0,4位数据总线DB7DB4,DB3DB0不使用,此方式传送数据需分两次进行。 N:显示行数标志。N=0,显示一行;N=1,显示两行。F:显示字符点阵字体标志。F=0,显示5*7点阵字符;F=1,显示5*10点阵字符。1602模块内部设有上电自动复位电路,当外加电源电压超过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 单片机 密码锁 设计 通过 答辩

链接地址:https://www.31ppt.com/p-3980271.html