1、课 程 设 计课程名称 单片机原理与应用 课题名称 智能电子密码锁设计 设计内容与设计要求设计内容:1、 密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。2、 密码的输入: 采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键。在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。然后进入密码的判断比较处理状态并给出相应的处理过程。3、 按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。设计要求:1、 设计方案要合理、正确;2、
2、 系统硬件设计及焊接制作;3、 系统软件设计及调试;4、 系统联调;5、 写出设计报告。主 要 设 计 条 件1、 MCS-51单片机实验操作台1台;2、 PC机及单片机调试软件;3、 单片机应用系统板1套;4、 制作工具1套;5、 系统设计所需的元器件。说 明 书 格 式1. 封面2. 课程设计任务书3. 目录4. 系统总体方案设计5. 系统硬件设计6. 软件设计(包括流程图)7. 系统的安装调试说明8、 总结 9、参考文献10、附录(源程序清单及硬件原理图等);11、课程设计成绩评分表。 参 考 文 献1、微型计算机原理及应用许立梓编 机械工业出版社 20022、微型计算机接口技术及应用刘
3、乐善编 华中理工大学出版社 2000 3、计算机硬件技术基础试验教程邹逢兴编 高等教育出版社 20004、16位微型计算机原理接口及其应用周佩玲编 中国科学技术大学出版社2000 5、微型计算机原理与接口技术吴秀清编 中国科学技术出版社 20016、微型计算机接口技术邓亚平编 清华大学出版社 20017、单片机原理及及应用王迎旭编 机械工业出版社 20018、单片机应用程序设计技术 周航慈 著 北京航空航天大学出版社 20029、单片机实用技术问答 谢宜仁 主编 人民邮电出版社 200228 目 录第1章 绪 论11.1概述11.2电子密码控制简介11.3电子密码控制的发展趋势21.4 设计内
4、容21.5 设计要求31.6系统需求分析:31.7单片机芯片介绍3第2章 系统方案设计62.1设计思路62.2矩阵键盘接口电路62.3 LED显示62.4报警系统62.5硬件电路设计总框图7第3章 硬件电路设计83.2 LED显示电路设计93.2.1LED显示电路图93.3 报警电路设计103.3.1 报警电路图103.3.2报警电路原理11第4章 软件设计124.1 软件总体设计124.2 各子程序的设计124.2.1 密码的固定:124.2.2 键盘的扫描识别判断:134.2.4密码设置流程图154.2.5开锁流程图164.2.6密码比较及对错处理17第5章 系统调试18心得体会19附 录
5、20附录A.源程序清单20附录B.硬件调试图28参考文献29第1章 绪 论1.1概述在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。1.2电子密码控制简介电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭
6、合,完成开锁、闭锁任务的电子产品。电子密码控制不论性能还是安全性都已大大超过了机械类。其特点如下:1) 保密性好,编码量多,远远大于机械控制。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码控制系统具有操作简单易行,一学即会的特点。1.3电子密码控制的发展趋势由于电子器件所限,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子
7、开关来实现的,制作简单但很不安全,后来便是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码控制系统 。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森
8、严的金库,需要使用复合信息密码的电子防盗密码控制系统。组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。可以看出组合使用电子信息是电子密码控制系统今后发展的趋势 。1.4 设计内容: (1) 密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“123456”共6位密码。 (2)密码的输入: 采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键,在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。然后进入密码的判断比较处理状态并给出相应的处理过程。 (3)按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功
9、能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。(4)密码的修改:采用串行EEPROM快速存储器实现密码的保存.改完之后的密码写入EEPROM中,每次开机或者复位之后,自动读取密码。1.5 设计要求: (1)设计方案要合理、正确; (2)系统硬件设计及焊接制作; (3)系统软件设计及调试; (4)系统联调。1.6系统需求分析:根据上节的设计内容,则对系统的需求如下:系统需要使用LED数码管,用来显示各种状态,可以告诉用户系统运行的实时状态。系统需要使用键盘电路,实现密码的输入和控制密令的下达,完成用户的设计要求。密码的存储,而且要掉电保寸,需要使用串行EEPROM快速存储器。系统还
10、需要使用LED指示灯、蜂鸣器、继电器来模拟各种状态。系统软硬件要支持在线系统编程。1.7单片机芯片介绍单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 Intel公司推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学
11、习使用单片机是了解计算机原理与结构的最佳选择。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成(如图1所示)。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
12、各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。 单片机的应用领域 : 1.单片机在智能仪器仪表中的应用; 2.单片机在工业测控中的应用; 3.单片机在计算机网络和通讯技术中的应用; 4.单片机在日常生活及家电中的应用; 5.单片机在办公自动化方面。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网
13、络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 基于以上,我的此次课程设计以单片机为核心,完成电子密码锁的设计。第2章 系统方案设计2.1设计思路:此次课题采用一种是用以80C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。此次课题用单片机P1口与键盘相连,做
14、输入口,P0口与显示器相连,做显示,P2口做显示器扫描。2.2矩阵键盘接口电路:此次课程设计采用4*3矩阵键盘,与P1口相连,采用扫描法。设有09十个数字密码,和一个确认键。开机显示000000,等待密码输入,输入6个密码,按确认键后,密码比较。2.3 LED显示:此次课程设计6密码6显示器,按键后即显示,动态显示。P0口送示数据,P2口显示扫描,根据按键次数,第一位显示器显示第一次按的密码,第二位显示器显示第二次按的密码,第三位显示器显示第三次按的密码,依此第六位显示器显示第六次按的密码,按键完成后按确认键后,密码对则执行相关动作,不同则显示器清零,等待重新输入。2.4报警系统:此次课程设计
15、,当按键三次错误后,系统报警,报警装置由一扬声器实现,从P3.0口输出脉冲,使扬声器鸣报警。2.5硬件电路设计总框图:80C51单片机矩阵键盘控制LED数码管显示电路时钟电路密码修改电路电源电路及UPS电路报警电路 第3章 硬件电路设计3.1 键盘电路设计 当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。本系统使用43矩阵键盘当没有键按下时,行线和列线之间是不相连的,若第N行与第M列的键被按下,那么第N行与第M列的线就被接通。根据上述原理,本系统的键盘扫描方法是利用P1口的低四位作为行扫描线,P1口的高三位作为列回扫线。具体实施方法为:先使P1口
16、低四位输出高电平,P1口高四位输出低电平,然后对P1.0、P1.1、P1.2、P1.3四个口分别作判断。若此四口都为高电平,则没有键按下;若有键按下,P1.0、P1.1、P1.2、P1.3四个口必定有一个口输入为低电平,再判断P1.0、P1.1、P1.2、P1.3哪个口为低电平则可判断按键在哪行上。然后再使P1口低四位输出低电平,P1口高四位输出低电平,然后对P1.4、P1.5、P1.6、分别做判断。依次扫描下去,找到按键所在的行,再判断P1口的高四位哪一位为低,便可知道键在哪一列上。按键的操作面板如图图4-3a所示。共计数字键10个,功能键2个。10个数字键用来输入密码,“#”用来修改密码及
17、确认密码已经输完,“*”用来在未输完密码前的清除密码重新输入。其流程图如3-1所示。图3-1按键操作面板示意图3.2 LED显示电路设计3.2.1LED显示电路图: 图3-2 LED动态显示电路3.2.2 LED显示原理: LED就是light emitting diode ,发光二极管的英文缩写,简称LED。它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。显示器显示接口按驱动方式可分为静态显示和动态显示,静态显示时,除变更显示数据期间外,各显示器均处于通电状态,每个显示器的通电占空比为100%,静态显示的优点是显示稳定,亮
18、度高,缺点是占用硬件电路多;动态显示的优点是节省硬件电路,缺点是占用软件扫描时占用CPU时间多。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,即逐个地循环点亮各位显示器,这样虽然在任一时刻只有一显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。为了实现LED显示器的动态扫描,除了要给显示器的输入之外,还有对显示器选择位的控制,这就是通常所说的段控和位控。因此,多位LED显示器接口电路需要有两个输出口,其中一个用于8条段控线,另一个用于输出位控线,位控线的数目等于显示器的位数。为了方便编写程序,通常在内部RAM中设置显示缓冲区,存放显示的数字或字符,
19、显示缓冲区单元个数与LED显示器位数相同。此次基于单片机的电子密码锁,我选用动态显示,通过与软件配合,每输入一个密码,进行显示一次,扫描,6个密码输入完后,进行比较,密码正确则开锁,密码错误,可重新输入三次,三次后仍然错误,报警!3.3 报警电路设计3.3.1 报警电路图: 图3-3 报警电路3.3.2报警电路原理:输入密码与设定密码做比较,当输入密码与设定密码不同,返回再输入,当输入密码次数超过3次时,通过软件从80C51的P3.0输出脉冲,使扬声器鸣笛报警。相关软件见(附件)第4章 软件设计 4.1 软件总体设计 软件的设计主要包括:密码的固定、键盘识别判断、密码显示、密码比较、密码对处理
20、、错报警。软件设计总流程图如下: 开始 固定密码 键盘扫描判断识别(循环) 动态密码显示 密码比较 比较后相关处理 结束 图4-1 软件设计总流程图4.2 各子程序的设计4.2.1 密码的固定:将密码固定在程序存储器ROM中,设定6位密码,密码固定在ROM的20H到25H六个单元中 。4.2.2 键盘的扫描识别判断: 用矩阵式键盘,扫描法对键盘进行识别判断,具体流程图如下: 开始扫描LOOP1MOV P1,#01111111B 111111111111111111111111BP1.3=0?K0键按下显示MOV A,#0P1.2=0?MOV A,#1K1键按下P1.1=0??K2键按下MOV
21、A,#2P1.0=0?MOV A,#3K3键按下MOVP1,#10111111B 图4-2 键盘扫描流程图 以上是第一行的扫描,接着MOV P1,#10111111,扫描第二行,判断K4、K5、K6、K7;再MOV P1,#11011111,扫描第三行,判断k8、K9、KA、KB;接着MOV P1,#11101111,扫描第四行,判断kC、KD、KE、KF;并进行相关显示。如果无键按下,则循环扫描。4.2.3 密码显示:采用LED动态显示,由单片机P0口进行输出显示,P2口扫描,具体显示程序设计流程图如下: 否是开始按键数值存R4(偏移量)显示单元从26H开始,入R1取表(显示表)头地址按键值
22、入AMOVCA,A+DPTRMOV P0,A 显示有键按下?INC R1,位控右移按键是否为6?比较密码对错处理 图43 显示流程图4.2.4密码设置流程图如图5-3为密码设置流程图,开始按下设置键,输入旧密码,如果错误,累计三次错误,进行报警程序。如输入正确,可以改密码,确认后再次输入更改后密码,如两次输入一样,则更改成功。开始输入密码显示good判断按键结束输入新密码显示goodNoYes超过3次?NoYes显示bad键盘锁定蜂鸣器报警密码正确?是“#”键?图4-4 密码设置流程图4.2.5开锁流程图如图4-5为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功。如果输入错误累
23、计达到三次,则执行报警程序。初始化按开锁键输入密码确认程序所输入密码正确?Y开锁成功开锁程序输入次数加1次数3?报警程序返回NYN图4-5开锁流程图4.2.6密码比较及对错处理:密码输入完成之后,进行密码比较,即将设定密码单元20H25H的密码与输入密码26H31H的密码进行一一比较,如果相同,则密码正确,P3.2置高电平,如果密码错误,则显示器清零,重新等待输入密码,如果三次错,则P3.0输出脉冲,使接在P3.0的使扬声器鸣笛报警。第5章 系统调试单片机系统进行软件盒硬件调试成功后最后一步是进行硬件的连接和物制作,我们的硬件是在试验台上进行的,虽然与设计的电路不太相同,不过可以适当修改源程序
24、,以适应实验台的要求。 (1)根据实验台情况和设计要求连接电路图。(2)在连接的电路上,进行模块测试,就是用简单的程序进行调试以确定电路连接正确。(3)将修改后的程序下载到单片机里,可以用伟福仿真系统,进行单步和断点调试。(4)将运行结果和实验现象与预定值进行比较,再适当修改程序以达到要求。 附 录附录A.源程序清单:ORG 0000HSTART:MOV R7,#03HMOV 50H,#7DH ;默认的密码为123456MOV 51H,#6DHMOV 52H,#66HMOV 53H,#4FHMOV 54H,#5BHMOV 55H,#06HMAIN:MOV P3,#0FFHMOV P2,#00H
25、 ;显示的初值MOV P0,#08HLCALL KEYLCALL DISPLAYLCALL CHECKJMP MAIN;键盘识别子程序KEY:MOV P1,#0FHJNB P1.0,Y1JNB P1.1,Y2JNB P1.2,Y3JNB P1.3,Y4JMP KEYY1:MOV P1,#0FFH MOV P1,#0F0H JNB P1.4,Y11 JNB P1.5,Y12 MOV A,#4FH RETY11:MOV A,#06H RETY12:MOV A,#5BH RETY2:MOV P1,#0FFH MOV P1,#0F0H JNB P1.4,Y21 JNB P1.5,Y22 MOV A,#
26、7DH RETY21:MOV A,#66H RETY22:MOV A,#6DH RETY3:MOV P1,#0FFH MOV P1,#0F0H JNB P1.4,Y31 JNB P1.5,Y32 MOV A,#6FH RETY31:MOV A,#07H RETY32:MOV A,#7FH RETY4:MOV P1,#0FFH MOV P1,#0F0H JNB P1.4,Y41 JNB P1.5,Y42 MOV A,#44H RETY41:MOV A,#33H RETY42:MOV A,#3FH RET;按键扫描显示子程序DISPLAY:MOV R0,#10HMOV R1,#20H MOV R2
27、,#00H MOV 10H,#7EH MOV 11H,#7CH MOV 12H,#78H MOV 13H,#70H MOV 14H,#60H MOV 15H,#40HLOOP:CJNE A,#33H,X1 JMP MAINX1: CJNE R2,#06H,X2 CJNE A,#44H,X3 RETX2: CJNE A,#44H,X4X3: LCALL KEY JMP LOOPX4:MOV P2,R0 MOV R1,A MOV P0,#40H INC R0 INC R1 INC R2 LCALL KEYJMP LOOP;密码检查子程序CHECK:DEC R1 MOV A,R1 CJNE A,50
28、H,DOWN DEC R1 MOV A,R1 CJNE A,51H,DOWN DEC R1 MOV A,R1 CJNE A,52H,DOWN DEC R1 MOV A,R1 CJNE A,53H,DOWN DEC R1 MOV A,R1 CJNE A,54H,DOWN DEC R1 MOV A,R1 CJNE A,55H,DOWN MOV P3,#0C0H LCALL GOOD MOV P0,#08H MOV P2,#00H LCALL KEY CJNE A,#44H,C1 MOV P0,#08H MOV P3,#60H; ? LCALL GAIMI C1:RETDOWN: DJNZ R7,D
29、OWN1 MOV P3,#00H LCALL BAD DOWN2:CPL P2.7 JMP DOWN2DOWN1:MOV P3,#0A0H LCALL BADMOV P2,#00H RET;修改密码子程序GAIMI:LCALL KEY LCALL DISPLAY DEC R1 MOV 50H,R1 DEC R1 MOV 51H,R1 DEC R1 MOV 52H,R1 DEC R1 MOV 53H,R1 DEC R1 MOV 54H,R1 DEC R1 MOV 55H,R1 LCALL GOOD RET;good显示子程序GOOD:MOV 3AH,#6FH MOV 3BH,#3FH MOV 3
30、CH,#3FH MOV 3DH,#5EH MOV 30H,#07EH MOV 31H,#07DH MOV 32H,#07BH MOV 33H,#077H MOV R0,#3AH MOV R1,#30H MOV R2,#04H MOV R3,#0FFH LOOP1:MOV A,R1 MOV P2,A MOV A,R0 MOV P0,A ACALL YANCHI MOV P0,#00H INC R0 INC R1 DJNZ R2,LOOP1 MOV R0,#3AH MOV R1,#30H MOV R2,#04H DJNZ R3,LOOP1 RET;bad显示子程序BAD: MOV 3AH,#7CH
31、 MOV 3BH,#77HMOV 3CH,#5EHMOV 30H,#07DH MOV 31H,#07BH MOV 32H,#077H MOV R0,#3AH MOV R1,#30H MOV R2,#03H MOV R3,#0FFH LOOP2:MOV A,R1 MOV P2,A MOV A,R0 MOV P0,A ACALL YANCHI MOV P0,#00H INC R0 INC R1 DJNZ R2,LOOP2 MOV R0,#3AH MOV R1,#30H MOV R2,#03H DJNZ R3,LOOP2 RETYANCHI: MOV R6,#6H ;延时程序YC1: MOV R5,
32、#0FFH DJNZ R5,$ DJNZ R6,YC1 RETEND附录B.硬件调试图: 图6-1硬件调试图参考文献1 许立梓.微型计算机原理及应用M.北京. 机械工业出版社, 20022 刘乐善.微型计算机接口技术及应用M.华中理工大学出版社, 2000 3 邹逢兴.计算机硬件技术基础试验教程M. 高等教育出版社 , 20004 周佩玲.16位微型计算机原理接口及其应用M.中国科学技术大学出版社, 2000 5 吴秀清.微型计算机原理与接口技术M.中国科学技术出版社 , 20016 邓亚平.微型计算机接口技术M.清华大学出版社 , 20017 王迎旭.单片机原理及及应用M. 机械工业出版社 , 20018 周航慈.单片机应用程序设计技术M. 北京航空航天大学出版社, 20029 谢宜仁.单片机实用技术问答M.人民邮电出版社 , 2002