DZ090液晶显示电子密码锁的设计
DZ090液晶显示电子密码锁的设计,dz090,液晶显示,电子,密码锁,设计
液晶显示电子密码锁的设计,指导教师 :学 生 :,摘 要,本系统的设计可以用于家庭、企业、公司、酒店的电子密码门锁;电子密码保险柜;电子密码箱;电子防盗密匙及其他重要设备的开启。它以单片机AT89S52为核心,通过液晶显示实现人机对话,实时扫描键盘接口,发现有按键动作立即读取按键信息,并与存储器中的原始密码对比,密码相同则进入操作模式, 按C键,进入修改密码界面,按D键,则继电器吸合,实现开门功能;不同则显示密码错误,继电器不动作。连续三次输入错误密码后蜂鸣器发出报警音。,系统结构框图,键盘工作方式,键盘扫描子程序完成下述几个功能: (1)判断键盘上有无按键按下 (2)防止键的机械抖动影响 (3)获取按下键的键号 (4)按键闭合一次仅进行一次键功能操作,液晶模块LCM12232的工作原理,液晶模块LCM12232由一块12232的点阵液晶屏和两片驱动芯片及其辅助电路组成。,液晶模块LCM12232的工作原理,A0信号用于指示液晶模块接收的信息是数据,还是指令。A0为表示当前信息为数据,A0为则表示当前信息为指令码。R/W和E1、E2分别为该模块的读写信号和片选信号。D7D0为数据线,三态。,存储器AT24C01,SCL:串行时钟,用于产生器件所有数据发送或接收的时钟,SDA:串行数据/地址,用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚A0、A1、A2: 器件地址输入端,用于多个器件级联时设置器件地址 WP:写保护,如果WP管脚连接到Vcc,所有的内容都被写保护。当WP管脚连接到Vss,允许器件进行正常的读/写操作.,IIC总线协议,起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为IIC总线的起始信号。 停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为总线的停止信号。,AT24C01读操作,在字节读模式下,主器件发送起始命令和从器件地址信息(A0)给从器件,在从器件产生应答信号后,主器件再次发送起始命令和AT24C01的7位字节地址和1位读信号(R/W1)给从器件。主器件在收到从器件的另一个应答信号后,再从被寻址的存储单元中读取数据。主器件不需发送一个应答信号但要产生一个停止信 。,AT24C01写操作,在字节写模式下,主器件发送AT24C01的7位字节地址和1位写信号(R/W0)给从器件。主器件在收到从器件的一个应答信号后,再发送数据到被寻址的存储单元。AT24C01再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中AT24C01不再应答主器件的任何请求。,单片机最小系统电路,键盘电路,蜂鸣器及继电器电路,系统硬件总图,软件设计流程图,致谢,本课题在选题及研究过程中得到李建民副院长的悉心指导。李院长多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。李老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人。他循循善诱的教导和不拘一格的思路给予我无尽的启迪。谨此向老师和同学表示衷心的感谢!,致谢,谢谢各位老师在百忙之中来检阅我们的毕业论文,同时要感谢物理信息学院的领导和工作人员对我们的支持,为我们提供了良好的实验条件,为论文的成形作了细心的指导,并给予了大量帮助 。,谢谢!,二六届学生毕业论文(设计) 存档编号:毕 业 论 文 ( 设 计 )论 文 题 目 液晶显示电子密码锁的设计 (英 文) The Design Of Electronic Password Lock By LCD 学 院 专 业 姓 名 学 号 指 导 教 师 年 月 日 1题目:液晶显示电子密码锁的设计学 生: 物理与信息工程学院指导老师: 物理与信息工程学院摘 要本系统的设计可以用于家庭、企业、公司、酒店的电子密码门锁;电子密码保险柜;电子密码箱;电子防盗密匙及其他重要设备的开启。它以单片机 AT89S52 为核心,通过液晶显示实现人机对话,实时扫描键盘接口,发现有按键动作立即读取按键信息,并与存储器中的原始密码对比,密码相同则进入操作模式, 按 C 键,进入修改密码界面,按 D 键,则继电器吸合,实现开门功能;不同则显示密码错误。连续三次输入错误密码后蜂鸣器发出报警音。关键词电子密码锁;单片机; 总线;LCD 显示CI2 2Topic:The Design Of Electronic Password Lock By LCDStudent: Jianghan University School of Physics& Information EngineeringGuide Teacher: Jianghan University School of Physics& Information EngineeringAbstractThe design of the system can be used to the electronic password lock door of personal house, businesses, corporations, hotel; Electronic password safe; Electronic password box; Electronic security keys and other important equipment opened. The core of it is a microcomputer AT89S52. It realize interactive between people and device by LCD. While real - time scanning keyboard interface, it retrieval information of clicking immediately when find any key pressed. Then the system compares the input passwords with the original ones in the memory. If they are same, enter the mode of operation. Else, show “the passwords is Error”. If you input fault passwords continuously for three times, the warning buzzer would sound. Under the operating model, the system enters modified interface by pressing C key. If press D key, the relays closed, then open the lock (make the small motors open latch).Key wordsElectronic Password Lock; Microcomputer; IIC Bus; LCD Display 3目录1 绪论 42 任务说明 52.1 设计任务 52.2 基本模块 53 总体方案设计与选择论证53.1.单片机最小系统 53.1.1 单片机的说明 53.1.2 单片机的应用 53.1.3 单片机的结构特点 63.1.4 单片机引脚配置 83.2.44 行列式扫描键盘 123.2.1 键盘工作原理 123.2.2 键盘工作方式 123.3.液晶显示 133.3.1 液晶屏的基本结构 133.3.2 液晶模块 LCM12232 的工作原理 143.4. 存储器 AT24C01 16 43.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 系统硬件总图234.2 软件设计告244.2.1 流程图244.2.2 系统源程序244.3 操作说明365 总结37致谢39参考文献 540液晶显示电子密码锁的设计1 绪论本系统的设计可以用于家庭、企业、公司、酒店的电子密码门锁;电子密码保险柜;电子密码箱;电子防盗密匙及其他重要设备的开启。它以单片机 AT89S52 为核心,通过液晶显示实现人机对话,实时扫描键盘接口,发现有按键动作立即读取按键信息,并与存储器中的原始密码对比,相同则进入操作模式不同则显示密码错误。连续三次输入错误密码后蜂鸣器发出报警音。在操作模式下,按 C 键,进入修改密码界面;按D 键,则继电器吸合,实现开门功能。电子锁的研究从上世纪 30 年代就开始了,在某些特殊场所早就有所应用。研究这种锁的初衷,是提高锁具的安全性,因为电子锁的密钥量(密码量)极大,可以和机械锁配合,避免因钥匙被仿制而出现的问题。在安全性极高的前提下,它的另一个特点无需钥匙却被越来越多的人所欣赏。因为人们携带的钥匙很多已成累赘,而电子锁只需记住一组密码,无需携带金属钥匙,免除了人们的烦恼。电子锁的种类繁多,从大的方面讲可能有数十种,例如数码锁、指纹锁、卡片锁、磁卡锁、生物锁等等。但能谈的上实用一些或者大众化一些的还是按键式电子密码锁。在系统使用单片机动态扫描键盘,内部处理从而控制显示电路部分和继电器开关。我选用的是 51 系列单片机。单片机在各个技术领域中的迅猛发展,与单片机所构成的计算机应用系统的特点有关: 单片机构成的应用系统有较大的可靠性。 系统构建简洁、易行,能方便的实现系统功能。 由于构成的系统是一个计算机系统,相当多的功能由软件实现,故具有柔性特点。 有优异的性能价格比。 62 任务说明2.1 设计任务设计并制作一个液晶显示电子密码锁电路,其结构框图如图 2-1:图 212.2 基本模块(1) 单片机最小系统电路部分(2) 44 行列式扫描键盘电路部分(3) 液晶显示电路部分(4) 存储器模块(5) 继电器和蜂鸣器电路部分3 总体方案设计与选择的论证3.1 单片机最小系统3.1.1 单片机的说明单片机的原名叫 Microcontroller,即微型控制器。 顾名思义,单片机有别于通用微型计算机,它是专门为控制和智能仪器设计的一种集成度很高的微型计算机。其控 7制功能强,有优异的性能/价格比,有很高的可靠性。因而,单片机的应用范围在不断的扩大,它已经成了生产中和人类生活中不可缺少的工具。下面介绍单片机在几个方面的典型应用。3.1.2 单片机的应用(1)单片机在智能仪器中的应用单片机广泛的用于各种仪器仪表中,使仪器仪表数字化、微型化和智能化,提高它们的测量速度、测量精度和自动化程度,简化仪器仪表的硬件结构,便于使用、维修和改进,提高其性能/价格比。(2)单片机在机电一体化产品中的应用 机电一体化是机械工业发展的方向。机电一体化产品是指,集机械技术、微电子技术、计算机技术和控制技术于一体,具有智能化特征的机电产品。例如,微机控制的数控机床、机器人等。单片机作为机电产品中的控制器,能充分的发挥它的体积小、可靠性高、功能强等优点,大大提高了机器的自动化、智能化程度。(3)单片机在过程控制中的应用过程控制是微型机应用最多、最有效的方面之一,单片机广泛的用于过程控制。它既可以作为主机控制,也可以作为分布式控制系统的前端机,对现场的信息进行实时的测量和控制。单片机可用于开关量控制、顺序控制及逻辑控制等。如锅炉控制、电机控制、机器人控制、交通信号灯控制、造纸纸浆浓度控制、纸张定量水分及厚薄控制, 、雷达与导弹控制以及航天导航系统鱼雷制导系统控制等。(4)单片机在计算机网络及通信中的应用由于高性能单片机中集成有 SDLC 通信接口,因而使其在计算机网络及通信设备中得到了广泛的应用。例如:Intel 公司的 8044,由 8051 单片机及 SDLC 通信接口组合而成,用高性能的串行接口单元 SIU 代替传统的 UART,采用双绞线、半双工通信形式,特别适合远距离通信。以 8044 位基础组成的位总线是一种高性能、低价格的分布式控制系统,传送距离可达 1200m,传送速度为 2.4Mbit/s,网络节点为 28 个。此外,单片机在自动拨号无线电话网、串行自动呼叫应答设备、程控电话、无线电遥控等方面都有广泛的应用。(5)单片机在家用电器方面的应用单片机广泛的应用于家用电器产品中,例如:洗衣机、电冰箱、微波炉、电饭煲、高级智能玩具、收录机等配上单片机后,大大提高了产品的性能,倍受人们的喜爱。可 8以说,单片机在人们日常生活中应用所受到的限制主要不是技术问题,而是创造力和技巧上的问题。3.1.3 单片机的结构特点本次毕业设计我用到的单片机是 MCS-51 系列单片机,下面通过与通用微机的比较,来简单介绍 MCS-51 系列单片机的结构特点。就 CPU 的结构来说,通用微机的 CPU 内部有一定数量的通用或专用寄存器,而MCS-51 系列单片机则在数据 RAM 区开辟了一个工作寄存器区。该区共有 4 组,每组8 个寄存器,共计可提供 32 个工作寄存器,相当于通用微机 CPU 中的通用寄存器。除此之外,MCS-51 系列单片机还颇具特色的 21 个特殊功能寄存器 SFR.要理解 MCS-51系列单片机的工作,就必须对特殊功能寄存器 SFR 的工作有清楚地了解。SFR 使具有40 条引脚的单片机系统的功能有很大的扩展。由于这些 SFR 的作用,每个通道在程序控制下,都可有第二功能,从而使得有限的引脚能衍生出更多的功能。而且,利用SFR 可完成对定时器、串行口、中断逻辑的控制,这就使得单片机可以把定时/计数器、串行口、中断逻辑等集成在一个芯片上。MCS-51 系列单片机在存储器结构上与通用微机也有不同之处,通用微机中程序存储器和数据存储器时一个地址空间,而单片机把程序存储器和数据存储器分成两个独立的地址空间,采用不同的寻址方式,使用两个不同的地址指针,PC 指向程序存储器,DPTR 指向数据存储器。采用这种结构主要是考虑到工业控制的特点。一般工业控制系统中,需要较大的程序存储器空间和较小的随机存储器空间,不同于通用微机需要较大的数据存储器空间。MCS-51 系列单片机在输入输出接口方面的特点是,通道口引线在程序的控制下都可有第二功能,可由用户系统设计者灵活选择。比如数据线和地址线 8 位分时合用通道 0,而地址线高 8 位与其它信号线也可合用通道 2。由于存储器和接口都在片内,就给应用提供了方便,往往只在其引脚处增加驱动器即可简化接口设计工作,提高单片机与外设数据交换的处理速度。同时,功能变换和选择由相应的指令来控制实现,而不是靠硬件上的跳线短接等方法实现。MCS-51 系列单片机 I/O 一线多功能的特点方便了用户,但在组成应用系统时,也应根据其特点分时使用。MCS-51 系列单片机的另一个显著特点是内部有一个全双工串行口,即可同时发送和接收;有两个物理上独立的接收、发送缓冲器。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。在程序的控制下,串行口工作与四种工作方式,用户可根据需要,设定为移位寄存器以扩展 I/O 口和外接同步输入输出设备,或用作异步 9通信口,以实现双机或多机通信,极为方便的组成分布式控制系统。最后还值得一提的是,MCS-51 系列单片机内部有一个功能相对独立的位处理(即布尔处理机) ,因而其具有较强的位处理功能。3.1.4 单片机引脚配置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:接电源地 10(2)钟电路引脚 XTAL1 和 XTAL2XTAL1:接外部晶体的一端。在单片机内部,它是反相放大器的输入端,该放大器构成了片内振荡器。在采用外部时钟电路时,对于 HMOS 单片机,此引脚必须接地;对 CHMOS 单片机,此引脚作为驱动端。 XTAL2:接外部晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端,振荡器的频率是晶体振荡频率。若采用外部时钟电路时,对于 HMOS 单片机,该引脚输入外部时钟脉冲;对于 CHMOS 单片机,此引脚应悬空。(3)信号引脚 RST/VpdRST/Vpd:复位 /备用电源输入端。单片机上电后,只要在该引脚上输入 24 个振荡周期(2 个机器周期)宽度以上的高电平就会使单片机复位;若在 RST 与 Vcc 之间接一个 10F 的电容,而在 RST 与 Vss 之间接一个 8.2K 的下拉电阻,则可实现单片机上电自动复位。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 位双向数据总线。在 EPROM 编程时,从 P0 口输入指令字节;在验证程序时,则输出指令字节(验证时,要外接上拉电阻) 。P0 口能以吸收电流的方式驱动 8 个 LSTTL 负载。 11图 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 负载。 12图 3-4P3.0-P3.7:P3 口是 8 位准双向 I/O 端口。它是一个复用功能口。作为第一功能使用时,为普通 I/O 口,其功能和操作方法与 P1 口相同。作为第二功能使用时,各引脚的定义如表 3-1 所示。P3 口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3 口能驱动 4 个 LSTTL 负载。图 3-5表 3-1:口线 第二功能 13P3.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 所示。按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5V 时,被钳位在高电平状态。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。图 3-6 143.2.2 键盘工作方式键盘的工作方式:编程扫描方式、定时扫描方式、中断扫描方式三种。本设计采用的是编程扫描方式。在键盘扫描子程序中完成下述几个功能: (1)判断键盘上有无按键按下; (2)防止键的机械抖动影响; (3)获取按下键的键号; (4)按键闭合一次仅进行一次键功能操作。程序框图如:图 3-7图 3-73.3 液晶显示3.3.1 液晶屏的基本结构液晶屏主要由上偏振片、上电极基板、液晶材料、电极、封接剂、下电极基板、下偏振板和反射板组成。如图 3-8: 15图 3-83.3.2 液晶模块 LCM12232 的工作原理液晶模块 LCM12232 由一块 12232 的点阵液晶屏和两片驱动芯片及其辅助电路组成。其原理图如图 3-9 所示。图 3-9(1)引脚及其功能 (表 3-2)引脚号 引脚名 有效电平 功能说明1 VDD 5.0V 电源电压2 VSS 0V 电源地3 VLCD - LCD 电压4 RST L H 系统复位信号5 E1 H SED1520(MASTER)片选信号,高电平有效 166 E2 H SED1520(SLAVE)片选信号,高电平有效7 R/W H/L 读写控制位(H:读操作,L:写操作)8 A0 H/L 命令数据线(H:数据信号,L:指令信号)9-16 DB0DB7 H/L 数据输入总线(2)关键信号说明在 LCM12232 的主要引出信号中,A0 信号用于指示 LCM12232 模块接收的信息是数据,还是指令。A0 为表示当前信息为数据, A0 为则表示当前信息为指令码。R/W 和 E1、 E2 分别为该模块的读写信号和片选信号。D7D0 为数据线,三态。(3)初始化说明图 3-10 173.4 存储器 AT24C013.4.1 AT24C01 概述AT24C01 是一个 1K 位串行 CMOS 内部含有 128 个 8 位字节,采用先PROME2进的 CMOS 技术实质上减少了器件的功耗。该器件通过 I2C 总线接口进行操作,有一个专门的写保护功能。3.4.2 管脚配置和描述管脚配置如图 3-11,管脚描述如表 3-3 所示:图 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,所有的内容都被写保护(只能读) 。当 WP 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作.3.4.3 总线协议CI2总线协议定义如下:(1)只有在总线空闲时才允许启动数据传送;(2)在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。起始信号: 18时钟线保持高电平期间,数据线电平从高到低的跳变作为 总线的起始信号。CI2停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为 总线的停止信号。I2起始/停止时序如图3-12图3-12器件寻址:主器件通过发送一个起始信号启动发送过程然后发送它所要寻址的从器件的地址。8位从器件地址的高4位固定为1010,接下来的3位(A2 、A1 、A0)为器件的地址位。最多可以连接8个32K/64K器件到同一总线上。这些位必须与连线输入脚 A2、A1、A0相对应。从器件8位地址的最低位作为读写控制位。 “1”表示对从器件进行读操作, “0”表示对从器件进行写操作。应答信号:总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。CI2应答的器件在第9个时钟周期时,将SDA拉低,表示其已收到一个 8位数据。应答时序如图3-13。图3-133.4.4 AT24C01 读写操作读操作字节读:在字节读模式下,主器件发送起始命令和从器件地址信息(A0)给从器件,在从器件产生应答信号后,主器件再次发送起始命令和AT24C01的7位字节地址和1 19位读信号(R/W1)给从器件。主器件在收到从器件的另一个应答信号后,再从被寻址的存储单元中读取数据。主器件不需发送一个应答信号但要产生一个停止信 。时序如图3-14 所示。图3-14连续读:连续读操作的启动和字节读一样,在AT24C01发送完一个8位字节数据后,主器件产生一个应答信号来响应,告知AT24C01主器件要求更多的数据,对应每个主机产生的应答信号AT24C01将发送一个8 位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。从AT24C01输出的数据按顺序由N 到N+1 输出。读操作时地址计数器在AT24C01整个地址内增加,这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过127,计数器将翻转到零并继续输出数据字节。时序如图3-15所示。图3-15写操作字节写:在字节写模式下,主器件发送AT24C01的7位字节地址和1位写信号(R/W0) 给从器件。主器件在收到从器件的一个应答信号后,再发送数据到被寻址的存储单元。AT24C01再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中AT24C01不再应答主器件的任何请求。时序如图3-16所示。图3-16页写:用页写AT24C01可一次写入4个字节数据。页写操作的启动和字节写一样,不同在于传送了一个字节数据后并不产生停止信号。每发送一个字节数据后AT24C01 20产生一个应答位并将字节地址加1。时序如图3-17所示。图3174 硬件,软件设计报告4.1 硬件电路分析和设计报告4.1.1 单片机最小系统电路因为 89S52 单片机内部自带 8K 的 ROM 和 256 字节的 RAM,因此不必构建单片机系统的扩展电路。如图 41,单片机最小系统有复位电路和振荡器电路。值得注意的一点是单片机的 31 脚 必须接高电平,否则系统将不能运行。因为该脚不接VPEA/时为低电平,单片机将直接读取外部程序存储器,而系统没有外部程序存储器,所以必须接 VCC。PEA/ 21图 414.1.2 键盘电路键盘连接在单片机的 P2 口,通过对 P2 的实时扫描,确定按键动作,存储按键值。电路图如图 42 所示。图 424.1.3 液晶显示电路液晶显示电路如图 43 所示,通过 P1 口传输数据,控制信号 E1、E2 、A0 分别连在 P3.0、P3.1、P3.2。单片机通过 P1 口和部分 P3 口对液晶进行显示控制。可调电阻RW1 控制液晶显示的亮度。 22图 434.1.4 存储器电路存储器 AT24C01 通过两条信号线 SDA、SCL 传输信息,本系统将 SCL 和 SDA分别连在单片机的 P3.4 和 P3.5 上,单片机通过对这两脚的控制实现数据的写入和读出。4.1.5 蜂鸣器及继电器电路蜂鸣器及继电器电路如图 44 所示。由于蜂鸣器和继电器都需要很大的电流才能驱动,因此须在前级接一个三极管,起到电流放大作用。当 Buzzer 为低电平时,三极管 Q1 导通,蜂鸣器响;为高电平时,Q1 截止蜂鸣器不工作。当 Switch 为低电平时,三极管 Q2 导通,继电器吸合,将被控电路导通,直流电机转动,带动门闩将门打开。Switch 和 Buzzer 分别接在单片机的 P3.6 和 P3.7 脚,当运行需要时将 P3.6 或 P3.7 脚置 23低即可实现蜂鸣器和继电器的功能。之所以选择 PNP 三极管是因为单片机在复位时P0、P1、P2、P3 都会置高,如果用 NPN 型三极管,在复位时会让三极管导通,必须在程序中进行软件调整,尽管如此还是不能完全避免这种现象,因此选用 PNP 型三极管 9012。图 44 244.1.6 系统硬件总图图 45 254.2 软件设计报告4.2.1 流程图图 464.2.2 系统源程序; 将键入的 6 个数存在 61-64 66-67 中 然后写入 2401ORG 30hE1 EQU P3.0E2 EQU P3.1A0 EQU P3.2SCL EQU P3.4SDA EQU P3.5SWITCHEQU P3.6SOUND EQU P3.7CFLAG EQU 20H ;比较标志位SFLAG EQU 21H ;设置标志位IFLAG EQU 22H ;输入标志位;R1 为接收数据的开始位置;R4 为数据在 2401 内的存放地址;R5 为读取数据的字节数MOV R4, #01HMOV R5, #06HMOV R1, #71HLCALL RD_BYTLOOPRD_BYTLOOP:LCALL READ_BYTECJNE R1, #75H,XIAINC R1XIA: MOV R1, AINC R1INC R4INC R4DJNZ R5,RD_BYTLOOPJMP MAINREAD_BYTE: 26LCALL START_BITMOV A,#0A0HLCALL IN_BYTELCALL START_BITMOV A,R4LCALL IN_BYTECLR ALCALL OUT_BYTELCALL STOP_BITRETOUT_BYTE: ;数据读取SETB SDAMOV R2, #08HCLR SCLLCALL DELAY1NOPOUT1: ;读一位数据SETB SCLLCALL DELAY1MOV C, SDARLC ACLR SCLLCALL DELAY1DJNZ R2, OUT1LCALL DELAY1SETB SCLLCALL DELAY1CLR SCLRETIN_BYTE: ;写一位数据MOV R2, #08HIN1:RLC AMOV SDA, CSETB SCLLCALL DELAY1CLR SCLLCALL DELAY1DJNZ R2, IN1LCALL DELAY1SETB SCLLCALL DELAY1CLR SCLRETSEND_MES:;将 60H-67H 中的密码写入 2401;其中 60H 和 64H 中存页地址MOV 60H, #00H ;PAGE1MOV 65H, #08H ;PAGE2CALL START_BITMOV R1, #60HMOV R2,#05H ;写第一页WRI1: MOV A, R1MOV R5, #08HCALL SENDINC R1 ;地址加 1DJNZ R2, WRI1CALL STOP_BITMOV R2,#03H ;写第二页CALL START_BITWRI2: MOV A, R1MOV R5, #08HCALL SENDINC R1 ;地址加 1DJNZ R2, WRI2CALL STOP_BITRETSEND:CLR SCL ;传送RLC AMOV SDA, CCALL DELAYSETB SCLCALL DELAYDJNZ R5, SENDCLR SCL ;确认信号CALL DELAYCLR SDACALL DELAYSETB SCLCALL DELAYRETSTART_BIT: ;起始位SETB SCLCALL DELAYSETB SDACALL DELAYCLR SDA 27CALL DELAYRETSTOP_BIT:CLR SCL ;停止位CLR SDASETB SCLCALL DELAYSETB SDACALL DELAYRET;12232 液晶屏驱动源程序x equ 30h ;页地址y equ 31h ;列地址MAIN:CLR E1CLR E2LCALL init ;初始化模块START: CALL CLEARMOV R1, #0e3H ;reset LCALL WRIMOV 30H, #2 ;xMOV 31H, #10 ;yMOV DPTR,#HANZ1 ;欢LCALL outhzLMOV 30H, #2MOV 31H, #35MOV DPTR,#HANZ2 ;迎LCALL outhzLMOV 30H, #2MOV 31H, #10MOV DPTR, #HANZ3 ;光LCALL outhzRMOV 30H, #2MOV 31H, #35MOV DPTR, #HANZ4 ;临LCALL outhzRMOV 30H, #0HMOV 31H, #10MOV DPTR, #HANZ5 ;密LCALL outhzLMOV 30H, #0HMOV 31H, #35MOV DPTR,#HANZ6 ;码LCALL outhzLMOV 30H, #0HMOV 31H, #50MOV DPTR, #FUH1 ;:LCALL outhzLCALL INCALL COMPARE_LIU ;超级密码比较DJNZ SFLAG, CON_CJMP CH_PASSCON_C:CALL COMPARE DJNZ CFLAG, ERJMP CONTINUEER: LCALL PASS_ERCONTINUE:CALL CLEAR ;清屏MOV 30H, #2H ;显示密码正确MOV 31H, #10MOV DPTR, #HANZ5 ;密LCALL outhzLMOV 30H, #2HMOV 31H, #35MOV DPTR, #HANZ6 ;码LCALL outhzLMOV 30H, #2MOV 31H, #10MOV DPTR, #HANZ7 ;正LCALL outhzRMOV 30H, #2MOV 31H, #35MOV DPTR, #HANZ8 ;确LCALL outhzRMOV 30H, #0MOV 31H, #3MOV DPTR, #FUH3 ; CLCALL outhzYLMOV 30H, #0MOV 31H, #15MOV DPTR, #HANZ9 ;改LCALL outhzLMOV 30H, #0MOV 31H, #31MOV DPTR, #HANZ5 ;密LCALL outhzLMOV 30H, #0MOV 31H, #47 28MOV DPTR, #HANZ6 ;码LCALL outhzLMOV 30H, #0MOV 31H, #10MOV DPTR, #FUH4 ;DLCALL outhzYMOV 30H, #0MOV 31H, #20MOV DPTR, #HANZ10 ;开LCALL outhzRMOV 30H, #0MOV 31H, #35MOV DPTR, #HANZ11 ;门LCALL outhzRWEIT: CALL KEY ;判断输入是否为改密码JNC WEITWEIT1: CALL KEY ;判断按键有没有松开JC WEIT1DJNZ 21H,PORT1 ;判断输入是否为 CMOV R4,#3HCALL CH_PASS ;改密码程序PORT1: DJNZ 22H,WEITJMP OPEN_JOPEN_J: CALL OPENMOV R5,#15CALL DELAY200JMP STARTPASS_ER:CALL CLEARMOV 30H,#2 ;密码错误MOV 31H,#10MOV DPTR,#HANZ5液晶显示电子密码锁的设计,指导教师 :学 生 :,摘 要,本系统的设计可以用于家庭、企业、公司、酒店的电子密码门锁;电子密码保险柜;电子密码箱;电子防盗密匙及其他重要设备的开启。它以单片机AT89S52为核心,通过液晶显示实现人机对话,实时扫描键盘接口,发现有按键动作立即读取按键信息,并与存储器中的原始密码对比,密码相同则进入操作模式, 按C键,进入修改密码界面,按D键,则继电器吸合,实现开门功能;不同则显示密码错误,继电器不动作。连续三次输入错误密码后蜂鸣器发出报警音。,系统结构框图,键盘工作方式,键盘扫描子程序完成下述几个功能: (1)判断键盘上有无按键按下 (2)防止键的机械抖动影响 (3)获取按下键的键号 (4)按键闭合一次仅进行一次键功能操作,液晶模块LCM12232的工作原理,液晶模块LCM12232由一块12232的点阵液晶屏和两片驱动芯片及其辅助电路组成。,液晶模块LCM12232的工作原理,A0信号用于指示液晶模块接收的信息是数据,还是指令。A0为表示当前信息为数据,A0为则表示当前信息为指令码。R/W和E1、E2分别为该模块的读写信号和片选信号。D7D0为数据线,三态。,存储器AT24C01,SCL:串行时钟,用于产生器件所有数据发送或接收的时钟,SDA:串行数据/地址,用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚A0、A1、A2: 器件地址输入端,用于多个器件级联时设置器件地址 WP:写保护,如果WP管脚连接到Vcc,所有的内容都被写保护。当WP管脚连接到Vss,允许器件进行正常的读/写操作.,IIC总线协议,起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为IIC总线的起始信号。 停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为总线的停止信号。,AT24C01读操作,在字节读模式下,主器件发送起始命令和从器件地址信息(A0)给从器件,在从器件产生应答信号后,主器件再次发送起始命令和AT24C01的7位字节地址和1位读信号(R/W1)给从器件。主器件在收到从器件的另一个应答信号后,再从被寻址的存储单元中读取数据。主器件不需发送一个应答信号但要产生一个停止信 。,AT24C01写操作,在字节写模式下,主器件发送AT24C01的7位字节地址和1位写信号(R/W0)给从器件。主器件在收到从器件的一个应答信号后,再发送数据到被寻址的存储单元。AT24C01再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中AT24C01不再应答主器件的任何请求。,单片机最小系统电路,键盘电路,蜂鸣器及继电器电路,系统硬件总图,软件设计流程图,致谢,本课题在选题及研究过程中得到李建民副院长的悉心指导。李院长多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。李老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人。他循循善诱的教导和不拘一格的思路给予我无尽的启迪。谨此向老师和同学表示衷心的感谢!,致谢,谢谢各位老师在百忙之中来检阅我们的毕业论文,同时要感谢物理信息学院的领导和工作人员对我们的支持,为我们提供了良好的实验条件,为论文的成形作了细心的指导,并给予了大量帮助 。,谢谢!,
收藏