渝州科技职业学院电子密码锁院系:电子信息工程学院专业班级:11电管2班学生姓名:任龙龙学号:1102120208指导教师姓名:何健指导教师职称:讲师二O一三年十一月单片机原理及应用课程设计2目录1绪论………………………………………………………………………………31.1电子密码锁简介………………………………………………………………31.2本设计所要实现的目标………………………………………………………31.3设计方案简介…………………………………………………………………32系统总体方案设计………………………………………………………………42.1设计框图………………………………………………………………………42.2设计原理………………………………………………………………………43硬件系统构成……………………………………………………………………43.1主要源器件……………………………………………………………………43.2电路总体构成…………………………………………………………………53.3电源输入电路…………………………………………………………………53.4键盘输入电路…………………………………………………………………53.5密码存储电路…………………………………………………………………63.6复位电路……………………………………………………………………63.7晶振电路……………………………………………………………………73.8显示电路……………………………………………………………………83.9报警电路……………………………………………………………………83.10开锁电路……………………………………………………………………94软件系统设计……………………………………………………………………104.1主程序流程图………………………………………………………………104.2按键软件设计………………………………………………………………114.3密码设置软件设计…………………………………………………………124.4开锁软件设计………………………………………………………………13结论…………………………………………………………………………………15参考文献……………………………………………………………………………15附录…………………………………………………………………………………15附录1硬件原理图…………………………………………………………………15附录2C语言程序…………………………………………………………………15单片机原理及应用课程设计31绪论1.1电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1)保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3)误码输入保护,当输入密码多次错误时,报警系统自动启动。4)无活动零件,不会磨损,寿命长。5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。1.2本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以有用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。1.3设计方案简介采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机80C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码单片机原理及应用课程设计4输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。2系统总体方案设计2.1设计框图设计框图见图2-1。图2-1系统设计框图2.2基本原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。3硬件系统设计3.1主要源器件80C51键盘输入复位电路密码存储电路晶振电路电源输入显示电路报警电路开锁电路单片机原理及应用课程设计51、主控芯片80C512、存储芯片AT24C023、LCD16022显示器4、晶体振荡器3.2电路总体构成电路总体构成图见图3-1。EA/VPP31XTAL119XTAL218RST/VPD9P3.7/RD17P3.6/WR16P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P1.0/T1P1.1/T2P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30P3.1/TXD11P3.0/RXD10Vcc40Gnd20AT89S5XAT89S51K1470R510KR620uFC120pFC220pFC31212MHzS1K34.7KR9VCCVCC5WP6SCL7SDL8GND4A23A12A01AT24C025.1KR8VCCT28550VCC4.7KR11GND1VCC2VO3RS4RW5E6DB07DB18DB29DB310DB411DB512DB613DB714BGVCC15BGGND16LCD1602LCD?LCD1602VCCVCC1KR11KR21KR31KR4VCCVCC0设置清空123456789开锁确认启动关闭VCCVCC5.1KR7D1T38550图3-1电路总体构成图3.3电源输入电路密码锁主要控制部分电源需要用5V直流电源供电,其电路如图3-2所示,而5V电源输入时往往伴有杂波,所以加一个2.2uF的电容滤波。这样输出的电压一般能满足要求。VCCC42.2uF12POWER2PIN图3-2电源输入电路原理图3.4键盘输入电路单片机原理及应用课程设计6由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法见图3-3。S4S3S2S1S5S6S7S8S12S11S10S9S13S14S15S16R110kR210kR310kR410kR510kR610kR710kR810kVCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7图3-3键盘输入原理图3.5密码存储电路AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路见图3-4。A01A12A23GND4VCC5WP6SCL7SDL8U3AT24C02VCCR95.1kR105.1kVCCP3.5P3.6P3.7图3-4AT24C02引脚图图中1、2、3脚是三条地址线,用于确定芯片的硬件地址,在80C51上它们都能接地,第5脚和第8脚分别为正、负电源。AT24C02中带有片内地址寄存器,每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个储存单元的读写,所有字节均以单一操作方式读取。3.6复位电路单片机原理及应用课程设计7单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图2-8所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R11与R15分压比决定。由于R11R15因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态。R11的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电。复位电路原理图见图3-5。C1R11VCCK1R1510k图3-5复位电路原理图3.7晶振电路AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图3-6所示方式连接。晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在5~30pF之间。根据实际情况,本设计中采用12MHZ做系统的外部晶振。电容取值为20pF。单片机原理及应用课程设计8XTAL1XTAL2C320pFC220pFVss图3-6晶振电路原理图3.8显示电路为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示