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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的密码锁绝对可用Word文档格式.docx

1、Keywords: Combination lock, Single-chip microcomputer, alarm1 引言1.1设计要求此次单片机课程设计所使用的单片机是AT89C51,利用了键盘电路以及LED灯等器件实现了密码锁的设计,该密码锁主要需要实现如下功能和目标。(1) 输入密码功能:键盘上敲击任意一个数字键,LED显示屏上就会出现一个“”显示在LED显示屏的最右侧,每多敲击一个数字按键就会将之前敲入的所有“”向左移一位。(2) 清除密码功能:每当按下清除键“CLR”就会自动清除前一个输入的数值,这样便实现了修改密码的功能。(3) 开锁功能:当密码输入完毕后,敲击“ENTER”

2、键,系统将会将输入的密码与系统内的内置密码进行比较核对,若密码正确,则产生一个低电屏信号,表示密码正确。若密码不正确则无此信号。(4) 报警和提示功能:输入密码错误,或输入密码超出指定密码个数时,密码锁将会启动报警电路,产生报警。密码正确则密码指示灯会起来。(5) 密码锁锁定功能:当密码输入错误或密码不符合规则时引起报警后,密码锁将开启锁定功能,将密码锁锁定3秒钟,防止被恶意软件套取密码。(6) 系统内置密码修改功能,此功能可以通过修改程序中KEY中的值来改变系统的内置密码。1.2设计方法第一步,使用PROTEUS 软件选用 ATMEL公司的单片机 AT89C51,以及需要用到的其他电子元器件

3、,做好先期的准备。第二步,使用PROTEUS设计硬件电路原理图,并完成电路的布线。第三步,使用 Keil uVision4 软件编写单片机的汇编语言程序、仿真、软件调试。第四步,使用 PROTEUS 软件导入汇编程序并进行模拟、调试。最终完成本次毕业设计2 设计方案及原理本密码锁的总体框图如下。图1 密码锁的总体框图本密码锁设计由输入模块、显示模块、报警指示模块共三各模块组成,各模块的功能为。(1) 输入模块:负责提供输入各数字,修改回删,完成回车的按键,已完成密码的输入和修改功能。(2) 显示模块:其主要部件为一块LED屏,主要用来显示当前输入密码的个数,并用“”表示。(3) 报警指示模块:

4、包括报警蜂鸣器和通路指示灯两部分组成,分别提供密码错误时的报警和密码正确是的通路提示灯。3 硬件设计3.1键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。键盘接P3.0P3.6其电路如图2所示。图2 密码锁的键盘电路图3.2LED显示电路显示电路的电路原理图如图3.2所示。图3 密码锁显示电路图用P0.0P0.7接74LS245的A0A7八个端口,74LS245的输出口接LED的AG和DP;而P2.0P2.7的输出口接LED的18。用软件实现数字和位控制。3.3开锁报警电路开锁报警电路如图4所示。

5、图4 开锁报警电路 在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如4所示。当P1.0口输出低电时,二极管发光,表示开锁。当89C51的P1.7口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。4 软件设计程序设计流程图如图6所示。图5 程序设计流程图电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误时,系统报警。密码的预设的值为123456共6位密码。由于采用两个按键来完成密码的输入,

6、那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。5 系统调试本次调试采用Protues软件仿真。首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。依次按下1,2,3,4,5,6后,LED显示如图7所示。图6 电路调试结果6 总结本次单片机课程设计历时三周终于完成,在制作课程设计的过程中也遇到了不少的困难和阻碍,期间少不了与同学们之间的互相交流,和与老师的探讨,到亏了老师和同学们

7、的帮助,此次单片机课程设计才能如期完成,在老师同学们的帮助下我能够熟练掌握Keil uVision4 软件编写汇编语言和制作HEX文件以及使用 PROTEUS进行仿真,并掌握了一定的程序编写能力,和电路设计能力,总之,受益良多,在此感谢各位给过我帮助的老师和同学。参考文献1 冯博琴,吴宁.微型计算机原理与接口技术M.北京:清华大学出版社,2010.2 周航慈.单片机应用程序设计技术M.北京:北京航空航天大学出版社,2010.3 王思明,张金敏,苟军年,张鑫,杨乔礼.单片机原理及应用系统设计M.北京:科学出版社,2012.附录附录一:系统仿真电路附录二:源程序;以下8字节存放8位数码管的段码LE

8、D_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以下6个字节存放初始密码WORD_1 EQU 38HWORD_2 EQU 39HWORD_3 EQU 3AHWORD_4 EQU 3BHWORD_5 EQU 3CHWORD_6 EQU 3DH以下6个字节存放用户输入的6位密码KEY_1 EQU 3EHKEY_2 EQU 3FHKEY_3 EQU 40HKEY_4 EQU 41HK

9、EY_5 EQU 42HKEY_6 EQU 43HCNT_A EQU 44HCNT_B EQU 45HKEY_CNT EQU 46H ;已输出的密码位数LINE EQU 47H ;按键行号ROW EQU 48H ;按键列号VAL EQU 49H ;键值以下为初始化程序,包括数据存储空间初始化,设置初始密码 ORG 00H SJMP START ORG 0BH LJMP INT_T0START:MOV CNT_A,#00H ;程序初始化 MOV CNT_B,#00H MOV KEY_CNT,#00H MOV LINE,#00H MOV ROW,#00H MOV VAL,#00H SETB P1.

10、0 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,#79H MOV LED_BIT_8,#73H 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 WORD_1,#6 ;设置初始密码为“123456” MOV W

11、ORD_2,#5 MOV WORD_3,#4 MOV WORD_4,#3 MOV WORD_5,#2 MOV WORD_6,#1 MOV TMOD,#01H MOV TH0,#(65536-700)/256 MOV TL0,#(65536-700)MOD 256 MOV IE,#82HA0: LCALL DISP ;以下为键盘扫描程序,计算键值并存入VALLSCAN: MOV P3,#0F0H ;扫描行码L1: JNB P3.0,L2 LCALL DLY_S LJMP RSCANL2: JNB P3.1,L3 MOV LINE,#01HL3: JNB P3.2,L4 MOV LINE,#02H

12、L4: JNB P3.3,A0 MOV LINE,#03HRSCAN: MOV P3,#0FH ;扫描列码C1: JNB P3.4,C2 LJMP CALCUC2: JNB P3.5,C3 MOV ROW,#01HC3: JNB P3.6,C1 MOV ROW,#02HCALCU: MOV A,LINE ;计算键值 MOV B,#03H MUL AB ADD A,ROW MOV VAL,A ;以下为按键处理程序,对不同的按键作出响应 CJNE A,#0AH,J1 ;是否为“CLR”键 MOV R1,KEY_CNT CJNE R1,#00H,J2 LCALL ALARM_1 LJMP START

13、J2: LCALL SHIFTR DEC KEY_CNTW00:等待按键抬起 MOV A,P3 CJNE A,#0FH,W01 LJMP A0W01: CJNE A,#0F0H,W02W02: SJMP W00J1: MOV A,VAL CJNE A,#0BH,J3 ;判断是否为“ENTER”键 CJNE R1,#06H,J4 MOV A,WORD_1 ;比较密码 CJNE A,3EH,J5 MOV A,WORD_2 CJNE A,3FH,J5 MOV A,WORD_3 CJNE A,40H,J5 MOV A,WORD_4 CJNE A,41H,J5 MOV A,WORD_5 CJNE A,4

14、2H,J5 MOV A,WORD_6 CJNE A,43H,J5 CLR P1.0 LCALL DLY_L LJMP FINIJ5: LCALL ALARM_2J4:J3: INC KEY_CNT ;按下数字键 MOV A,KEY_CNT CJNE A,#07H,K1W10: CJNE A,#0FH,W11W11: CJNE A,#0F0H,W12W12: SJMP W10K1: LCALL SHIFTLW20: CJNE A,#0FH,W21W21: CJNE A,#0F0H,W22W22: SJMP W20 ALARM_1:SETB TR0 ;操作错误报警 JB TR0,$ RETALAR

15、M_2:密码错误报警 LCALL DLY_L RET ;定时器中断服务程序,用于声音报警INT_T0: CPL P1.7 MOV TL0,#(65536-700)MOD 256 INC CNT_A MOV R1,CNT_A CJNE R1,#30,RETUNE MOV CNT_A,#00H INC CNT_B MOV R1,CNT_B CJNE R1,#20,RETUNE MOV CNT_B,#00H CLR TR0RETUNE:RETI ;段码,输入密码左移子程序SHIFTL:MOV LED_BIT_6,LED_BIT_5 MOV LED_BIT_5,LED_BIT_4 MOV LED_BI

16、T_4,LED_BIT_3 MOV LED_BIT_3,LED_BIT_2 MOV LED_BIT_2,LED_BIT_1 MOV LED_BIT_1,#40H 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 L

17、ED_BIT_5,LED_BIT_6 MOV KEY_1,KEY_2 MOV KEY_2,KEY_3 MOV KEY_3,KEY_4 MOV KEY_4,KEY_5 MOV KEY_5,KEY_6以下为数码显示子程序DISP: CLR P2.7 MOV P0,LED_BIT_8 SETB P2.7 CLR P2.6 MOV P0,LED_BIT_7 SETB P2.6 CLR P2.5 MOV P0,LED_BIT_6 SETB P2.5 CLR P2.4 MOV P0,LED_BIT_5 SETB P2.4 CLR P2.3 MOV P0,LED_BIT_4 SETB P2.3 CLR P2.2 MOV P0,LED_BIT_3 SETB P2.2 CLR P2.1 MOV P0,LED_BIT_2 SETB P2.1 CLR P2.0 MOV P0,LED_BIT_1 SETB P2.0DLY_S: MOV R6,#10D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1DLY_L: MOV R5,#100D2: MOV R6,#100D3: MOV R7,#248 DJNZ R6,D3 DJNZ R5,D2FINI: NOP END

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

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