《613352318毕业设计(论文)基于AT89C51单片机的多功能防试探型电子密码锁设计.doc》由会员分享,可在线阅读,更多相关《613352318毕业设计(论文)基于AT89C51单片机的多功能防试探型电子密码锁设计.doc(46页珍藏版)》请在三一办公上搜索。
1、摘要AT89C51单片机是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。本文介绍了如何利用AT89C51单片机设计多功能防试探型电子密码锁。本系统采用AT89C51单片机为控制核心,以24LC02存储器、矩阵键盘、LED显示器、报警系统和UPS电源为外围硬件设备。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码的密码锁的功能。整个系统的结构简单,可靠性能强,成本低廉,功能实用。如果需要的话,还可以将矩阵键盘模块改为指纹识别模块, 增强密码锁的安全性。关键词:AT89C51;24LC02;矩阵键盘;LCD显示器;系统电源AbstractAT89C51 SCM is an
2、 eight-bit SCM, its popular with many users of its usability and multi functionality. This text is about how to design an multifunctional Anti-try Password Lock with AT89C51 SCM. This system uses AT89C51 as the control code and uses 24LC02 ROM、matrix keyboard、LED Display、alarm System 、UPS Electric S
3、ource as Peripheral. This system has the function of unlocking、overtime alarm、overnumber lock、 manager decryption、 modifying users password. It has the advantage of simple structure、outstanding reliability、low-cost、utilitarian function. You can change the matrix keyboard with fingerprint identificat
4、ion membrane, enhancing the security of Password Lock.Keywords:AT89C51; 24LC02; Matrix keyboard; LCD display; System electric source目录第1章 引言11.1 概述11.2 理论基础2第2章 系统设计32.1 工作任务及指标32.2 系统原理3本章小结第3章 硬件设计53.1 单片机AT89C51硬件构 53.2 最小应用系统设计63.3 报警电路83.4 系统电源设计93.5 矩阵键盘103.6 LCD点阵显示器123.7 24LC02存储器及I2C总线 14本章
5、小结第4章 软件设计 184.1 主程序模块 184.2 调电存储服务程序 184.3 键盘扫描及识别子程序 204.4 显示子程序 20本章小结 22第5章 系统仿真 2351 软件仿真设计2352 仿真结果23第6章 结束语 27致谢28参考文献29附录A 硬件电路图30附录B 程序程序图31附录C 源程序33第一章 引言1.1概述随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁。键盘式电
6、子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠。但是密码不能太简单,太简单了可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,键盘式电子密码锁也在不断发展,如“任意设定密码”技术使得管理员可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操
7、作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。当然,以上所说的性能再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵
8、抗住或尽量延迟破坏行为,让电子防盗锁“软、硬不吃”。一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度(应有足够的机械强度和刚度,能够承受一定数值、一定方向的静压力和冲击力以及力矩)、锁上型式(能承受某些方式和工具的作用)、配合间隙(防止采用机械的、电子的方法探入锁具内部而被开启)和布局(将薄弱的、与锁的开启直接相关的零部件和电路置于壳体保护之下,并且不易被识别出来)。提高电子防盗锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。报警的前提是具备探测功能,根据电子防盗锁的使用场所和防护要求,可选择多种多样的探测手段。在中
9、国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。1.2理论基础单片原理及应用是一门技术性、应用性很强的学科,实践教学是它的一个极为重要的环节。不论是硬件扩展、接口应用还是编程方法和程序调试,都离不开实验教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。任随书本上把单片机技术介绍得多么重要、多么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。本次设计的目的就是在AT89C51学习的基础上,通过开发一个以AT89C51单片
10、机为主控的项目,使自己学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。本文就来叙述一下如何采用以AT89C51为控制核心,配之于相应的外围设备,设计一款多功能的电子密码锁。所以本设计与实际相结合,现实意义很强,可作为电子设计爱好者的参考资料。第二章 系统设计21 工作任务及指标利用AT89C51单片机作为控制器设计防试探型密码锁,具体实现功能如下:1. 密码长度为6位,每位取值09;2. 用户可以自行设定和修改密码,每按一个密码键都有声光提示;3. 若
11、输入6位密码不正确,则报警5秒钟,以提醒注意,连续开锁密确超过3次要报警60秒,报警时输入密码无效,以防窃贼多次试探密码;4. 键入的6位密码完全正确才能开锁,且有1秒的提示音;5. 电磁锁型号自选,并配置相应的供电源,最好选用脉冲驱动的电磁锁;6. 密码输入键盘有16个按键和一个指示灯;7. 锁内有备用电池,只有内部上电复位时才能设置或修改密码;8. 密码设定完后要有2秒的提示音;9. 单片机采用AT89C51,内部电源采用5V;本论文的密码锁用信号灯来代替,信号灯亮代表锁开。手动复位键电源4*4键盘24LC02存储器图2.1系统总体框图AT89C51LCD显示器报警器22系统原理系统由AT
12、89C51、UPS电源、24LC02存储器、LCD显示器、报警器、矩阵键盘组成。利用AT89C51单片机作为本系统的中控模块。单片机把从键盘读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现密码锁功能的显示。点阵LCD电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,根据需要改变显示模式。24LC02主要用来储存管理员和用户的密码。报警装置主要用来防止非法用户的操作。正确密码修改电路键盘输入密码校验电路开锁电路执行电路开锁记录错误次数锁 定报 警管理员解密计时图2.2系统原理图3小结:本章主要介绍了本论文主要讨论和设计的项目的指标和系统原理。第三章 硬件设计一个单片机应用
13、系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如ROMRAMI/O口定时/记数器中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器打印机A/DD/A转换器等,要设计合适的接口电路。以下主要介绍AT89C51单片机、报警电路、系统电源、键盘模块、LCD点阵显示器、24LC02存储器及I2C总线。3.1 AT89C51单片机硬件结构AT89C51是一款低电压,高性能的CMOS8位单片机,器件采用高密度、非易失存储技术生产,兼容标准MCS-51指令系统,把那些作为控制应用所
14、必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。1 微处理器该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。2 数据存储器片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量
15、、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。3 程序存储器由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。4 中断系具有5个中断源,2级中断优先权。5 定时器/计数器片内有2个16位的定时器/计数器, 具有四种工作方式。6 串行口1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。7 P1口、P2口、P3口、P4口为4个并行8位I/O口。P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,
16、如表3.1所示: 表3.1 8 特殊功能寄存器共有21个,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。由上可见,AT89C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单
17、片机在设计的精美之处。32最小应用系统设计AT89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用AT89C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3.1 AT89C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1) 有可供用户使用的大量I/O口线。(2) 内部存储器容量有限。(3) 应用系统开发具有特殊性。图3.1 AT89C51单片机最小系统1时钟电路AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。AT89C51单片机的时钟产生方法有两种。内部时钟方式和外
18、部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路如图所示,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1、C2可在20pF到100pF之间取值。本设计中,振荡晶体选择6MHZ,电容选择30pF。在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO电容。由于外部时钟信号
19、是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。2复位电路AT89C51的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1K。除了上电复位外
20、,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。按键手动复位电路见图3.2。时钟频率选用6MHZ时,C取22uF,Rs取200,RK取1K。图3.2 手动开关手动开关未按下之前,电容正极处于加电状态,当按键按下去后,VCC与GND导通,电容放电,从而实现放电。3.3 报警电路报警电路实现的功能是:当输入密码错误次数超过三次(一般情况下用户输入不会超过),电路报警60秒,防止他人试探密码并恶意开锁。电路包含一个60秒延时电路。其工作原理是当用户开始输入密码时,电路开始计时,超出60秒,电路进入节
21、能模式。在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过AT89C51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图3.3中,P2
22、.4接晶体管基极输入端。当P2.4输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P2.4输出低电平“0”时,三极管截止,蜂鸣器停止发声。图3.3是一个简单的使用三极管驱动的峰鸣音报警电路: P2.4图3.3 三极管驱动的峰鸣音报警电路本设计是为在温湿度测量中对温湿度的上下限超出是的提示报警,接口位于单片机AT89C51的P2.4口,当温湿度过限时,P2.4口被置1,本系统开始工作。3.4 系统电源设计为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。图3.4所示。220V市电通过变压器B降压
23、成12V的交流电,再经过整流桥整流,7805稳到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器 由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+V- IC14输出高电平,由T3,T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下图3.5所示: 图3.5停电检测及电子开关切换电路T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现
24、对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如图3.6所示: 图3.6 蓄电池自动充电电路 3.5矩阵键盘由于设计要求使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.7所示:AT89C51D0D1D2D3D4D5D6D75.1K X 45.1K X 4VCC图3.7 行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种
25、行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图3.7所示的4*4键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方
26、法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。按键的操作面板如图3.8所示。共计数字键10个,功能键6个。0123456789ABCDEF图3.8 按键操作面板示意图10个数字键用来输入密码,另外6个功能键分别是:A、B、C、D、E、F。其中A键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。B键的功能是确认输入的密码。C是管理模式切换键,当用户不小心三次输入密码都没有正确,键盘被锁定,这个时候就可以启动管理模式,使用管理员的密码来开门。D是用来进入修改密码的状态。E
27、用来关闭显示器,一来可以节省电量,另外也可以防止不法分子偷窥密码。F用来作电铃。3.6 LCD点阵显示器LCD显示模块是一种被动显示器,具有功耗低,显示信息大,寿命长和抗干扰能力强等优点,在低功耗的单片机系统中得到大量使用。液晶显示模块和键盘输入模块作为便携式仪表的通用器件,在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形。在单片机系统中使用液晶显示模块作为输出器件有以下优点:(1) 显示质量高液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,因此液晶显示器画
28、质高而且不会闪烁。(2) 数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单。(3) 体积小,重量轻(4) 功率消耗小液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因此耗电量比其它显示器要小得多。本项目用的是12232LCD显示器,其结构如图所示 图3.9结构图 单片机与液晶显示模块之间的连接方式分为直接访问方式和为间接控制方式两种。1. 直接访问方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I/O设备的方式操作液晶显示模块的工作。2. 间接控制方式是单片机通过自身的或系统中的并行接口与液晶显示模块连接。单片机通过对这些接口的操作,
29、以达到对液晶显示模块的控制。这种方式的特点就是电路简单,控制时序由软件实现,可以实现高速单片机与液晶显示模块的接口。本项目用的是间接控制方式,电路图如图3.10所示。在图中以 P1口作为数据口,E1、E2作为使能端。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.1P2.2P2.3DB7DB6DB5DB4DB3DB2DB1DB0E1E2E0图3.10间接控制方式原理图3.7 24LC02存储器及I2C总线I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25
30、英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。I2C总线工作原理 I2C总线上的数据稳定规则,SCL为高电平时SDA上的数据保持稳定,SCL为低电平时允许SDA变化。如果SCL处于高电平时,SDA上产生下降沿,则认为是起始位,SDA上的上升沿认为是停止位。通信速率分为常规模式(时钟频率100kHz)和快速模式(时钟频率400kHz)。同一总线上可以连接多个带有I2C接口的器件,每个器件都有一个唯一的地址,既可以是单接收的
31、器件,也可以是能够接收发送的器件。每次数据传输都是以一个起始位开始,而以停止位结束。传输的字节数没有限制。最高有效位将首先被传输,接收方收到第8位数据后会发出应答位。数据传输通常分为两种:主设备发送从设备接收和从设备发送主设备接收。这两种模式都需要主机发送起始位和停止位,应答位由接收方产生。从设备地址一般是1或2个字节,用于区分连接在同一I2C上的不同器件。I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信
32、号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。在I2C总线中只有主发送和主接收两种操作方式。在系统初始化时,由指令控制CPU送出相关的数据,经接口送到I2C寄存器内。通过初始化这些寄存器,可以实现I2C总线的主模式控制,以及实现I2C总线上的从设备读写。当主设备和其中的一个从设备交换数据时,主设备首先发出一个启动Start信号,这个信号被所有的从设备接收。即从设备准备接收CPU
33、的信号,然后主设备再发出它要通信的从设备地址。接下来,所有的从设备将收到的这个地址和它们自己的地址进行比较。如果收到的地址和它们自己的地址不同,则什么都不做,只是等待主设备发出停止stop信号;如果收到的地址和它自己的地址相同,它就发出一个信号给主设备,这个信号称为应答Acknowledge信号。当主设备收到应答信号后,它就开始向从设备发送数据或者从从设备接收数据。当所有操作都进行完毕时,主设备发出一个Stop信号,通信完毕,释放I2C总线;然后所有的从设备都等待下一次Start信号的到来。总线基本操作 I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接
34、收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。1写过程(1)上电后等待一个延时(1ms)。(2)器件寻址,给一个起始信号(SCL为高电平时SDA给一个下降沿)。发送从器件地址
35、,高5位为10110,然后根据A1/A0(如果和器件的地址相同则那个器件会应答)进行读/写控制(O为读)。(3)应答,器件在SCL的第9个周期时SDA给出一个低电平,作为应答信号。(4)开始写有两种模式:字节写模式和页写模式。字节模式:给出A15A8应答,给出A7A0应答;然后给出DATA和停止信号 (SCL为高电平时,SDA给出一个上升沿),接着要等待一个擦写时间。页写模式:给出地址以后连续给出64个数据。如果多于64个数据,则地址计数器自动翻转。(如果少于64昵,估计是没有问题的,但是需要实验验证。)(5)判断擦写操作是否完毕的一个方法(应答查询),如果器件还处于擦写状态,则不会应答器件寻
36、址;如果有应答,则说明擦写完毕。2读过程(1)上电以后等待一个延时(lms)。(2)器件寻址。(3)应答。(4)开始读有三种模式:立即当前地址读、选择/随机读、连续读。立即当前地址读:如果上次读/写的操作地址为N,则现在是N+1。不需要ACK,但是需要Stop信号。选择/随机读:先伪写(用于给出一个地址),然后再次启动,读取数据。连续读:读取一个以后给一个应答,这样器件会再给出下一个地址的数据内容。(5) 开始数据传输Start后、停止数据传输Stop前,SCL高电平期间,SDA上为有效数据。其原理如表3.2所示 表3.2 二、24LC02硬件连接: 1, SDA-P3.1引脚2, SCL-P
37、3.0引脚3, A0、A1、A2-Ground其引脚如图表3.3所示: 表3.3 24LC02引脚 小结:本章主要介绍了AT89C51的内部功能和外部接口电路的功能特性。第四章 软件设计系统软件设计说明在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,
38、通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:1、 单个模块比起一个完整的程序易编写及调试;2、 模块可以共存,一个模块可以被多个任务在不同条件下调用;3、 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由以下几个模块构成。4.1主程序模块主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。程序流程如图4.1所示:4.2调电存储服务程序当比较密码的时候,需要读24LC02程序,将存储在芯片内的数据读到RAM中,
39、然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到24LC02中。当输入密码错误三次的时候需要管理员解锁。修改密码和解锁流程如图4.1和图4.2所示:开始初始化调用显示启动定时有键按下?识别按键超时? 比较密码全部按完?自动清除3次?报警并锁定键盘NYYNY密码正确YN开门Y计数4.1主程序流程图程序流程图主程序流程图按解锁键按下改密键切联系调用显示启动定时输入管理员密码输入管理员密码码密码正确报警4.2修改密码流程图密码正确Y输入新密码保存调用显示结束报警N解锁Y结束4.3解锁流程图4.3键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程
40、序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。函数名和功能见表4.1,其程序见附录C。4.4显示子程序由于是分屏显示数据,所以就要用到5个显示子程序,分别是:关闭状态显示子程序、开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序。密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序(DIS_E).其函数名和功能如表4.1所示INT_T0定时器0中断子程序INIT_FLAG标志初始化子程序READ_PS密码初始化子程序INIT_PS输入密码清至FFINIT_LCD显示器初始化WINSTR1显示器写指令 E1WINSTR2显示器写指令 E2WDATA
41、1显示器写数据 E1WDATA2显示器写数据 E2DISP_MODE显示模式 MODE_FLAG: 0为用户模式 1:管理模式BEGIN_TIME开始计时中断DELAY1延时ALARM_KEYBUZZER响DISP_START显示*DISP_LEFT显示左边*DISP_RIGHT显示右边*DISP_CLR显示器清屏DISP_TEXT1提示输入管理密码DISP_PSERR显示密码错误DISP_OPEN显示密码正确DISP_LOCK显示键盘锁定DISP_UNLOCK显示解锁成功DISP_CH显示修改密码DISP_CHOK显示修改成功CHPS_U修改用户密码CHPS_M修改管理密码DISP_2E1显
42、示显示器左边的两个字DISP_2E2显示显示器右边的两个字小结:本章主要介绍了程序的流程和各程序的功能。第五章 系统仿真5.1.软件仿真设计Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。本项目设计就是使用Proteus进行了系统仿真设计.其系统原理图如图5.1所示: 5.2.仿真结果5.2.1显示输入密码:5.2.2显示密码正确:5.2.3输入管理密码:5.2.4显示修改成功:第六章 结束语我们所做的是防