基于51单片机电子密码锁的课程设计-.doc
基于单片机的电子密码锁设计摘 要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出。在科学技术不断开展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要。 本文从经济实用的角度出发,系统由STC89C52与低功耗CMOS型E²PROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD显示、报警、开锁等电路模块。它能完成以下功能:正确输入密码前提下,开锁;错误输入密码情况下,报警;密码可以根据用户需要更改。用C语言编写的主控芯片控制程序与EEPROM AT24C02读写程序相结合,并用Keil软件进行编译,设计了一款可以屡次更改密码,具有报警功能的电子密码控制系统。本密码锁具有设计方法合理,简单易行,本钱低,平安实用,保密性强,灵活性高等特点,具有一定的推广价值。关键词:电子密码锁;报警;液晶显示朗读显示对应的拉丁字符的拼音Design of Electric Password Lock Based on MCUAbstractAs people's living standards improve, the question how to achieve home security has become particularly prominent. In science and technology is developing continuously, electronic code lock as a security guard's role is increasingly important. This article from the economical point of view, the system by the STC89C52 with low power CMOS based E ² PROM AT24C02 as the master chip and the data memory unit, combined with the external keyboard, LCD display, alarm, unlock and other circuit modules. It performs the following functions: enter the password correctly under the premise of unlocking; wrong password case the alarm; password can be changed according to user needs. Master in C language control program and EEPROM AT24C02 chip to read and write process are combined and compiled with the Keil software, designed a number you can change the password, the password with an electronic alarm control system. The lock has a reasonable design, simple, low cost, safe and practical, confidentiality, flexibility, and high, with some promotional value. Key Words:Electric Password lock;Alarm; LCD Display目 录 引言1第1章 绪论21.1 电子密码锁的背景与研究意义21.2 电子密码锁的现状及开展趋势21.3 本章小结4第2章 系统整体方案设计52.1 设计目标52.2 主控局部的选择52.3 密码输入方式的选择52.4 本章小结6第3章 硬件系统设计73.1系统芯片介绍73.1.1单片机STC89C52功能介绍73.1.2 LCD1602显示器介绍83.1.3存储芯片AT24C02介绍93.1.4 I2C总线介绍93.2 硬件电路设计113.2.1 复位电路113.2.2 晶振电路123.2.3存储电路123.2.4 键盘输入电路143.2.5 显示电路143.2.6 电源输入电路153.2.7 报警电路153.2.8 开锁电路163.3 本章小结17第4章 软件程序设计184.1 主程序流程图184.2 按键软件设计184.2.1 按键功能程序流程图184.2.2 按键功能子程序194.3 密码设置软件设计204.3.1 密码设置程序流程图204.3.2 密码设置子程序214.4 开锁软件设计214.4.1 开锁程序流程图214.4.2 开锁功能子程序224.5 本章小结23第 5 章 系统仿真、调试及结论245.1 Proteus软件简介245.2 进入 Proteus ISIS245.3 工作界面245.4 各模块的电路图及说明265.4.1 电子密码锁系统主模块AT89C51单片机265.4.2 电子密码锁系统的键盘模块275.4.3 电子密码锁系统的显示模块275.4.4 电子密码锁系统的晶振复位电路285.4.5电子密码锁系统的掉电存储及报警电路285.4.6 电子密码锁系统的开锁电路285.4 本章小结29结论与展望30致 谢31参考文献32附录A 密码锁电路原理图33附录B 一篇引用的外文文献及其译文34附录C 主要参考文献的题录及摘要40附录D 主要C语言源程序42插图清单图2- 1系统整体设计框图5图3- 1 STC89C52引脚分布图7图3- 2 AT24C02引脚图9图3- 3开始结束信号图10图3- 4复位电路原理图12图3- 5晶振电路原理图12图3- 6掉电存储电路原理图13图3- 7键盘输入原理图14图3- 8显示电路原理图15图3- 9电源输入电路原理图15图3- 10报警电路原理图16图3- 11密码锁开锁机构示意图16图3- 12开锁电路原理图17图4- 1主程序流程图18图4- 2按键功能流程图19图4- 3密码设置流程图20图4- 4开锁流程图22图5- 1 Proteus启动时的屏幕24图5- 2 Proteus ISIS的工作界面25图5- 3 Proteus运行按键25图5- 4 Proteus仿真图26图5- 5 STC89C52单片机引脚图26图5- 6键盘输入模块27图5- 7密码显示模块27图5- 8晶振及复位电路28图5- 9掉电存储及报警电路28图5- 10开锁电路29表格清单表3-1 LCD1602引脚接口说明表8表3-2 LCD1602根本操作程序15仅供学习参考引 言在当今社会,平安防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大局部人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁翻开。机械锁的这些弊端为一种新型的锁电子密码锁,提供了很大的开展空间。从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和取款机,由于人们对平安的重视和科技的开展,许多电子智能锁指纹识别、IC卡识别已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器在公共场所使用存在容易机械损坏,IC卡还存在容易丧失、损坏等缺点,再加上其本钱较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接受程度,键盘式电子密码锁是这类电子防盗产品的主流。在科学技术不断开展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。电子密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有平安性高,使用方便等优点。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比拟高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和平安性已大大超过了机械锁。本次毕业论文主要分为两大模块,一是硬件系统电路局部,另一个是用C语言编写的软件程序局部,根本能完成电子密码锁的开锁、修改密码、密码错误报警等主要功能,本钱低,可靠性高,具有很好的市场应用价值。第1章 绪论1.1 电子密码锁的背景与研究意义在当今社会,平安防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大局部人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁翻开。机械锁的这些弊端为一种新型的锁电子密码锁,提供了很大的开展空间1。本文从经济实用的角度出发,设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,密码锁共8位密码,每位的取值范围为18,用户可以自行设定和修改密码,每个密码按键都有声、光提示。用户想要翻开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高平安性,当密码输入错误三次将报警十分钟,期间输入密码无效,以防窃贼屡次试探密码。八位密码同时输入正确,锁才能翻开。锁内有备用电池,只有内部上电复位时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的,因此保密性强、灵活性高。其特点如下:1) 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以防止因人员的更替而使锁的密级下降。3) 误码输入保护,当输入密码屡次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码锁操作简单易行,一学即会。 1.2 电子密码锁的现状及开展趋势在日常的生活和工作中, 住宅与部门的平安防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的方法来解决。假设使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丧失后平安性即大打折扣。在平安技术防范领域,随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能,从而使密码锁具有很高的平安性、可靠性。最早的锁,是主人为防他人开启而设的简单的机关,应用于门上最简单的锁就是门闩了。我国古代有石锁,并无钥匙,是以绳索或铁链束缚。商周时期出现了用钥匙才能开启的铜锁,铁锁,以钥匙的不同而匹配不同的锁。 随着科学技术的迅猛开展,机械锁也有了长足的开展。现代机械锁具已有了一百多年的历史,锁芯里参加了长短不一的弹子,要外线用相应齿形的钥匙来翻开。以后,又开展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的根底上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。如指纹、眼底视网膜等来控制锁的开启。我国锁的开展已绵延了数千年,中国锁具的开展,大体经历了初创期,开展期和繁荣期三个阶段。初创期为新石器时代到夏商时期。在我国母系社会后期相当于公元前5000年-公元前2000年,因为当时社会生产力的提高,人类开始拥有个人的私有少量财产。后来,随着私有制的开展,私人财富越来越多,为了保护财产和生命的平安,人类开始了对锁具的探索。在最初,人类只是简单地把个人贵重财物用兽皮包起来外面用绳索牢牢捆缚,最后在开启处,打上特殊的紧紧捆死的绳结,只能用一个叫“错的工具才能挑开。错,又叫“肖、“起子。它用兽牙或兽骨制成,形状像把镰刀状的钩子,实际上绳结就是最早的锁具,“肖就是最早的钥匙,这就是我国锁具的雏形,一直从商代沿用到汉代。到了距今5000年的仰韶文化时期,我们先民创造了装在木结构框架建筑上的木锁。这是世界上迄今为止最古老的锁具,可称得上是“世界第一锁。2这种木锁一直在民间传承。开展期为春秋战国经秦汉、魏晋、南北朝,直到隋唐宋元时期。春秋时期进入铁器时代,考古证明,在这一时期人们大量的是使用铁锁、铜锁,还有银锁、鎏金锁等,其中有代表性的如西周的青铜锁、东汉的金属锁、唐代的虾尾银锁和宋代的方身锁等,都具有相当高的技术水平。繁荣期为明清时期特别是汉代的铁制三簧锁,在我国前后沿用了1000多年。各种材质的锁具同步开展,以铜锁、铁锁居多,工艺更加精巧,在开锁难度和外形制造上有很大的创新。现代锁具,它的机械化生产,摆脱了过去我们用手工操作的束缚。它不仅是能批量生产,满足人民生活的需要;同时,也充分运用了现代科学,创造了磁控锁、声控锁、遥控锁、远红外线锁、电子卡片锁、指纹锁、超声波锁、电磁波锁等绝妙精品,大大提高了防窃、防盗功能。从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和取款机,由于人们对平安的重视和科技的开展,许多电子智能锁指纹识别、IC卡识别已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器在公共场所使用存在容易机械损坏,IC卡还存在容易丧失、损坏等缺点,再加上其本钱较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接受程度,键盘式电子密码锁是这类电子防盗产品的主流。在科学技术不断开展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。电子密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有平安性高,使用方便等优点3。键盘式电子密码在键盘上输入,与打 差不多,因而易于掌握,其突出优点是“密码是记在被授权人脑子里的数字和字符,既准确又可靠,不会丧失除了忘记,难以被窃除非自己泄露。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性缺乏。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断开展中,如“任意设定密码技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,那么保密性还可提高4。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码假设干次或假设干时间内输入不正确,即“封锁键盘,不再接受输入操作。当今电子密码锁开展已经到了非常高的境界,由于电子元件特别是单片机应用在这几年得到空前开展,无论功能性,稳定性都比拟全面,在保密方面已做到人眼识别,指纹识别,人声识别根本上电影上有的现实也有。在国外开展比拟早,所以应用也比拟广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内这方面开展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的开展也会越来越被群众采用,由于它的功能、平安是弹子锁无法相比的5。开展前境也是非常大的。1.3 本章小结本章首先讲述了本文的选题来源及研究意义,然后讲述了电子密码锁在国内的开展过程及特点,最后表达了当前电子密码锁的应用及开展前景。第2章 系统整体方案设计2.1 设计目标本设计采用STC89C52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD1602和密码存储AT24C02等局部组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行比照,从而判断密码是否正确,然后控制引脚的上下电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统,能够实现:1 完全正确输入八位密码的前提下,有开锁提示;2 错误输入密码情况下,蜂鸣器报警;开锁密码错3次要报警10分钟,报警期间输入密码无效。3用户可以自行设定和修改密码;4只有内部上电复位时才能设置或修改密码。系统整体设计框图如图2-1所示:输入电路显示电路主控芯片存储模块输出电路晶振电路图2- 1 系统整体设计框图2.2 主控局部的选择方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比拟器比拟,判断结果是否相符合4。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。 方案二:采用以单片机为核心的控制方案选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器RAM和只读存储器ROM及其引脚资源,外接液晶显示LCD,键盘输入等实现数据的处理传输和显示功能,根本上能实现设计指标6。因此综合考虑,本系统采用方案二。2.3 密码输入方式的选择方案一:指纹输入识别 指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点minutiae的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。通过计算机模糊比拟的方法,把两个指纹的模板进行比拟,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。考虑到本方案软硬件太过复杂,而且本钱也高,故不采用。方案二:矩阵键盘输入识别 由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。 行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,那么确定这两条线的交点处的按钮被按下。每个按键都可通过程序赋予功能,从而完成密码识别本方案简单易行,故采用。2.4 本章小结本章主要围绕电子密码锁系统展开,首先说明了电子密码锁的组成,然后介绍了主控制方案、密码输入方案论证与比拟,最终选择了最优方案。第3章 硬件系统设计3.1系统芯片介绍3.1.1单片机STC89C52功能介绍STC89C52是51系列单片机的一个型号,它是STC公司生产的。STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器RAM,器件采用STC公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可提供许多较复杂系统控制应用场合。STC89C52有40个引脚,32个外部双向输入/输出I/O端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱7。STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求 。其引脚图如图3-1示。图3- 1 STC89C52引脚分布图STC89C52具体介绍如下: 主电源引脚2根VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚2根XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚4根RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平那么从内部程序存储器读指令。可编程输入/输出引脚32根STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位8根引脚,共32根8。P0口Pin39Pin32:8位双向I/O口线,名称为P0.0P0.7P1口Pin1Pin8:8位准双向I/O口线,名称为P1.0P1.7 P2口Pin21Pin28:8位准双向I/O口线,名称为P2.0P2.7 P3口Pin10Pin17:8位准双向I/O口线,名称为P3.0P3.73.1.2 LCD1602显示器介绍液晶显示模块已作为很多电子产品中都可以看到,显示的主要是数字、专用符号和图形。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数产品的通过器件,如在计算器、万用表、电子表及很多家用电子据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符比照度调节和背光功能。引脚功能说明:LCD1602采用标准的14脚无背光或16脚带背光接口,各引脚接口说明,如表3-1所示:表3- 1 LCD1602引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器比照度调整端,接正电源时比照度最弱,接地时比照度最高,比照度过高时会产生“鬼影,使用时可以通过一个10K的电位器调整比照度。第4脚:RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.1.3存储芯片AT24C02介绍AT24C02是美国Atmel公司的低功耗CMOS型E²PROM,内含256×8位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丧失、体积小等特点。而且他是采用了I²C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址存放器。每写入或读出一个数据字节后,该地址存放器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了I²C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。管脚描述:SCL 为串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDL 为串行数据/地址:双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或。A0、A1、A2 为器件地址输入端:当使用24C02 时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。WP为写保护:如果WP 管脚连接到Vcc 所有的内容都被写保护只能读当WP, 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作12。管脚图如图3-2所示。 图3- 2 AT24C02引脚图3.1.4 I2C总线介绍I2C(InterIntegrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在效劳器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。I2C总线的硬件结构:I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。为了防止总线信号的混乱,要求各设备连接到总线的输出端时必须是开漏输出或集电极开路输出。设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机。 总线的运行数据传输由主机控制。所谓主机是指启动数据的传送发出启动信号、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。被主机寻访的设备称为从机。为了进行通讯,每个接到I2C总线的设备都有一个唯一的地址,以便于主机寻访。主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机。但凡发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器。总线的构成及信号类型:I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像 机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器或被控器,又是发送器或接收器,这取决于它所要完成的功能。I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。假设未收到应答信号,由判断为受控单元出现故障9。如图3-3所示SDASCL开始结束图3- 3 开始结束信号图目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。总线根本操作:I2C规程运用主/从双向通讯。器件发送数据到总线上,那么定义为发送器,器件接收数据那么定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件通常为微控制器控制,主器件产生串行时钟SCL控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件10。1 控制字节:在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符不同的芯片类型有不同的定义,EEPROM一般应为1010,接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。2写操作:写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。3 读操作:读操作有三种根本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心。为了结束读操作,主机必须在第9个周期时发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。3.2 硬件电路设计本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等局部组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行比照,从而判断密码是否正确,然后控制引脚的上下电平传到开锁电路或者报警电路控制开锁还是报警。本系统共有两局部构成,即硬件局部与软件局部。其中硬件局部由电源输入局部、键盘输入局部、复位局部、晶振局部、显示局部、报警局部组成,软件局部对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。3.2.1 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间即RST为高电平期间,P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图3-4所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了防止死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R1与R2分压比决定。由于R11<<R15 因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态。R1的作用在于限制按键按下瞬间电容C1的放电电流,防止产生火花,以保护按键触电 。E1R1K1R210K图3- 4复位电路原理图3.2.2 晶振电路ST89C52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图3-5所示方式连接。晶振、电容C2C3及片内与非门作为反应、放大元件构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C2、C3取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做系统的外部晶振11。电容取值为20pF。图3- 5晶振电路原理图3.2.3存储电路AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能。采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。 1、管脚封装DIP:双列直插式封装,是最简单的一种封装技术。 2、极限参数:工作温度工业级-55 +125 商业级0 +75 贮存温度-65 +150 各管脚承受电压-2.0 Vcc+2.0V Vcc管脚承受电压-2.0 +7.0V 封装功率损耗Ta=25 1.0W 焊接温度(10 秒) 300 3、功能描述AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器