《单片机课程设计智能密码锁(共32页).doc》由会员分享,可在线阅读,更多相关《单片机课程设计智能密码锁(共32页).doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上湖南工程学院课程设计课程名称单片机原理与应用课题名称智能密码锁设计专业电子信息工程班级0981 班学号9姓名刘维新指导教师汪超、李晓秀、李世军等2012 年5 月18 日湖南工程学院课程设计任务书课程名称单片机原理与应用课题智能密码锁设计专业班级电子信息0981班学生姓名刘维新学号9指导老师汪超、李晓秀、李世军等审批任务书下达日期2012 年 5 月7 日任务完成日期2012 年5 月18 日设计内容与设计要求设计内容:1、密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。2、密码的输入:采用两个按键来完成密码的输入,其中一个按键
2、为功能键,另一个按键为数字键。在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。然后进入密码的判断比较处理状态并给出相应的处理过程。3、按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。设计要求:1、设计方案要合理、正确;2、系统硬件设计及焊接制作;3、系统软件设计及调试;4、系统联调;5、写出设计报告。主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件;3、单片机应用系统板1套;4、制作工具1套;5、系统设计所需的元器件。说明书格式1.封面2.课程设计任
3、务书3.目录4.系统总体方案设计5.系统硬件设计6.软件设计(包括流程图7.系统的安装调试说明8、总结9、参考文献10、附录(源程序清单及硬件原理图等;11、课程设计成绩评分表。进度安排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五、设计及调试第二周星期一、设计及调试星期二、设计及调试星期三、总调星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩参考文献1、微型计算机原理及应用许立梓编机械工业出版社 20022、微型计算机接口技术及应用刘乐善编华中理
4、工大学出版社 20003、计算机硬件技术基础试验教程邹逢兴编高等教育出版社 20004、16位微型计算机原理接口及其应用周佩玲编中国科学技术大学出版社20005、微型计算机原理与接口技术吴秀清编中国科学技术出版社 20016、微型计算机接口技术邓亚平编清华大学出版社 20017、单片机原理及及应用王迎旭编机械工业出版社 20018、单片机应用程序设计技术周航慈著北京航空航天大学出版社 20029、单片机实用技术问答谢宜仁主编人民邮电出版社 2002第1章单片机系统概述1.1 单片机的介绍随着科技的飞速发展,单片机随之诞生,它被人么运用到生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹
5、的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。Intel公司推出了MCS
6、-51系列单片机:集成8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。1.2 设计内容及要求对于此次课程设计我们使用80C51为作为主控芯片与数据存储器单元,结合外围的矩阵键盘输入、LCD显示、报警、开锁等控制方案来实现的电子密码锁的设计,其主要具有如下功能:(1密码的设定:此密码是固定在程序存储器ROM中,假设预设的密为“12345”共5位密码。(2密码的输入:采用一组数字键盘来完成密码的输入及一个确认功能键来确认密码的正确性。在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。然
7、后进入密码的判断比较处理状态并给出相应的处理过程。(3密码的删除功能:当在密码输入时,不小心将密码输错,此时只要按下删除键,便能重新输入密码。(4按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。(5报警功能:当连续输入的三次密码全都错误的情况下,自动启用报警功能,有警报声响起及红灯闪烁。(6复位功能:在输入密码确认后最终出现两种情况:一是密码输入正确,此时密码锁自动打开,一段时间后便自动复位,进入下一次密码的输入。二是密码输入错误,此时启动警报,只有当人为的按下复位功能键才能解除警报状态。第2
8、章 系统总体方案设计2.1 总体方案此次智能密码锁控制器的设计主要是通过程序来控制键盘和报警器等,在一般状态下输入原始密码,则可以开锁。如果在锁住时输入密码,且连续三次密码错误,报警器报警,手动按下复位按钮,解除警报。此次设计我们将密码固化在ROM 中,放入表中,在得到按键后,查表比较密码,如果正确,显示”GOOD ”提示,如果三次密码错误,就禁止读取按键函数,只打开报警电路发出报警声及红灯闪烁!系统总框图如下所示:2.1 系统总框图密码对显示GOOD 80C51 单片机 矩阵 键盘 控制 LCD 六位显示器 输入错误返回 连续输错三次启动报警2.2 系统组成本系统主要包括两个部分:硬件部分和
9、软件部分。硬件部分:矩阵键盘接口电路、密码锁的控制电路、复位控制电路和输出显示电路等三部分。键盘部分包括键盘扫描时序产生电路、键盘扫描、弹跳消除、键盘译码、按键存储。程序控制包括数字按键的数字输入、存储及清除、功能按键的功能设计、激活开锁电路、密码核对。复位电路包括复位控制按钮。输出显示电路的设计包括数据选择、BCD对显示译码、七段LED 显示扫描。软件部分:汇编程序的主函数和子函数。其中子函数又包括:按键读取函数、延时函数、定时中断函数、按键处理函数、删除函数、密码比较函数、显示函数、报警函数、复位函数。第3章系统硬件设计3.1主控芯片80C51此次智能密码的锁设计主要是围绕80C51芯片而
10、做的,80C51是INTEL 公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS 工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。 图3.1 80C51芯片引脚图80C51各管脚的功能如下:VCC和GND:分别为外接电源和接地P0P3:为输入/输出口线,其各有
11、的功能,其中P3口每一位还有特殊功能。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA保持低电平时,在此期间外部程序存储器(0000H-FFFFH,不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2单片机振荡电路8051内置频率可达12MHz的
12、时钟电路,用来产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容,晶振采用12M外接30pF电容构成单片机时钟电路。 图3.2单片机振荡电路3.3单片机复位电路单片机系统的复位电路在可以采用的是按钮式上电复位电路形式,其中电阻R采用10K的阻值,电容采用10F的电容值。 图3.3 复位电路3.4 键盘按键电路此次设计使用的是矩阵键盘,这种形式的键盘能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。 图3.4(a矩阵键盘这种键盘内部结构为每一条水平(行线与垂直线(列线的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列
13、线,即可组成具有NM个按键的键盘。我们这次设计的电子密码锁的按键部分采用4X4矩阵键盘,键盘行列各有四条线键盘排列在行与列线的交点上如图3.4(a所示。 图3.4(b 矩阵键盘内部结构图如上图所示键盘,确定矩阵式键盘上何键被按下常使用的为“行扫描法”。行扫描法行扫描法又称为逐行(或列扫描查询法,是一种最常用的按键识别方法,介绍过程如下。判断键盘中有无键按下:(1先将行线p1.7-p1.4置0111,然后检测列线的状态。如果p1.3-p1.0为0111,则k0被按下;如果p1.3-p1.0为1011,则k1被按下;如果p1.3-p1.0为1101,则k2被按下;如果p1.3-p1.0为1110,
14、则k3被按下;(2将行线p1.7-p1.4置1011,然后检测列线的状态,方法同(1;(3将行线p1.7-p1.4置1101,然后检测列线的状态,方法同(1;(4将行线p1.7-p1.4置1110,然后检测列线的状态,方法同(1。3.5显示电路八段共阳显示器的结构是八个二极管连接一个阳极的结构,只要另一段为低电平,二极管就会发光,从而形成一段。将八段顺序排列后就成为具有一定编码的共阳显示器了。本设计显示电路采用共阳显示器显示输入的五位密码,和一个密码输入次数提示位。其显示状态有三种:当密码锁处于开始状态时,LED不做任何显示,当密码锁输入正确的密码是即显示GOOD,当密码连续输入三次错误时LE
15、D显示“”并且不停闪烁。此三种状态图如下所示。 图3.5(a 无任何输入时显示状态 图3.5(b输入密码正确的显示状态 图3.5(c连续三次输错密码的显示状态3.6报警电路输入密码与设定密码做比较,当输入密码与设定密码不同,返回再输入,当输入密码次数超过3次时,通过软件从80C51的P3.6输出脉冲,是红色报警二极管闪烁,并且从P3.7输出脉冲使三极管导通扬声器鸣笛报警。 图3.6报警电路原理图第4章 软件设计4.1软件总体设计本系统软件设计由主程序、初始化程序、LCD 显示程序、键盘扫描程序、键功能程序、密码设置程序、密码比较程序、密码对开锁、错报警和延时程序等组成。软件设计总流程图如下:
16、图4.1 软件设计总流程图手 动 复 位4.2键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。4.3 比较密码子程序当按下确定按键后程序执行密码比较,判断密码是否正确,从而决定是否禁止键盘,是否报警,还是继续等待按键输入,图4.2是密码比较函数流程图:开始取密码密码正确调密码输入正确显示程序延时 返回到P.显示程序返回到P.显示程序NY图4.2 比较密码子程序流程图4.4 显示程序设计由于是分屏显示数据,所以就要用到5个显示子程序,分别是:关闭状态显示子程序、开锁状态显示子程序、密码输入及修改
17、状态显示子程序、密码输入错误后的提示子程序。密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序。为了显示数字,要为LED显示器提供字型代码。我用的是共阳极的显示器。4.5按键功能流程图如图4.3为按键功能流程图,在按键当中,有与输入、开锁、清除、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,最后确认程序。 图4.3 按键功能流程图4.6开锁流程图如图4.4为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功。如果输入错误累计达到三次,则执行报警程序。开锁流程图如下所示:图4.4 开锁流程图初始化按开锁键输入密码确认程序所输入
18、密码正确?Y开锁成功开锁程序输入次数加1次数3?报警程序返回NYN第5章安装调试说明对于智能密码锁的设计,我们可以使用proteus软件来仿真,Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。仿真之前我们得先做一些准备工作。首先,根据密码锁设计所需,使用编程软件写一个程序,这里既可以用C语言来编写也可用伟福软件来编写汇编语言。现在我们用所熟悉的单片机汇编语言来编写,程序编写完了,进行程序的编译,正确后软件部分完成。然后进行原理图的制作,先打开p
19、rotues软件,将所需要的元件找到放置好,调整合理,然后依次连上线。将各个线进行网络编号。完毕后,进行电气规则检查,检查正确后就可以加载汇编程序了。打开工具栏中源代码项的添加源文件,选择编好的汇编程序。这些都做好之后我们就可以进行软硬件的模拟仿真了,单击调试中的执行,进入仿真状态。初始时,为了节约电能,LED上无任何显示,这时可以从键盘上输入5位数字进去,如不小心输入错误,可以按下删除键进行修改。输完五位数字之后,按确认键。如果密码正确,LED显示GOOD此时密码锁打开,若是输入错误,不做任何显示,进行二次重复输入,倘若连续三次输错,便会自动启动报警,以引起主人注意。只有按下异地解除报警复位
20、按钮方能解除报警。以上是密码锁所具有的功能,如果满意的话这时我们就能按照原理图以及结合实际需要来进行实物的制作。第6章设计总结通过连续两周的课程设计,我学到了许多书本上无法学到的知识,也深刻体会到单片机技术应用领域的广泛。不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。本设计让我对专业知识有了更深的理解。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:AT89C51单片机及其引脚说明、键盘扫描程序的编写等,为本次课程设计提供了一定的资料。在做课程设计的初期阶段,难度较大。在设计基本完成时密码的修改还是不能实现,通过求助于老师、查
21、找了问题的所在。最后经过指导老师的耐心指点和连续的奋战才基本设计出来。感谢老师的无私的帮助!本次设计我能独立完成,算是有了很大的收获。不但对单片机有了更为深入的了解,对一个课题如何实现模拟仿真及编写汇编程序等,有了一定的认识。进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。同时明白了办事只要有信心,有毅力,找对方法,就会成功!通过本次课程设计,让我了解到智能化技术对当今人们生活的重要性。同时这次做课程设计的经历也使我受益匪浅。让我知道做任何事情都应脚踏实地
22、,刻苦努力地去做。只有这样,才能做好。在这次课程设计中,我既巩固了专业知识,又学到了在设计过程中的许多流程和该注意的事项,增强了电子产品开发的意识。本次经历将是我在大学时期很好的一次实践和锻炼机会。参考文献1、微型计算机原理及应用许立梓编机械工业出版社 20022、微型计算机接口技术及应用刘乐善编华中理工大学出版社 20003、计算机硬件技术基础试验教程邹逢兴编高等教育出版社 20004、16位微型计算机原理接口及其应用周佩玲编中国科学技术大学出版社20005、微型计算机原理与接口技术吴秀清编中国科学技术出版社 20016、微型计算机接口技术邓亚平编清华大学出版社 20017、单片机原理及及应
23、用王迎旭编机械工业出版社 20018、单片机应用程序设计技术周航慈著北京航空航天大学出版社20029、单片机实用技术问答谢宜仁主编人民邮电出版社 2002附录A 硬件原理图 附录B 源程序清单KEYOK BIT 20H.0NUM5 BIT 20H.1NUM3 BIT 20H.2NUM1 BIT 20H.3LED BIT P3.6BEEP BIT P3.7ORG 0000HSJMP MAINORG 000BH;*初始化*INIT:MOV R6,#5MOV R1,#40HIN1: MOV R1,#16INC R1DJNZ R6,IN1MOV R3,#1RET;*;*主函数*MAIN:ACALL I
24、NITMOV R0,30H ;R0作为按键值指针MOV R1,40H ;R1作为显示指针M: JNB NUM5,M0ACALL DISPM0: JB NUM3,M1 ;密码是否输错三次了,如果输错三次就屏蔽按键输入ACALL KEYSCANJB KEYOK,M3SJMP MM1: JB KEYOK,M3 ;如果密码正确就转,错误就报警MOV R5,#5MOV R0,#40HM2: MOV R0,#16INC R0DJNZ R5,M2MOV R3,#16M22: CPL LEDACALL DISPACALL BBPJNB P3.0,FUWEI ;远程控制,报警后手动复位。SJMP M22M3:
25、MOV 40H,#16 ;密码正确了,就显示GOOD MOV 41H,#09MOV 42H,#17MOV 43H,#17MOV 44H,#13MOV R3,#16MOV R0,#0FFH ;设置GOOD显示时间M6: A CALL DISP ;显示正确后,采用自动复位ACALL DELAYDJNZ R0,M6ACALL FUWEISJMP M6;*;*复位函数*FUWEI: CLR KEYOKSETB LEDCLR NUM3SJMP MAIN;*;*读取按键函数*KEYSCAN:MOV P2,#0F0HMOV A,P2CJNE A,#0F0H,KEYGORETKEYGO:ACALL DELAY
26、 ;延时去抖动MOV A,P2CJNE A,#0F0H,KEYGO1RETKEYGO1:MOV A,R4 ;赋地址值ADD A,#30HMOV R0,AADD A,#16MOV R1,AMOV A,P2MOV R0,AMOV P2,#0FFHMOV p2,#0FHMOV A,P2ORL A,R0MOV R0,AGO0: MOV P2,0FFHMOV A,P2CJNE A,#00H,GO0 ;等待按键松开DEC R1MOV R1,#16INC R1INC R4 ;输入密码个数加1SETB NUM5MOV A,R0 ;A作为传递参数ACALL KEYCHUMOV A,R0MOV R1,ARET;*
27、;*按键处理*KEYCHU:MOV A,R0CJNE A,#0D7H,K1 ;0键MOV R0,#0RETK1:CJNE A,#0EBH,K2 ;1键MOV R0,#1RETK2:CJNE A,#0DBH,K3 ;2键MOV R0,#2RETK3:CJNE A,#0BBH,K4 ;3键MOV R0,#3RETK4:CJNE A,#0EDH,K5 ;4键MOV R0,#4RETK5:CJNE A,#0DDH,K6 ;5键MOV R0,#5RETK6:CJNE A,#0BDH,K7 ;6键MOV R0,#6RETK7:CJNE A,#0EEH,K8 ;7键MOV R0,#7RETK8:CJNE A
28、,#0DEH,K9 ;8键MOV R0,#8RETK9:CJNE A,#0BEH,K10 ;9键MOV R0,#9RETK10:CJNE A,#0E7H,k11 ;10键ACALL BIJIAOk11:CJNE A,#0B7H,RENT2 ;11键ACALL DELRENT2:RETRET;*;*删除* DEL: MOV R4,#0MOV R6,#5MOV R1,#40HIN2: MOV R1,#16INC R1DJNZ R6,IN2MOV R0,30HMOV R1,40HLJMP MRET;*;*比较* BIJIAO:MOV DPTR,#TAB1MOV R6,#5MOV R7,#0MOV R
29、0,#30HB0:MOV A,R7MOVC A,A+DPTRMOV 29H,AMOV A,R0CJNE A,29H,RETTINC R0INC R7DJNZ R6,B0SETB KEYOKRETT:MOV R5,#5MOV R0,#30HBJ2: MOV R0,#16INC R0DJNZ R5,BJ2CLR NUM5MOV R4,#00HINC R3 ;输入密码次数加1 CJNE R3,#4H,RETT1SETB NUM3 ;输入三次密码标志位RETT1: RET;*;*报警声*BBP:MOV R5,#100BB0: CPL BEEPACALL DELAY2DJNZ R5,BB0RET;*;*
30、显示*DISP:MOV DPTR,#TAB0MOV R1,#40HMOV R2,#5MOV R5,#01HDI1: MOV A,R1MOVC A,A+DPTRMOV P0,AMOV A,R5MOV P1,ARL AMOV R5,AACALL DELAYMOV P1,#0INC R1DJNZ R2,DI1MOV A,R3MOVC A,A+DPTRMOV P0,AMOV P1,#BACALL DELAYMOV P1,#0RET;*;*延时*DELAY:MOV R6,#5D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RET;*;*定时中断*DELAY2:MOV R6,#5D2:M
31、OV R7,#100DJNZ R7,$DJNZ R6,D2RET;*TAB0:db0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H,88H,83H,0c6H,0a1H,86H,8 eH,0BFH,0A3H,0ffH ;A0H是消隐值TAB1:db 1,2,3,4,5END电气信息学院课程设计评分表评价项目优良中及格差设计方案合理性与创造性(10%开发板焊接及其调试完成情况*(10%硬件设计或软件编程完成情况(20%硬件测试或软件调试结果*(10%设计说明书质量(20%答辩情况(10%完成任务情况(10%独立工作能力(10%出勤情况(10%综合评分指导教师签名:_日期:_注:表中标*号项目是硬件制作或软件编程类课题必填内容;此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单。专心-专注-专业