单片机课程设计课题:电子密码锁学院:电气与信息工程学院专业:电子信息工程姓名:***学号:0934111**指导老师:贺伟田巍河南城建学院2013年01月01日成绩评定·一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分评分项目设计报告评分答辩评分平时表现评分合计(100分)任务完成情况(20分)课程设计报告质量(40分)表达情况(10分)回答问题情况(10分)工作态度与纪律(10分)独立工作能力(10分)得分课程设计成绩评定班级姓名学号成绩:分(折合等级)指导教师签字年月日目录第一章设计目的..................................................1第二章总体设计方案的确定........................................22.1电子密码锁设计的具体要求............................................22.2总体设计方案选定.....................................................2第三章系统硬件设计......................................................43.1单片机AT89S51简介..................................................43.1.1主要特性.......................................................43.1.2引脚功能说明...................................................5_Toc263084073液晶显示LCD1602的介绍...................................83.2硬件电路的设计.....................................................103.2.1最小系统的设计................................................103.2.2芯片擦除......................................................123.2.3开锁机构......................................................123.2.4键盘设计......................................................133.2.5显示电路设计..................................................14第四章系统软件设计.............................................164.1主程序模块..........................................................164.2键盘扫描及识别子程序...............................................174.3系统模块密码设置子程序.............................................19第五章系统制作及调试...........................................205.1焊接注意事项:......................................................205.2、硬件调试问题及解决方法............................................21参考文献........................................................23附录Ⅰ电子密码锁整体设计图..........................................24附录Ⅱ电子密码锁程序源代码..........................................251第一章设计目的本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以有用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。2第二章总体设计方案的确定2.1电子密码锁设计的具体要求(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。(2)设计开锁密码位六位密码的电子密码锁。(3)能够LCD显示在密码正确时显示PASSWORDOK,密码错误时显示PASSWORDERROR,输入密码时显示INPUTPASSWORD。(4)实现输入密码错误超过限定的三次电子密码锁定。(5)4×4的矩阵键盘其中包括0-9的数字键和A-F的功能键(6)本产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。2.2总体设计方案选定方案一:采用数字电路控制。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。方案二:采用一种是用以AT89S51为核心的单片机控制方案。选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。其原理如下图2.1所示:3图2.1单片机控制密码锁原理图可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案4第三章系统硬件设计3.1单片机AT89S51简介AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。3.1.1主要特性与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路53.1.2引脚功能说明图2.2单片机引脚图Vcc:电源电压GND:接地P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),Flash编程和程序校验期间,Pl接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高6电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/0口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。XTALl:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。7液晶显示LCD1602的介绍1、LM1602字符型模块的性能重量轻:100g;体积小:11mm厚;功耗低:10—15mW;显示内容:192种字符(5×7点字型);32种字符(5×10点字型);可自编8(5×7)或许(5×10)种字符;指令功能强:可组合成各种输入、显示、移位方式以满足不同的要求;接口简单方便:可与8位微处理器或微控制器相联;工作温度宽:0—50oC可靠性高:寿命为50,000小时(25oC)2、基本原理①液晶体液晶板上排列着若干5×7或5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。②工作电路它由KS0066、KS0065及几个电阻电容组成。KS0065是扩展显示字符用的(例如:16个字符×1行模块就可不用KS0065,16个字符×2行模块就要用1片KS0065)接口方面,有8条数据,三条控线。可与微处理器或微控制相连,通过送入数据和指令,就可使模块正常工作。③LCD驱动器和控制器ALCD驱动器KS0065KS0065是用低功耗CMOS技术制造的大规模LCD驱动IC。它既可当行驱动用,也可以当列驱动用,由20×2Bin二进制移位寄存器、20×