ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:203.17KB ,
资源ID:26866758      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26866758.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机实现的电子密码锁课程设计毕业设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机实现的电子密码锁课程设计毕业设计.docx

1、基于单片机实现的电子密码锁课程设计毕业设计目录:一、 系统总体方案设计.1二、 硬件电路设计 .32.1 键盘电路设计 .32.2 LED显示电路.42.3 开锁电路 .62.4报警电路.6三、 软件设计思路 .7四、 系统调试 。五、 心得体会 9六、 参考文献 9附录1、硬件原理图 102、源程序清单。实验要求及主要功能: 本次设计使用STC89C52 实现一基于单片机的电子密码锁的设计,要求如下: (1)允许用户设定密码,设定密码时数码管上显示“”;(2)当用户输入密码时,输入的数字在数码管上依次显示(密码为8位,0F)(3)若密码正确,灯亮。 (4)若密码不正确,则蜂鸣器鸣叫。若密码输

2、入错误次数超过 3 次,蜂鸣器不再鸣叫且锁定键盘。 电子密码锁的设计主要由三部分组成:44 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有 LED 提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能: (1)密码输入功能:按下一个数字键,相应键值就显示在最右边的数码管上,同时将先前输入键值向左移动一位。 (2)密码清除功能:当按下清除键时,清除前面输入键值。 (3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,用发光二极管亮表示;否则不打开,蜂鸣器鸣叫(4)密码设置功能:当密码输入正确时,检查设置键是否按下,若按下则

3、允许用户设置密码,否则结束。若密码错误时按下设置键则有操作错误提醒。(5)设置密码保存功能:当用户设置完新密码后,密码变为新密码。一、系统方案设计采用一种是用以为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图12所示。89S51单片机输入错误锁定键盘矩阵键盘控制延时报警控制电路开锁控制电路AT24C02掉电存储指示电路串口显示电路图12单片机控制方案 单片机不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,本方案采用一种是用以STC89C5

4、1为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。 初步设计思路如下:输入密码用5*4矩形键盘,包括数字键和功能键。前四行用作数字键,最后一行为功能键,分别为”CLR”清除键,”ENTER”比较键,”SET”设置键,”SAVE”保存键LED数码管显示输入密码,用74LS245驱动数码管发光显示数码。用发光二极管代替开锁的电路,发光表示开锁。输入密码错误次数超过3次,键盘锁死。打开电源后,设原始密码为“12345678”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。欲重新设定密码,先输入正确密码,按设置键,输入键值后按保

5、存键。输入密码,再按“enter”键。若密码与设定密码相同,则开门。否则蜂鸣器鸣叫。软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序,设置密码程序和报警程序。二、硬件电路设计2.1键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.1。每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按

6、下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。逐行扫描法如下:对照图3.1所示的54键盘,此处用逐行扫描查询法,具体方法如下: 给P1口赋值为0FH,P3.4置零,先将列线即低四位置0,行线即高四位置1,逐行扫描,当有按键按下时高四位一定有一个被拉为0.通过这个判断是不是有按键按下。然后给P1口赋值为0F0H,P3.4置1,将列线即低四位置1,行线即高四位置0,逐列扫描来判断是哪个键按下。通过行号和列号我们得到键值,键值=行号*4+列号,并将键值存入一变量地址中。图3.1 矩阵键盘具体的功能设计如

7、表3.1:表3.1 按键功能按 键键 名功 能 说 明1F键数 字 键输 入 密 码SET 键重 设 密 码 键设 定 新 密 码ENTER键确 定 键比 较 密 码CLR 键清 除 键使 显 示 器 清 零SAVE键保存键保存输入新密码2.2 LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS245驱动数码管发光显示数码,就可以完成单片机的显示功能,显示电路的电路原理图如图3.2所示。用P0.0P0.7接74LS245的A0-A7端口,74LS245的输出口接LED的七段显示;而P1.0P1.7接LED的位显

8、示。通过软件实现数字和位控制,对数码管进行动态扫描,并将键值循环左移。图3.2 LED显示电路用74LS245可以驱动数码管。74LS247的逻辑功能表如表3.2:表3.2 74LS245的逻辑功能表2.3 掉电存储电路 用AT24C02进行掉电存储,以防关闭电源后用户设置的密码丢失其功能是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能,通过此电路设计用户可保存自己已设的密码不丢失,否则关闭电源后密码变为初始密码。2.4

9、开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.3所示。当P3.1口输出高电平时,二极管发光,表示开锁。图3.3 开锁电路2.5报警电路报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.4所示。当STC89C52的P3.0口输出为高电平时,蜂鸣器产生蜂鸣音,STC89C52输出为低电平时,蜂鸣器不发声。这样在密码错误时即会报警。图3.4报警电路三、软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,

10、按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,键盘锁死。密码的设定,在此程序中用户输入的密码是固定40H47H中,初始密码放在38H-3FH中,假设预设的密码为12345678共8位密码。由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕按下“enter”键,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。若密码正确,用户可自行设计密码,否则报警,设置后,按下保存键,然后新设密码可保存于初始密码地址中。下次新输入密码即与新设密码相比

11、。在比较过程中若密码连续错误三次,则键盘锁死,不允许用户输入。在此过程中,数码管一直处于动态扫描中,故总的程序流程图如下:总程序流程图:是四、系统调试: 进行调试时,出现的主要问题是虚焊,因为电路板做在了一块板上所以PCB比较密集,刚腐蚀完的时候线路有部分断路和短路 五、心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设

12、计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整五星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语

13、言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。附录:1、硬件原理图总程序清单:LED_BIT_1 EQU 30HLED_BIT_2 EQU 31HLED_BIT_3 EQU 32HLED_BIT_4 EQU 33HLED_BIT_5 EQU 34HLED_BIT_6 EQU 35HLED_BIT_7 EQU 36HLED_BIT_8 EQU 37H;以下8个字节存放初始密码WORD_1 EQU 38HWORD_2 EQU 39HWORD_3 EQU 3AHWORD_4 EQU 3BHWORD_5 EQU 3CHWORD_6 EQU 3DHWORD_7 EQU 3EHWOR

14、D_8 EQU 3FH;以下8个字节存放用户输入的8位密码KEY_1 EQU 40HKEY_2 EQU 41HKEY_3 EQU 42HKEY_4 EQU 43HKEY_5 EQU 44HKEY_6 EQU 45HKEY_7 EQU 46HKEY_8 EQU 47H;*CNT_A EQU 48HCNT_B EQU 49HKEY_CNT EQU 4AH ;已输出的密码位数LINE EQU 4BH ;按键行号ROW EQU 4CH ;按键列号VAL EQU 4DH ;键值CHANGE EQU 20H.0SOLVE EQU 21H.0;*;以下为初始化程序,包括数据存储空间初始化,设置初始密码 OR

15、G 0000H SJMP MAIN ORG 000BH LJMP INT_T0MAIN: MOV SP,#60H MOV WORD_1,#8 ;初始密码12345678 MOV WORD_2,#7 MOV WORD_3,#6 MOV WORD_4,#5 MOV WORD_5,#4 MOV WORD_6,#3 MOV WORD_7,#2 MOV WORD_8,#1START: MOV CNT_A,#00H ;程序初始化 MOV CNT_B,#00H MOV KEY_CNT,#00H MOV LINE,#00H MOV ROW,#00H MOV VAL,#00H CLR P3.5 ;蜂鸣器 CLR

16、 P3.7 ; 二极管 MOV LED_BIT_1,#00H ;消隐 MOV LED_BIT_2,#00H MOV LED_BIT_3,#00H MOV LED_BIT_4,#00H MOV LED_BIT_5,#00H MOV LED_BIT_6,#00H MOV LED_BIT_7,#00H MOV LED_BIT_8,#00H MOV KEY_1,#00H ;输入密码存储区清零 MOV KEY_2,#00H MOV KEY_3,#00H MOV KEY_4,#00H MOV KEY_5,#00H MOV KEY_6,#00H MOV KEY_7,#00H MOV KEY_8,#00H M

17、OV TMOD,#01H MOV TH0,#0FDH;(65535-700)/256 MOV TL0,#00H MOV IE,#82H ;SETB TR0 SETB ET0 SETB EAA0: LCALL DISP;以下为键盘扫描程序,计算键值并存入VALLSCAN: MOV P1,#0FH ;扫描行码 CLR P3.4L1: JNB P1.7,L2 LCALL DLY_S JNB P1.7,L2 MOV LINE,#00H LJMP RSCANL2: JNB P1.6,L3 LCALL DLY_S JNB P1.6,L3 MOV LINE,#01H LJMP RSCANL3: JNB P1

18、.5,L4 LCALL DLY_S JNB P1.5,L4 MOV LINE,#02H LJMP RSCANL4: JNB P1.4,L5 LCALL DLY_S JNB P1.4,L5 MOV LINE,#03H LJMP RSCANL5: JNB P3.4,A0 LCALL DLY_S JNB P3.4,A0 MOV LINE,#04HRSCAN: MOV P1,#0F0H ;扫描列码 SETB P3.4C1: JNB P1.3,C2 MOV ROW,#00H LJMP CALCUC2: JNB P1.2,C3 MOV ROW,#01H LJMP CALCUC3: JNB P1.1,C4

19、MOV ROW,#02H LJMP CALCUC4: JNB P1.0,C1 MOV ROW,#03HCALCU: MOV A,LINE ;计算键值 MOV B,#04H MUL AB ADD A,ROW MOV VAL,A;*;以下为按键处理程序,对不同的按键做出响应 CJNE A,#10H,J1 ;是否为CLR键 MOV R1,KEY_CNT CJNE R1,#00H,J2 LCALL ALARM_1 LJMP STARTJ2: LCALL SHIFTR DEC KEY_CNTW00: LCALL DISP ;等待按键抬起 JB P3.4,W01 LJMP A0W01: MOV A,P1

20、CJNE A,#0F0H,W02 LJMP A0W02: SJMP W00J1: MOV A,VAL CJNE A,#11H,SETK ;判断是否为ENTER键 MOV R1,KEY_CNT CJNE R1,#08H,J4 JNB CHANGE,NEXT3 MOV WORD_1,28H MOV WORD_2,29H MOV WORD_3,2AH MOV WORD_4,2BH MOV WORD_5,2CH MOV WORD_6,2DH MOV WORD_7,2EH MOV WORD_8,2FH NEXT3: MOV A,WORD_1 ;比较密码 CJNE A,40H,J5 MOV A,WORD_

21、2 CJNE A,41H,J5 MOV A,WORD_3 CJNE A,42H,J5 MOV A,WORD_4 CJNE A,43H,J5 MOV A,WORD_5 CJNE A,44H,J5 MOV A,WORD_6 CJNE A,45H,J5 MOV A,WORD_7 CJNE A,46H,J5 MOV A,WORD_8 CJNE A,47H,J5 SETB P3.7 LCALL DLY_L SETB SOLVE MOV R0,#00H LJMP STARTJ5: LCALL ALARM_2 LJMP STARTJ4: LCALL ALARM_1 LJMP START LCALL ALAR

22、M_1 LJMP START SETK: CJNE A,#12H,SAVEK ;设置键 MOV R1,KEY_CNT CJNE R1,#00H,WRONG1 JB SOLVE,STORE LCALL ALARM_1 LJMP START WRONG1: LCALL ALARM_1STORE: CLR SOLVE SETB PSW.5W30: LCALL DISP ;等待按键抬起 JB P3.4,W31 LJMP A0W31: MOV A,P1 CJNE A,#0F0H,W32 LJMP A0W32: SJMP W30SAVEK: MOV A,VAL ;保存键之后按下第一个键时会响一下 CJNE

23、 A,#13H,J3 CLR PSW.5 SETB CHANGE LJMP FINI WRONG: LCALL ALARM_1 LJMP STARTW40: LCALL DISP ;等待按键抬起 JB P3.4,W41 LJMP A0W41: MOV A,P1 CJNE A,#0F0H,W42 LJMP A0W42: SJMP W40J3: INC KEY_CNT ;按下数字键 MOV A,KEY_CNT CJNE A,#09H,K1 LCALL ALARM_1W10: LCALL DISP ;等待按键抬起 MOV A,P1 CJNE A,#0FH,W11 LJMP STARTW11: MOV

24、 A,P1 CJNE A,#0F0H,W12 LJMP STARTW12: SJMP W10 LJMP START LJMP STARTK1: LCALL SHIFTLW20: LCALL DISP ;等待按键抬起 JB P3.4,W21 LJMP A0W21: MOV A,P1 CJNE A,#0F0H,W22 LJMP A0W22: SJMP W20 LJMP A0ALARM_1: SETB TR0 JB TR0,$ RETALARM_2: INC R0 CJNE R0,#3H,NEXT2 MOV P1,#0FFH SJMP $NEXT2: SETB TR0 JB TR0,$ LCALL

25、DLY_L RET;*;定时器终端服务程序,用于声音报警INT_T0: CPL P3.5 MOV TH0,#0FDH MOV TL0,#00H INC CNT_A MOV R1,CNT_A CJNE R1,#30H,RETUNE MOV CNT_A,#00H INC CNT_B MOV R1,CNT_B CJNE R1,#20,RETUNE MOV CNT_A,#00H MOV CNT_B,#00H CLR TR0RETUNE: RETI;*;段码,输入密码左移程序SHIFTL: JB PSW.5,GO_ON LJMP GO_ON1GO_ON: MOV A,#40H MOV LED_BIT_8

26、,LED_BIT_7 MOV LED_BIT_7,LED_BIT_6 MOV LED_BIT_6,LED_BIT_5 MOV LED_BIT_5,LED_BIT_4 MOV LED_BIT_4,LED_BIT_3 MOV LED_BIT_3,LED_BIT_2 MOV LED_BIT_2,LED_BIT_1 MOV LED_BIT_1,A MOV KEY_8,KEY_7 MOV KEY_7,KEY_6 MOV KEY_6,KEY_5 MOV KEY_5,KEY_4 MOV KEY_4,KEY_3 MOV KEY_3,KEY_2 MOV KEY_2,KEY_1 MOV KEY_1,VAL MOV

27、 28H,KEY_1 MOV 29H,KEY_2 MOV 2AH,KEY_3 MOV 2BH,KEY_4 MOV 2CH,KEY_5 MOV 2DH,KEY_6 MOV 2EH,KEY_7 MOV 2FH,KEY_8 RETGO_ON1: MOV A,VAL MOV DPTR,#TAB MOVC A,A+DPTR MOV LED_BIT_8,LED_BIT_7 MOV LED_BIT_7,LED_BIT_6 MOV LED_BIT_6,LED_BIT_5 MOV LED_BIT_5,LED_BIT_4 MOV LED_BIT_4,LED_BIT_3 MOV LED_BIT_3,LED_BIT_

28、2 MOV LED_BIT_2,LED_BIT_1 MOV LED_BIT_1,A MOV KEY_8,KEY_7 MOV KEY_7,KEY_6 MOV KEY_6,KEY_5 MOV KEY_5,KEY_4 MOV KEY_4,KEY_3 MOV KEY_3,KEY_2 MOV KEY_2,KEY_1 MOV KEY_1,VAL RET;*;段码,输入密码右移程序SHIFTR: MOV LED_BIT_1,LED_BIT_2 MOV LED_BIT_2,LED_BIT_3 MOV LED_BIT_3,LED_BIT_4 MOV LED_BIT_4,LED_BIT_5 MOV LED_BIT_5,LED_BIT_6 MOV LED_BIT_6,LED_BIT_7

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1