1、题目:液晶显示电子密码锁的设计摘 要本系统的设计可以用于家庭、企业、公司、酒店的电子密码门锁;电子密码保险柜;电子密码箱;电子防盗密匙及其他重要设备的开启。它以单片机AT89S52为核心,通过液晶显示实现人机对话,实时扫描键盘接口,发现有按键动作立即读取按键信息,并与存储器中的原始密码对比,密码相同则进入操作模式, 按C键,进入修改密码界面,按D键,则继电器吸合,实现开门功能;不同则显示密码错误。连续三次输入错误密码后蜂鸣器发出报警音。关键词电子密码锁;单片机;总线;LCD显示3.1.单片机最小系统 53.1.1单片机的说明 53.1.2单片机的应用 53.1.3单片机的结构特点 63.1.4
2、单片机引脚配置 83.2.44行列式扫描键盘 123.2.1键盘工作原理 123.2.2键盘工作方式 123.3.液晶显示 133.3.1液晶屏的基本结构 133.3.2液晶模块LCM12232的工作原理 143.4. 存储器AT24C01 163.4.1 AT24C01概述 163.4.2管脚配置和描述 163.4.3 IIC总线协议163.4.4 AT24C01读写操作184 硬件、软件设计报告194.1 硬件电路分析和设计报告194.1.1 单片机最小系统电路194.1.2 键盘电路204.1.3 液晶显示电路204.1.4 存储器电路214.1.5 蜂鸣器及继电器电路214.1.6 系
3、统硬件总图234.2 软件设计告244.2.1流程图244.2.2系统源程序244.3 操作说明365 总结37致谢39参考文献40液晶显示电子密码锁的设计1 绪论本系统的设计可以用于家庭、企业、公司、酒店的电子密码门锁;电子密码保险柜;电子密码箱;电子防盗密匙及其他重要设备的开启。它以单片机AT89S52为核心,通过液晶显示实现人机对话,实时扫描键盘接口,发现有按键动作立即读取按键信息,并与存储器中的原始密码对比,相同则进入操作模式不同则显示密码错误。连续三次输入错误密码后蜂鸣器发出报警音。在操作模式下,按C键,进入修改密码界面;按D键,则继电器吸合,实现开门功能。电子锁的研究从上世纪30年
4、代就开始了,在某些特殊场所早就有所应用。研究这种锁的初衷,是提高锁具的安全性,因为电子锁的密钥量(密码量)极大,可以和机械锁配合,避免因钥匙被仿制而出现的问题。在安全性极高的前提下,它的另一个特点无需钥匙却被越来越多的人所欣赏。因为人们携带的钥匙很多已成累赘,而电子锁只需记住一组密码,无需携带金属钥匙,免除了人们的烦恼。电子锁的种类繁多,从大的方面讲可能有数十种,例如数码锁、指纹锁、卡片锁、磁卡锁、生物锁等等。但能谈的上实用一些或者大众化一些的还是按键式电子密码锁。在系统使用单片机动态扫描键盘,内部处理从而控制显示电路部分和继电器开关。我选用的是51系列单片机。单片机在各个技术领域中的迅猛发展
5、,与单片机所构成的计算机应用系统的特点有关: 单片机构成的应用系统有较大的可靠性。 系统构建简洁、易行,能方便的实现系统功能。 由于构成的系统是一个计算机系统,相当多的功能由软件实现,故具有柔性特点。 有优异的性能价格比。2 任务说明2.1设计任务设计并制作一个液晶显示电子密码锁电路,其结构框图如图2-1:图 212.2基本模块(1) 单片机最小系统电路部分(2) 44行列式扫描键盘电路部分(3) 液晶显示电路部分(4) 存储器模块(5) 继电器和蜂鸣器电路部分3 总体方案设计与选择的论证3.1单片机最小系统3.1.1单片机的说明单片机的原名叫Microcontroller,即微型控制器。 顾
6、名思义,单片机有别于通用微型计算机,它是专门为控制和智能仪器设计的一种集成度很高的微型计算机。其控制功能强,有优异的性能/价格比,有很高的可靠性。因而,单片机的应用范围在不断的扩大,它已经成了生产中和人类生活中不可缺少的工具。下面介绍单片机在几个方面的典型应用。3.1.2单片机的应用(1)单片机在智能仪器中的应用单片机广泛的用于各种仪器仪表中,使仪器仪表数字化、微型化和智能化,提高它们的测量速度、测量精度和自动化程度,简化仪器仪表的硬件结构,便于使用、维修和改进,提高其性能/价格比。(2)单片机在机电一体化产品中的应用 机电一体化是机械工业发展的方向。机电一体化产品是指,集机械技术、微电子技术
7、、计算机技术和控制技术于一体,具有智能化特征的机电产品。例如,微机控制的数控机床、机器人等。单片机作为机电产品中的控制器,能充分的发挥它的体积小、可靠性高、功能强等优点,大大提高了机器的自动化、智能化程度。(3)单片机在过程控制中的应用过程控制是微型机应用最多、最有效的方面之一,单片机广泛的用于过程控制。它既可以作为主机控制,也可以作为分布式控制系统的前端机,对现场的信息进行实时的测量和控制。单片机可用于开关量控制、顺序控制及逻辑控制等。如锅炉控制、电机控制、机器人控制、交通信号灯控制、造纸纸浆浓度控制、纸张定量水分及厚薄控制,、雷达与导弹控制以及航天导航系统鱼雷制导系统控制等。(4)单片机在
8、计算机网络及通信中的应用由于高性能单片机中集成有SDLC通信接口,因而使其在计算机网络及通信设备中得到了广泛的应用。例如:Intel公司的8044,由8051单片机及SDLC通信接口组合而成,用高性能的串行接口单元SIU代替传统的UART,采用双绞线、半双工通信形式,特别适合远距离通信。以8044位基础组成的位总线是一种高性能、低价格的分布式控制系统,传送距离可达1200m,传送速度为2.4Mbit/s,网络节点为28个。此外,单片机在自动拨号无线电话网、串行自动呼叫应答设备、程控电话、无线电遥控等方面都有广泛的应用。(5)单片机在家用电器方面的应用单片机广泛的应用于家用电器产品中,例如:洗衣
9、机、电冰箱、微波炉、电饭煲、高级智能玩具、收录机等配上单片机后,大大提高了产品的性能,倍受人们的喜爱。可以说,单片机在人们日常生活中应用所受到的限制主要不是技术问题,而是创造力和技巧上的问题。3.1.3单片机的结构特点本次毕业设计我用到的单片机是MCS-51系列单片机,下面通过与通用微机的比较,来简单介绍MCS-51系列单片机的结构特点。就CPU的结构来说,通用微机的CPU内部有一定数量的通用或专用寄存器,而MCS-51系列单片机则在数据RAM区开辟了一个工作寄存器区。该区共有4组,每组8个寄存器,共计可提供32个工作寄存器,相当于通用微机CPU中的通用寄存器。除此之外,MCS-51系列单片机
10、还颇具特色的21个特殊功能寄存器SFR.要理解MCS-51系列单片机的工作,就必须对特殊功能寄存器SFR的工作有清楚地了解。SFR使具有40条引脚的单片机系统的功能有很大的扩展。由于这些SFR的作用,每个通道在程序控制下,都可有第二功能,从而使得有限的引脚能衍生出更多的功能。而且,利用SFR可完成对定时器、串行口、中断逻辑的控制,这就使得单片机可以把定时/计数器、串行口、中断逻辑等集成在一个芯片上。MCS-51系列单片机在存储器结构上与通用微机也有不同之处,通用微机中程序存储器和数据存储器时一个地址空间,而单片机把程序存储器和数据存储器分成两个独立的地址空间,采用不同的寻址方式,使用两个不同的
11、地址指针,PC指向程序存储器,DPTR指向数据存储器。采用这种结构主要是考虑到工业控制的特点。一般工业控制系统中,需要较大的程序存储器空间和较小的随机存储器空间,不同于通用微机需要较大的数据存储器空间。MCS-51系列单片机在输入输出接口方面的特点是,通道口引线在程序的控制下都可有第二功能,可由用户系统设计者灵活选择。比如数据线和地址线8位分时合用通道0,而地址线高8位与其它信号线也可合用通道2。由于存储器和接口都在片内,就给应用提供了方便,往往只在其引脚处增加驱动器即可简化接口设计工作,提高单片机与外设数据交换的处理速度。同时,功能变换和选择由相应的指令来控制实现,而不是靠硬件上的跳线短接等
12、方法实现。MCS-51系列单片机I/O一线多功能的特点方便了用户,但在组成应用系统时,也应根据其特点分时使用。MCS-51系列单片机的另一个显著特点是内部有一个全双工串行口,即可同时发送和接收;有两个物理上独立的接收、发送缓冲器。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。在程序的控制下,串行口工作与四种工作方式,用户可根据需要,设定为移位寄存器以扩展I/O口和外接同步输入输出设备,或用作异步通信口,以实现双机或多机通信,极为方便的组成分布式控制系统。最后还值得一提的是,MCS-51系列单片机内部有一个功能相对独立的位处理(即布尔处理机),因而其具有较强的位处理功能。3.1.4单片
13、机引脚配置MCS-51单片机采用40引脚双列直插封装(DIP)形式。对于CHMOS单片机除采用DIP形式外,还采用方形封装工艺。由于受到引脚数目的限制,所以有部分引脚具有第二功能。图3-1是MCS-51的引脚图图3-1在单片机的40条引脚中,有2条用于主电源的引脚,2条外接晶体的引脚,控制或其他电源复用引脚RST/ Vpd、ALE、和VPP,32条输入/输出引脚。下面就本系统用到的引脚分别说明这些引脚的名称和功能。(1)主电源引脚Vcc和VssVcc:接+5V电源Vss:接电源地(2)钟电路引脚XTAL1和XTAL2XTAL1:接外部晶体的一端。在单片机内部,它是反相放大器的输入端,该放大器构
14、成了片内振荡器。在采用外部时钟电路时,对于HMOS单片机,此引脚必须接地;对CHMOS单片机,此引脚作为驱动端。 XTAL2:接外部晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端,振荡器的频率是晶体振荡频率。若采用外部时钟电路时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬空。(3)信号引脚RST/VpdRST/Vpd:复位/备用电源输入端。单片机上电后,只要在该引脚上输入24个振荡周期(2个机器周期)宽度以上的高电平就会使单片机复位;若在RST与Vcc之间接一个10F的电容,而在RST与Vss之间接一个8.2K的下拉电阻,则可实现单片机上电自动
15、复位。RST/Vpd具有复用功能,在主电源Vcc掉电期间,该引脚可接上+5V备用电源。当Vcc下掉到低于规定的电平,而Vpd在其规定的电压范围内时,Vpd就向片内RAM提供备用电源,以保持片内RAM中的信息不丢失,复电后能继续正常运行。(4)输入/输出(I/O)引脚P0、P1、P2和P3MCS-51单片机有4个双向并行的8位I/O口P0P3,P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平,故称为准双向口),其负载能力为4个TTL电路。P0.0-P0.7:P0口是一个8位双向I/O端口。在访问片外存储器时,它分时提供低8位地址和作8位双向数据
16、总线。在EPROM编程时,从P0口输入指令字节;在验证程序时,则输出指令字节(验证时,要外接上拉电阻)。P0口能以吸收电流的方式驱动8个LSTTL负载。图3-2P1.0-P1.7:P1口是8位准双向I/O端口。在EPROM编程和程序验证时,它输入低8位地址。P1口能驱动4个LSTTL负载。图3-3P2.0-P2.7:P2口是一个8位准双向I/O端口。在CPU访问外部存储器时,它输出高8位地址。在对EPROM编程和程序验证时,它输入高8位地址。P2口可驱动4个LSTTL负载。图3-4P3.0-P3.7:P3口是8位准双向I/O端口。它是一个复用功能口。作为第一功能使用时,为普通I/O口,其功能和
17、操作方法与P1口相同。作为第二功能使用时,各引脚的定义如表3-1所示。P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口能驱动4个LSTTL负载。图3-5表3-1:口线 第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD (串行口输入)TXD (串行口输出)INT0 (外部中断0输入)INT1(外部中断1输入) T0 (定时器0的外部输入)T1 (定时器1的外部输入)WR (外部数据存储器“写”信号输出)RD (外部数据存储器“读”信号输出)3.2 44行列式扫描键盘3.2.1 键盘工作原理行列式键盘电路原理如图3-6所示。按键设置在行列式交点上,
18、行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5V时,被钳位在高电平状态。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。图3-63.2.2键盘工作方式键盘的工作方式:编程扫描方式、定时扫描方式、中断扫描方式三种。本设计采用的是编程扫描方式。在键盘扫描子程序中完成下述几个功能: (1)判断键盘上有无按键按下; (2)防止键的机械抖动影响; (3)获取按下键的键号; (4)按键闭合一次仅进行一次键功能操作。程序框图如:图3-7图3-73.3 液晶显示3.3.1 液晶屏的基本结构液晶屏主要由上偏振片、上电极基
19、板、液晶材料、电极、封接剂、下电极基板、下偏振板和反射板组成。如图3-8:图3-83.3.2 液晶模块LCM12232的工作原理液晶模块LCM12232由一块12232的点阵液晶屏和两片驱动芯片及其辅助电路组成。其原理图如图3-9所示。图3-9(1)引脚及其功能 (表3-2)引脚号引脚名有效电平功能说明1VDD5.0V电源电压2VSS0V电源地3VLCD-LCD电压4RSTL H系统复位信号5E1HSED1520(MASTER)片选信号,高电平有效6E2HSED1520(SLAVE)片选信号,高电平有效7R/WH/L读写控制位(H:读操作,L:写操作)8A0H/L命令数据线(H:数据信号,L:
20、指令信号)9-16DB0DB7H/L数据输入总线(2)关键信号说明在LCM12232的主要引出信号中,A0信号用于指示LCM12232模块接收的信息是数据,还是指令。A0为表示当前信息为数据,A0为则表示当前信息为指令码。R/W和E1、E2分别为该模块的读写信号和片选信号。D7D0为数据线,三态。(3)初始化说明图3-103.4 存储器AT24C013.4.1 AT24C01概述AT24C01是一个1K位串行CMOS 内部含有128个8 位字节,采用先进的CMOS 技术实质上减少了器件的功耗。该器件通过I2C 总线接口进行操作,有一个专门的写保护功能。3.4.2 管脚配置和描述管脚配置如图3-
21、11,管脚描述如表3-3所示:39 图3-11表3-3管脚名称功能A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护Vcc+1.8V 6.0V 工作电压Vss电源地SCL:串行时钟AT24C01串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输管脚。SDA:串行数据/地址AT24C01双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。A0、A1、A2: 器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。WP:写保护如果WP管脚连接到Vcc
22、,所有的内容都被写保护(只能读)。当WP管脚连接到Vss或悬空,允许器件进行正常的读/写操作.3.4.3总线协议总线协议定义如下:(1)只有在总线空闲时才允许启动数据传送;(2)在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为总线的起始信号。停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为总线的停止信号。起始/停止时序如图3-12图3-12器件寻址:主器件通过发送一个起始信号启动发送过程然后发送它所要寻址的从器件的地址。8位从器
23、件地址的高4位固定为1010,接下来的3位(A2、A1、A0)为器件的地址位。最多可以连接8个32K/64K器件到同一总线上。这些位必须与连线输入脚A2、A1、A0相对应。从器件8位地址的最低位作为读写控制位。“1”表示对从器件进行读操作,“0”表示对从器件进行写操作。应答信号:总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。应答的器件在第9个时钟周期时,将SDA拉低,表示其已收到一个8位数据。应答时序如图3-13。图3-133.4.4 AT24C01读写操作读操作字节读:在字节读模式下,主器件发送起始命令和从器件地址信息(A0)给从器件,在从器件产生应答信号后,主器
24、件再次发送起始命令和AT24C01的7位字节地址和1位读信号(R/W1)给从器件。主器件在收到从器件的另一个应答信号后,再从被寻址的存储单元中读取数据。主器件不需发送一个应答信号但要产生一个停止信 。时序如图3-14所示。图3-14连续读:连续读操作的启动和字节读一样,在AT24C01发送完一个8位字节数据后,主器件产生一个应答信号来响应,告知AT24C01主器件要求更多的数据,对应每个主机产生的应答信号AT24C01将发送一个8 位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。从AT24C01输出的数据按顺序由N 到N+1 输出。读操作时地址计数器在AT24C01整个地址内增加,
25、这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过127,计数器将翻转到零并继续输出数据字节。时序如图3-15所示。图3-15写操作字节写:在字节写模式下,主器件发送AT24C01的7位字节地址和1位写信号(R/W0)给从器件。主器件在收到从器件的一个应答信号后,再发送数据到被寻址的存储单元。AT24C01再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中AT24C01不再应答主器件的任何请求。时序如图3-16所示。图3-16页写:用页写AT24C01可一次写入4个字节数据。页写操作的启动和字节写一样,不同在于传送了一个字节数据后并不产生停止信号。每发送一个字节数
26、据后AT24C01产生一个应答位并将字节地址加1。时序如图3-17所示。图3174 硬件,软件设计报告4.1硬件电路分析和设计报告4.1.1单片机最小系统电路因为89S52单片机内部自带8K的ROM和256字节的RAM,因此不必构建单片机系统的扩展电路。如图41,单片机最小系统有复位电路和振荡器电路。值得注意的一点是单片机的31脚必须接高电平,否则系统将不能运行。因为该脚不接时为低电平,单片机将直接读取外部程序存储器,而系统没有外部程序存储器,所以必须接VCC。图414.1.2 键盘电路键盘连接在单片机的P2口,通过对P2的实时扫描,确定按键动作,存储按键值。电路图如图42所示。图424.1.
27、3 液晶显示电路液晶显示电路如图43所示,通过P1口传输数据,控制信号E1、E2、A0分别连在P3.0、P3.1、P3.2。单片机通过P1口和部分P3口对液晶进行显示控制。可调电阻RW1控制液晶显示的亮度。图434.1.4 存储器电路存储器AT24C01通过两条信号线SDA、SCL传输信息,本系统将SCL和SDA分别连在单片机的P3.4和P3.5上,单片机通过对这两脚的控制实现数据的写入和读出。4.1.5 蜂鸣器及继电器电路蜂鸣器及继电器电路如图44所示。由于蜂鸣器和继电器都需要很大的电流才能驱动,因此须在前级接一个三极管,起到电流放大作用。当Buzzer为低电平时,三极管Q1导通,蜂鸣器响;
28、为高电平时,Q1截止蜂鸣器不工作。当Switch为低电平时,三极管Q2导通,继电器吸合,将被控电路导通,直流电机转动,带动门闩将门打开。Switch和Buzzer分别接在单片机的P3.6和P3.7脚,当运行需要时将P3.6或P3.7脚置低即可实现蜂鸣器和继电器的功能。之所以选择PNP三极管是因为单片机在复位时P0、P1、P2、P3都会置高,如果用NPN型三极管,在复位时会让三极管导通,必须在程序中进行软件调整,尽管如此还是不能完全避免这种现象,因此选用PNP型三极管9012。图444.1.6 系统硬件总图图454.2软件设计报告4.2.1流程图图464.2.2系统源程序; 将键入的6个数存在6
29、1-64 66-67中 然后写入2401ORG 30hE1 EQU P3.0E2 EQU P3.1A0 EQU P3.2SCL EQU P3.4SDA EQU P3.5SWITCHEQU P3.6SOUND EQU P3.7CFLAGEQU 20H ;比较标志位SFLAGEQU 21H ;设置标志位IFLAGEQU 22H ;输入标志位;R1为接收数据的开始位置;R4为数据在2401内的存放地址;R5为读取数据的字节数 MOVR4, #01H MOVR5, #06H MOVR1, #71H LCALLRD_BYTLOOPRD_BYTLOOP: LCALLREAD_BYTE CJNER1, #7
30、5H,XIA INCR1XIA: MOV R1, A INCR1 INCR4 INCR4 DJNZR5,RD_BYTLOOP JMPMAINREAD_BYTE: LCALLSTART_BIT MOV A,#0A0H LCALLIN_BYTE LCALLSTART_BIT MOVA,R4 LCALLIN_BYTE CLRA LCALLOUT_BYTE LCALLSTOP_BIT RETOUT_BYTE:;数据读取 SETBSDA MOVR2, #08H CLRSCL LCALLDELAY1 NOPOUT1: ;读一位数据 SETBSCL LCALLDELAY1 MOV C, SDA RLCA C
31、LRSCL LCALLDELAY1 DJNZR2, OUT1 LCALLDELAY1 SETB SCL LCALL DELAY1 CLR SCL RETIN_BYTE: ;写一位数据 MOV R2, #08H IN1: RLC A MOV SDA, C SETB SCL LCALL DELAY1 CLR SCL LCALL DELAY1 DJNZ R2, IN1 LCALL DELAY1 SETB SCL LCALL DELAY1 CLR SCL RETSEND_MES:;将60H-67H中的密码写入2401 ;其中60H和64H中存页地址 MOV 60H, #00H ;PAGE1MOV 65
32、H, #08H ;PAGE2CALL START_BIT MOV R1, #60H MOV R2,#05H;写第一页WRI1: MOV A, R1 MOV R5, #08H CALL SEND INC R1 ;地址加1 DJNZ R2, WRI1 CALL STOP_BIT MOV R2,#03H ;写第二页 CALL START_BITWRI2: MOV A, R1 MOV R5, #08H CALL SENDINC R1 ;地址加1 DJNZ R2, WRI2 CALL STOP_BIT RETSEND: CLR SCL ;传送 RLC A MOV SDA, C CALL DELAY SE
33、TB SCL CALL DELAY DJNZ R5, SEND CLR SCL ;确认信号 CALL DELAY CLR SDA CALL DELAY SETB SCL CALL DELAY RETSTART_BIT: ;起始位 SETB SCL CALL DELAY SETBSDA CALL DELAY CLR SDA CALL DELAY RETSTOP_BIT:CLR SCL ;停止位CLR SDA SETB SCL CALL DELAY SETB SDA CALL DELAY RET;12232液晶屏驱动源程序x equ 30h ;页地址y equ 31h ;列地址MAIN:CLR E1CLR E2LCALL init ;初始化模块START: CALL CLEARMOV R1, #0e3H ;reset LCALL WRIMOV 30H