课程设计-基于AT89S52单片机的液晶显示电子密码锁的设计与实现.doc
《课程设计-基于AT89S52单片机的液晶显示电子密码锁的设计与实现.doc》由会员分享,可在线阅读,更多相关《课程设计-基于AT89S52单片机的液晶显示电子密码锁的设计与实现.doc(20页珍藏版)》请在三一文库上搜索。
1、 课程设计题 目:电子密码锁设计学院(系):工业学院专业年级:07级1班机械设计制造及其自动化学生姓名:指导教师:完成日期:2010-1-5- 13 -摘 要单片机技术是智能化检测与控制领域应用非常普及并且具有很大潜力的技术。论文阐述一个基于单片机的液晶显示电子密码锁的设计与实现。系统采用美国Atmel公司的AT89S52单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,4*4矩阵薄膜键盘作为输入设备,CMOS串行E2PROM存储器AT24C02作为数据存储器,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用汇编语言编写。设计的系统液晶显示,密码修改方便,具有报警
2、、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值。关键词:密码锁;单片机;AT89S52;LCD1602;AT24C021 引言 锁具是源流千古的社会性用品,主要用于日常生活和工作中,住宅与部门的安全防范。当前门锁的主流是弹子锁,其保密性不强,钥匙容易被仿制和意外丢失;且持有者需随时携带钥匙,使用不方便。保存贵重物件的保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高昂,且易出现故障。随着科技、经济和社会的发展,当今社会公共安全防范系统对锁具的保密性、牢固性、可靠性、耐用性以及安装使用等提出了新的更高的要求。针对原有锁具的特点和缺陷,为满足人们对锁的使用需求,
3、增加其安全性,用密码代替钥匙的电子密码锁应运而生。2 系统设计2.1 功能设计本系统拟采用单片机为主控芯片,由于单片机种类繁多,各种型号都有其各自特点,应用于不同的环境,因此在选用时要多加比较。一般来说,在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行/并行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性等等。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用该单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。单片机密码存储开锁部分液晶显示发声部分电源键盘复位晶振图2-1 系统结构图在单片机I/
4、O接口上外接输入键盘用于输入和一些功能的控制。考虑到密码的存在形式一般为数字或字母形式,而字母数量众多,并且排列不规则,不能使用矩阵式键盘排列字母;并且按键过多会大大增加系统的体积,对适用性极为不利,故只使用数字作为密码。阿拉伯数字不仅便于用户记忆,而且通用性极强,是作为密码的首选。10个数字需要1个不同的按键,故选用为4*4矩阵键盘;除去10个数字键,还剩6个按键可设置不同的功能。用户使用电子密码锁开锁的步骤为:用户输入数字密码,输入完毕后按确认键。如果密码正确,再按开锁键,即可开锁。如果密码错误则报警,如果密码错误多次,还会锁定键盘。这里需要蜂鸣器提示用户按键已按下,开锁需要继电器开关。液
5、晶显示器则直观显示系统当前状态和提示用户需要做的操作。用户修改密码步骤为:首先输入旧密码,输入完毕后按确认键。如果密码正确再按改密键。输入两次新密码并确认。如果两次密码输入长度一致,则密码修改成功。如果两次输入不一致,则密码修改失败。失败后只能重新输入旧密码才能继续改密。为防止系统发生异常,还应提供复位开关,在系统无法正常运转时手动复位。2.2 结构设计如图2-1所示,整个系统以单片机为核心,辅以若干外围电路。其中密码存储部分是输入输出双向结构,保证密码可以掉电保存,上电后读出。其余都是单向输入或输出。电源部分为整个系统供电,采用5V直流电源。键盘输入部分采用4*4矩阵行列键盘,需不断扫描检查
6、有无按键按下。复位部分提供手动复位功能,当系统发生异常或未知错误时可以由用户手动复位单片机。晶振部分是提供外部石英晶体谐振器。系统输出有:液晶显示部分,为用户显示字符提示当前操作状态。蜂鸣器发声,提示用户按键已按下,以及密码正确的提示音,错误的警告音等。开锁电路部分是控制继电器,只有密码正确并选择开锁后,继电器内部的电磁铁才会吸合,发光二极管电路连通后发光,表示锁已打开。3 硬件设计图3-1 系统原理电路图根据上面的结构设计思路,具体设计中选用一块20cm*10cm的通用PCB板做为系统焊接板。单片机为Atmel公司的AT89S52,电源部分为直流4.5V,3节5号电池供电,实验时也可以用直流
7、5V电源供电。键盘输入部分为4*4矩阵薄膜键盘,不需上拉电阻,但扫描时需先给行线或列线供电。液晶显示器选用1602,可以显示两行,每行16个字符。蜂鸣器为有源5V。继电器为5脚5V。密码存储选用串行AT24C02芯片,256B空间,足够存储密码,采用串行传输可以极大减少连线数目。系统原理电路图如图3-1所示。下面按系统的结构具体介绍一些电路及其所用的芯片。3.1 AT89S52简介AT89S52是一款低功耗、高性能CMOS8位微控制器,具有8K可编程 Flash存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。AT89S52具有以下标准功能
8、:8K字节Flash, 256字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。其引脚如图3-2所示,下面简要介绍其引脚功能:图3-2 AT89S52引脚图VCC:电源。本设计中接电源正极。GND:地。本设计中接电源负极。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写1时,引脚用作高阻抗输入。 P1口:P1口是一个具有内部上拉电阻的8 位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对 P1 端口写1时,内部上拉电阻把端口拉高
9、,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。RST:复位输入。晶振工作时,RST脚持续2个机器周期高电
10、平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。本设计中不需要外部程序存储器,因此需接高电平。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSE
11、N在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。以上是AT89S52的引脚功能介绍,下面简要介绍AT89S52的存储器结构。AT89S52有单独的程序存储器和数据存储器,外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于AT89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52有256字节片内数据存储器。高128
12、字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。3.2 液晶显示电路3.2.1 LCD1602简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,市面上字符液晶绝大多数是基于HD44780液晶芯片,HD44780是带西文字库的液晶显示控制器,用户只需要向HD44780送ASCII的字符码,HD44780就按照内置的ROM点阵发生器自动在LCD液晶显示器上显示出来。所以,HD44780主要适用于显示西文ASCII字符内容的液晶显示。图
13、3-3 LCD1602引脚图1602字符型LCD能够同时显示16*2即32个字符(16列2行)。其内置192种字符(160个5*7点阵字符和32个5*10点阵字符),具有64个字节的自定义字符RAM,可自定义8个5*8点阵字符或4个5*11点阵字符。1602通常有14条引脚线或16条引脚线两种,多出来的2条线是背光电源线和地线,带背光的比不带背光的略厚,控制原理与14脚的LCD完全一样,是否带背光在应用中并无差别。本设计中采用带背光16引脚线的。其主要技术参数为:显示容量:162个字符。芯片工作电压:4.5-5.5V。工作电流:2.0mA(5.0V)。模块最佳工作电压:5.0V。字符尺寸:2.
14、954.35(WH)mm。LCD1602的16个引脚可参照图3-3,其引脚功能分别为:VSS:电源地(GND)。VCC:电源电压(5V)。V0:LCD驱动电压,液晶显示器对比度调整端。使用时可以通过一个10K的电位器调整对比度,接正电源时对比度最弱,接地电源时对比度最高。RS:寄存器选择输入端,选择模块内部寄存器类型信号。RS=0,进行写模块操作时指向指令寄存器,进行读模块操作时指向地址计数器。RS=1,无论进行读操作还是写操作均指向数据寄存器。R/W:读写控制输入端,选择读/写模块操作信号。R/W=0,读操作;R/W=1,写操作。本设计中只需往LCD里写数据即可,写时序见图3-4。E:使能信
15、号输入端。读操作时,高电平有效;写操作时,下降沿有效DB0DB7:数据输入/输出口,单片机与模块之间的数据传送通道。选择4位方式通讯时,不使用DB0DB3。BLA:背光的正端+5V。BLK:背光的负端0V。3.2.2 LCD1602电路图3-5 液晶显示电路图如图3-5,AT89S52的P0口接1602的8位数据线,通过输出数据控制1602显示不同的提示字符。1602本身内置各种字符,还可以自定义显示字符。本设计中根据不同场合1602会显示各种提示字符,显示内容对应含义见表3-6。P3.0P3.2接1602控制端,其中P3.0接使能端E,写操作时,使能端下降沿有效。P3.1接读写控制端R/W,
16、R/W=0,读操作;R/W=1,写操作。P3.2接寄存器选择端RS,RS=0,写操作时指向指令寄存器,读操作时指向地址寄存器;RS=1,无论读操作还是写操作都指向数据寄存器。LCD1602的VSS为电源地,需接地;VDD为电源电压;V0为LCD驱动电压,接电位器,通过调节电位器控制显示的亮度,使LCD显示清晰而无黑影。背光电源线LCD正负两端分别接电源和地即可。3.3 发声电路图3-6 发声电路图发声部分的电路如图3-6,就是用P2.1口控制一个有源蜂鸣器发声,作为提示音或报警音。程序设定为每当识别到有一位按键被按下时,蜂鸣器发声0.1S;开锁时停顿2S发声2S,发声3次;密码错误时每次停顿0
17、.5S发声1S,错误5次以内时错N次发N声,错误5次及以上发声10次。蜂鸣器有两个引脚,其中长脚为正极,短脚为负极。其发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它。由于单片机I/O引脚输出的电流较小,基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,一般使用三极管来放大电流就可以了。本设计中使用三极管9012,P2.1口高电平时三极管截至,蜂鸣器不发声;P2.1口低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P2.1脚的电平来使蜂鸣器发出声音和关闭。图3-7 开锁控制电路图3.4 开锁控制电路开锁控制电
18、路如图3-7,电路的功能就是在输入正确的密码后开锁。系统使用单片机P2.0引脚发出信号,经三极管放大之后,由继电器驱动电磁阀将锁打开。设计中用一个发光二极管模拟表现锁的开关,只有锁打开之后,继电器吸合至常开触电,发光二极管才会亮起;实际应用中用继电器控制开锁电路的开关。在现代自动控制设备中,都存在电子电路(弱电)与电气电路(强电)的相互连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(如电动机、电磁铁、电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和工作人员的人身的安全。继电器便能完成这一桥梁作用。继电器实际上是用较小的电流去控制较大电流的一种“自动
19、开关”,在电路中起着自动调节、安全保护、转换电路等作用。在大多数情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个、数个触点。当电磁铁的绕组中有电流通过时,衔铁被电磁铁吸引,因而就改变了触点的状态。3.5.1 AT24C02简介AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256*8位存储空间,具有工作电压宽(2.5V5.5V),擦写次数多(大于10000次),写入速度快(小于10ms),抗干扰能力强,数据不易丢失,体积小等特点。并且它是采用I2C总线式进行数据读写的串行操作,只占用很少的资源和I/O线。AT24C02有一个16字节页写缓冲器,该器件通过I
20、2C总线接口进行操作,还有一个专门的写保护功能。AT24C02的引脚如图3-9,各引脚功能如下:SCL:串行时钟输入管脚,用于产生器件所有数据发送或接收的时钟。SDA:双向串行数据/地址管脚,用于器件所有数据的发送或接收。图3-9 AT24C02引脚图A0、A1、A2:器件地址输入端。这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。使用AT24C02最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到VSS。WP:写保护。如果WP管脚连接到Vcc,所有的内容都被写保护,只能读。当WP管脚连接到Vss或悬空,允许器件进行正常的读
21、/写操作。图3-14 密码存储电路图3.5.2 AT24C02电路如图3-14所示,该部分电路的作用就是使用AT24C02保存密码,使密码在单片机掉电之后仍能保存。AT24C02只需要串行时钟SCL引脚接P3.5,串行数据/地址SDA引脚接P3.6,即可完成数据和指令的传送,比起并行传输节省I/O口资源。SCL和SDA各需接一个5.1K的上拉电阻。写保护WP接地,使AT24C02可进行正常读写。系统初始化时,从AT24C02中读出密码信息存储到单片机中,用户修改密码后再将新密码写入AT24C02。这样即便单片机掉电,重启后仍能读取用户密码,从而达到掉电存储的目的。3.6 键盘输入电路图3-15
22、 键盘输入电路图本设计中采用的4*4矩阵键盘共有16个键位,4根行线连P1口低四位,4根列线连P1口高四位(见图3-15所示)。在按键未被按下时,每一条行线与线列线的交叉处互不相通,当某个按键被按下后,该按键所在的行线和列线连通。这样在P1口的高4位和低4位中各有一位互相连通。通过行列扫描检测出这两位,即可识别出被按下的键。具体识别方式和按键功能完全由软件自定义。系统具体使用的键盘是一体式薄膜键盘,更轻薄更便捷,有印刷字符,无需连接上拉电阻。但键盘内部无电流通过,行扫描之前需给4根行线赋高电平,如果某行和某列相通,则高电平变低,可知该行有按键被按下。然后进行列扫描,同理可识别出按键所在列。确认
23、行和列按键即被识别出来。3.7 手动复位电路为确保系统中电路稳定可靠工作,复位电路是必不可少的一部分。无论是哪种类型的单片机,用户在使用时都必须设计复位电路,以提高单片机在强磁场、电源尖峰等强干扰环境下的工作稳定性或实现从误操作中正确恢复初试状态。如果复位电路可靠性较差,将直接影响到整个单片机系统工作的稳定性,造成系统调试成功后出现死机或“程序跑飞”等现象。图3-16 手动复位电路图单片机复位是使CPU和系统的其他功能部件都处在一个确定的初试状态,并从这个状态开始工作,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。完成复位操作共需24个状态周期,复位结束后,单片机从地址00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 基于 AT89S52 单片机 液晶显示 电子 密码锁 设计 实现
链接地址:https://www.31doc.com/p-3292365.html