课程设计(论文)任务书信息工程学院计算机专业2009-1班一、课程设计(论文)题目基于单片机的密码锁设计二、课程设计(论文)工作自2012年6月11日起至2012年6月24日止。三、课程设计(论文)地点:教5-403四、课程设计(论文)内容要求:1.本课程设计的目的(1)使学生掌握系统各功能模块的基本工作原理;(2)培养学生基本掌握电路设计的基本思路和方法;(3)使学生掌握接收系统调试;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。2.课程设计的任务及要求1)基本要求:(1)分析调频接收系统各功能模块的工作原理;(2)选用合适的器件;(3)提出系统的设计方案;(4)对所设计电路进行调试。2)创新要求:在完成基本功能的同时,还增加了一个超级密码,以便用户忘记设定的密码时进行紧急处理,并且超级密码可以由除数字1-8外还可以由字母a,b,c,d组成。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写毕业论文(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等(3)毕业论文装订按学校的统一要求完成4)答辩与评分标准:(1)完成原理分析:20分;(2)完成设计过程:30分;(3)完成调试:30分;(4)回答问题:20分。5)参考文献:(1)张毅刚.《单片机原理及应用》高等教育某出版社(2)彭伟.《单片机C语言程序设计实训100例:基于8051+Proteus仿真》电子工业出版社6)课程设计进度安排内容天数地点构思及收集资料2图书馆组装与调试5实验室撰写论文3图书馆、实验室学生签名:2012年6月11日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(30分):优()、良()、中()、一般()、差();(3)完成调试(30分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)格式规范性及考勤是否降等级:是()、否()评阅人:职称:副教授2012年6月24日目录一、项目要求------------------------------------------------------------4二、系统设计--------------------------------------------------------------5三、硬件设计------------------------------------------------------------53.1电路原理图--------------------------------------------------------53.2proteus仿真图--------------------------------------------------63.4复位电路----------------------------------------------------------73.5数字按键电路----------------------------------------------------83.6蜂鸣器-------------------------------------------------------------83.7继电器控制电路-------------------------------------------------93.8功能拓展----------------------------------------------------------9四、元器件清单-------------------------------------------------------10五、程序调试-------------------------------------------------------------11六、程序流程图:-------------------------------------------------------14七、仿真与调试:-------------------------------------------------------15八、问题解决及总结----------------------------------------------------15九、参考文献:----------------------------------------------------------16附录-------------------------------------------------------------------------17一、单片机系统的电路原理图(见附加页)------------------17二、程序清单---------------------------------------------------------17绪论在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。本系统由AT89C52单片机系统(主要是AT89C52单片机最小系统)、8位数键盘,蜂鸣器报警,继电器控制等组成,具有设置、修改8位用户密码、超过3次次报警、密码错误报警等功能。除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。这种能防止多次试探密码的单片机应用前景广泛。一、项目要求基于AT89S52单片机的密码锁设计,具体功能如下:(1)总共可以设置8位密码,每位密码值范围1—8。(2)用户可以自行设定和修改密码。(3)按每个密码键是都有声音提示。(4)若键入的8位开锁密码不完全正确,则报警5s,以提醒他人注意。(5)开锁密码连续错3次要报警1分钟,报警期间输入密码无效,以防止窃贼多次试探密码。(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1s的提示音。(7)电磁锁的电磁线每次通电5s,然后恢复初态。(8)密码键盘上只允许有8个密码锁按键。锁内有备用电池,只有内部上点恢复时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的。(9)密码设定完毕后要有2s提示音。二、系统设计按照系统设计要求和功能,将系统分为主控模块,按键扫描模块,蜂鸣器,电源电路,复位电路,晶振电路,驱动电路几个模块,系统框图如图所示。主控模块采用AT89S52单片机。基于AT89S52单片机的密码锁组成框图三、硬件设计3.1电路原理图系统硬件电路图如图10-2所示,P1和P0口接密码按键,其中P1口解超级密码的扩展按键,开锁脉冲由P3.0输出,报警和提示音由P3.4输出,按键S2~S9分别代表数字1~8,按键S10~S13分别代表字母D、C、B、A.若没有按键按下,则P0.0~P0.7和P1.0~P1.3全是高电平;若某按键被按下,则相应的口线为低电平。原理图3.2proteus仿真图仿真图3.3外部晶振电路外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容Cl、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。此次实验采用使用石英晶体,电容使用30pF±10pF晶振模块电路3.4复位电路RST引脚与电源之间接10UF左右的极性电容和在RST与VSS之间接一个电阻(约8.2千欧姆)就可实现加电复位功能(在RES引脚上加上持续时间大于2个机器周期的高电平)。复位后的状态:a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。c、P0~P3口值为FFH。P0~P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。复位电路模块3.5数字按键电路通过BUTTON按键接P0和P1口对应端口,通过手动按键给对应的P0和P1口拉致低电平从而改变端口值,从而给出密码值。独立键盘模块3.6蜂鸣器通过8550以及按键控制和软件延时控制蜂鸣器持续工作时间。3.7继电器控制电路密码正确接通发光二极管,从而点亮发光二极管,来模拟电磁线圈的导通。3.8功能拓展在P1口接四个扩展按键,现实设想中,这四个按键是密封的,需要备用钥匙才能打开。当屋主忘记了自己的密码,家里又没有人时,无主可以输入已经固化到程序中的超级密码将门锁开启,而当屋主成功输入超级密码后,单片机将让屋主重新设定自己的密码。功能拓展键盘模块数码管LG5011AG显示:通过P3.5和P3.6输出信号从而控制数码管显示对应的按键编号。数码管电路模块四、元器件清单基于AT89S52单片机的密码锁元件清单如表所示。元件名称型号个数用途单片机AT89S521控制核心晶振12MHz1晶振电路电容30Pf2晶振电路电解电容20uf/10V1复位电路按键12按键电路三极管S90132放大电路蜂鸣器1报警电路电阻1kΩ4驱动led电阻10kΩ9复位、上拉电路电阻4.7kΩ8驱动数码管USB+5V/0.5A1提供+5V电源数码管共阴2显示密码和时间电路板实物图五、程序调试在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可识别的S51文件,利用PC机写进proteus程序图芯片内进行仿真测试,并对其出现的错误进行修改,由图4.4~图4.8可看出最终调试成功。keil编译程序成功keil生成hex文件proteus调用keil的hex文件进行仿真程序下载烧录成功单片机系统工作状态六、程序流程图:一般密码输入的程序的流程如下图所示,程序采用C51进行编程,利用定时器0作为计时工具,并通过数码管来显示当前的计时时间和输入的密码。基于AT89S52单片机的密码锁程序流程图扩展功能的流程图七、仿真与调试:按键S2-S9分别代表数码1-8,按键S13—S10代表数码D-A.在没有按键按下时,P1.0-P1.3、P0.0—P0.7全是高电平1;若某个按键被按下,相应的口线就变为低电平0,假如设定的密码是612345678,当按键S7被按下时,P0.5变为低电平,P0端口其余口线为高电平,此时从P0端口读入的数值为11011111,存到密码数组单元的密码值就是11011111,也就是0DFH。以此类推,存到32H至38H单元的密码值分别为FDH,FBH,F7H,EFH,DFH,7FH,FEH.八、问题解决及总结在这次课程设计的整个设计以及实际操作过程,我从中学习到了很多知识,当然在整个设计过程中出现了很多问题。其中,困扰了我最久也是最让我担心的一个问题是:在仿真通过的前提下,将程序烧写到单片机后,发现自己做的板子出现的程序跑飞的情况。用万用表测试后发现并没有出现短路或者断路,然后借用创新实验室的数字示波器,对电路板的每个模块进行检测。发现是晶振出现了问题,12MHz的晶振在工作时只有3KHz的频率,这样明显不能让单片机工作,最后,在更换了两个晶振后,单片机也终于可以正常工作了。其次,在制作板子之前的打印工作时,考虑到需要将PCB转印上去造成电路图镜像了一次,但是忽略了焊接时是在反面进行了又一次镜像,所以在打印时也镜像了一次,这样就相当于镜像了三次,结果第一次做出的板子是镜像的。造成的直接后果是单片机两排管脚全部