基于单片机的密码锁绝对可用.docx

上传人:b****8 文档编号:12082783 上传时间:2023-06-04 格式:DOCX 页数:18 大小:110.28KB
下载 相关 举报
基于单片机的密码锁绝对可用.docx_第1页
第1页 / 共18页
基于单片机的密码锁绝对可用.docx_第2页
第2页 / 共18页
基于单片机的密码锁绝对可用.docx_第3页
第3页 / 共18页
基于单片机的密码锁绝对可用.docx_第4页
第4页 / 共18页
基于单片机的密码锁绝对可用.docx_第5页
第5页 / 共18页
基于单片机的密码锁绝对可用.docx_第6页
第6页 / 共18页
基于单片机的密码锁绝对可用.docx_第7页
第7页 / 共18页
基于单片机的密码锁绝对可用.docx_第8页
第8页 / 共18页
基于单片机的密码锁绝对可用.docx_第9页
第9页 / 共18页
基于单片机的密码锁绝对可用.docx_第10页
第10页 / 共18页
基于单片机的密码锁绝对可用.docx_第11页
第11页 / 共18页
基于单片机的密码锁绝对可用.docx_第12页
第12页 / 共18页
基于单片机的密码锁绝对可用.docx_第13页
第13页 / 共18页
基于单片机的密码锁绝对可用.docx_第14页
第14页 / 共18页
基于单片机的密码锁绝对可用.docx_第15页
第15页 / 共18页
基于单片机的密码锁绝对可用.docx_第16页
第16页 / 共18页
基于单片机的密码锁绝对可用.docx_第17页
第17页 / 共18页
基于单片机的密码锁绝对可用.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的密码锁绝对可用.docx

《基于单片机的密码锁绝对可用.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码锁绝对可用.docx(18页珍藏版)》请在冰点文库上搜索。

基于单片机的密码锁绝对可用.docx

基于单片机的密码锁绝对可用

单片机原理及系统课程设计

评语:

 

考勤(10)

守纪(10)

过程(40)

设计报告(30)

答辩(10)

总成绩(100)

 

专业:

电气工程及其自动化

班级:

电气1001班

姓名:

学号:

指导教师:

兰州交通大学自动化与电气工程学院

2013年3月7日

基于单片机的密码锁设计

摘要

随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出,传统的机械锁由于其构造简单,安全性能低,无法满足人们的需求。

随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少,安全性能差的缺点。

通过单片机编写密码程序,并用74LS245驱动的数码管来显示密码。

数码管可以时时显示当前输入的四位数字。

当输入密码正确时,对应的指示灯亮;当密码不正确时,发出声音报警。

关键词:

密码锁,单片机,报警

Abstract

Withtheimprovementofpeople'slivingstandards,ithasbecomeparticularlyprominentabouthowtoachieveAnti-theftfamily.Thetraditionalmechanicallockhassuchshortcomingassimplestructure,Lowsecurity,itcan'tmeetpeople'sdemands.Aselectronicproductsaredevelopingtowardsintelligenceandminimization,single-chipcomputers(SCM)havebecomethefirstchoiceforcontrollersinthedevelopmentofelectronicproducts.Therefore,theelectronicanti-theftalarmfunctionpasswordcontrolsystemandgraduallyreplacethetraditionalmechanicalpasswordcontrolsystem,Overcomethelowmechanicalpasswordcontrolpasswordandtheshortcomingsofpoorsafetyperformance,thepasswordprogramwrittenbySCM,and74ls245digitalcontroltodisplaythepassword。

Digitaltubecanalwaysdisplaythecurrentinputofsixdigits。

Whenyouenterthepasswordcorrectly,thecorrespondingindicatorlight;Whenthepasswordisincorrect,thesoundalarm。

Keywords:

Combinationlock,Single-chipmicrocomputer,alarm

1引言

1.1设计要求

此次单片机课程设计所使用的单片机是AT89C51,利用了键盘电路以及LED灯等器件实现了密码锁的设计,该密码锁主要需要实现如下功能和目标。

(1)输入密码功能:

键盘上敲击任意一个数字键,LED显示屏上就会出现一个“-”显示在LED显示屏的最右侧,每多敲击一个数字按键就会将之前敲入的所有“-”向左移一位。

(2)清除密码功能:

每当按下清除键“CLR”就会自动清除前一个输入的数值,这样便实现了修改密码的功能。

(3)开锁功能:

当密码输入完毕后,敲击“ENTER”键,系统将会将输入的密码与系统内的内置密码进行比较核对,若密码正确,则产生一个低电屏信号,表示密码正确。

若密码不正确则无此信号。

(4)报警和提示功能:

输入密码错误,或输入密码超出指定密码个数时,密码锁将会启动报警电路,产生报警。

密码正确则密码指示灯会起来。

(5)密码锁锁定功能:

当密码输入错误或密码不符合规则时引起报警后,密码锁将开启锁定功能,将密码锁锁定3秒钟,防止被恶意软件套取密码。

(6)系统内置密码修改功能,此功能可以通过修改程序中KEY中的值来改变系统的内置密码。

1.2设计方法

第一步,使用PROTEUS软件选用ATMEL公司的单片机AT89C51,以及需要用到的其他电子元器件,做好先期的准备。

第二步,使用PROTEUS设计硬件电路原理图,并完成电路的布线。

第三步,使用KeiluVision4软件编写单片机的汇编语言程序、仿真、软件调试。

第四步,使用PROTEUS软件导入汇编程序并进行模拟、调试。

最终完成本次毕业设计

2设计方案及原理

本密码锁的总体框图如下。

图1密码锁的总体框图

本密码锁设计由输入模块、显示模块、报警指示模块共三各模块组成,各模块的功能为。

(1)输入模块:

负责提供输入各数字,修改回删,完成回车的按键,已完成密码的输入和修改功能。

(2)显示模块:

其主要部件为一块LED屏,主要用来显示当前输入密码的个数,并用“-”表示。

(3)报警指示模块:

包括报警蜂鸣器和通路指示灯两部分组成,分别提供密码错误时的报警和密码正确是的通路提示灯。

3硬件设计

3.1键盘电路设计

使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。

键盘接P3.0—P3.6其电路如图2所示。

图2密码锁的键盘电路图

3.2LED显示电路

显示电路的电路原理图如图3.2所示。

图3密码锁显示电路图

用P0.0—P0.7接74LS245的A0—A7八个端口,74LS245的输出口接LED的A—G和DP;而P2.0—P2.7的输出口接LED的1—8。

用软件实现数字和位控制。

3.3开锁报警电路

开锁报警电路如图4所示。

图4开锁报警电路

在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。

电路图如4所示。

当P1.0口输出低电时,二极管发光,表示开锁。

当89C51的P1.7口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。

4软件设计

程序设计流程图如图6所示。

图5程序设计流程图

电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

当输入密码连续输入错误时,系统报警。

密码的预设的值为"123456"共6位密码。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

5系统调试

本次调试采用Protues软件仿真。

首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。

依次按下1,2,3,4,5,6后,LED显示如图7所示。

图6电路调试结果

6总结

本次单片机课程设计历时三周终于完成,在制作课程设计的过程中也遇到了不少的困难和阻碍,期间少不了与同学们之间的互相交流,和与老师的探讨,到亏了老师和同学们的帮助,此次单片机课程设计才能如期完成,在老师同学们的帮助下我能够熟练掌握KeiluVision4软件编写汇编语言和制作HEX文件以及使用PROTEUS进行仿真,并掌握了一定的程序编写能力,和电路设计能力,总之,受益良多,在此感谢各位给过我帮助的老师和同学。

参考文献

[1]冯博琴,吴宁.微型计算机原理与接口技术[M].北京:

清华大学出版社,2010.

[2]周航慈.单片机应用程序设计技术[M].北京:

北京航空航天大学出版社,2010.

[3]王思明,张金敏,苟军年,张鑫,杨乔礼.单片机原理及应用系统设计[M].北京:

科学出版社,2012.

附录

附录一:

系统仿真电路

附录二:

源程序

;以下8字节存放8位数码管的段码

LED_BIT_1EQU30H

LED_BIT_2EQU31H

LED_BIT_3EQU32H

LED_BIT_4EQU33H

LED_BIT_5EQU34H

LED_BIT_6EQU35H

LED_BIT_7EQU36H

LED_BIT_8EQU37H

;以下6个字节存放初始密码

WORD_1EQU38H

WORD_2EQU39H

WORD_3EQU3AH

WORD_4EQU3BH

WORD_5EQU3CH

WORD_6EQU3DH

;以下6个字节存放用户输入的6位密码

KEY_1EQU3EH

KEY_2EQU3FH

KEY_3EQU40H

KEY_4EQU41H

KEY_5EQU42H

KEY_6EQU43H

CNT_AEQU44H

CNT_BEQU45H

KEY_CNTEQU46H;已输出的密码位数

LINEEQU47H;按键行号

ROWEQU48H;按键列号

VALEQU49H;键值

;以下为初始化程序,包括数据存储空间初始化,设置初始密码

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVCNT_A,#00H;程序初始化

MOVCNT_B,#00H

MOVKEY_CNT,#00H

MOVLINE,#00H

MOVROW,#00H

MOVVAL,#00H

SETBP1.0

MOVLED_BIT_1,#00H;段码存储区清零

MOVLED_BIT_2,#00H

MOVLED_BIT_3,#00H

MOVLED_BIT_4,#00H

MOVLED_BIT_5,#00H

MOVLED_BIT_6,#00H

MOVLED_BIT_7,#79H

MOVLED_BIT_8,#73H

MOVKEY_1,#00H;输入密码存储区清零

MOVKEY_2,#00H

MOVKEY_3,#00H

MOVKEY_4,#00H

MOVKEY_5,#00H

MOVKEY_6,#00H

MOVWORD_1,#6;设置初始密码为“123456”

MOVWORD_2,#5

MOVWORD_3,#4

MOVWORD_4,#3

MOVWORD_5,#2

MOVWORD_6,#1

MOVTMOD,#01H

MOVTH0,#(65536-700)/256

MOVTL0,#(65536-700)MOD256

MOVIE,#82H

A0:

LCALLDISP;以下为键盘扫描程序,计算键值并存入VAL

LSCAN:

MOVP3,#0F0H;扫描行码

L1:

JNBP3.0,L2

LCALLDLY_S

JNBP3.0,L2

MOVLINE,#00H

LJMPRSCAN

L2:

JNBP3.1,L3

LCALLDLY_S

JNBP3.1,L3

MOVLINE,#01H

LJMPRSCAN

L3:

JNBP3.2,L4

LCALLDLY_S

JNBP3.2,L4

MOVLINE,#02H

LJMPRSCAN

L4:

JNBP3.3,A0

LCALLDLY_S

JNBP3.3,A0

MOVLINE,#03H

RSCAN:

MOVP3,#0FH;扫描列码

C1:

JNBP3.4,C2

MOVROW,#00H

LJMPCALCU

C2:

JNBP3.5,C3

MOVROW,#01H

LJMPCALCU

C3:

JNBP3.6,C1

MOVROW,#02H

CALCU:

MOVA,LINE;计算键值

MOVB,#03H

MULAB

ADDA,ROW

MOVVAL,A;以下为按键处理程序,对不同的按键作出响应

CJNEA,#0AH,J1;是否为“CLR”键

MOVR1,KEY_CNT

CJNER1,#00H,J2

LCALLALARM_1

LJMPSTART

J2:

LCALLSHIFTR

DECKEY_CNT

W00:

LCALLDISP;等待按键抬起

MOVA,P3

CJNEA,#0FH,W01

LJMPA0

W01:

MOVA,P3

CJNEA,#0F0H,W02

LJMPA0

W02:

SJMPW00

J1:

MOVA,VAL

CJNEA,#0BH,J3;判断是否为“ENTER”键

MOVR1,KEY_CNT

CJNER1,#06H,J4

MOVA,WORD_1;比较密码

CJNEA,3EH,J5

MOVA,WORD_2

CJNEA,3FH,J5

MOVA,WORD_3

CJNEA,40H,J5

MOVA,WORD_4

CJNEA,41H,J5

MOVA,WORD_5

CJNEA,42H,J5

MOVA,WORD_6

CJNEA,43H,J5

CLRP1.0

LCALLDLY_L

LJMPFINI

J5:

LCALLALARM_2

LJMPSTART

J4:

LCALLALARM_1

LJMPSTART

J3:

INCKEY_CNT;按下数字键

MOVA,KEY_CNT

CJNEA,#07H,K1

LCALLALARM_1

W10:

LCALLDISP;等待按键抬起

MOVA,P3

CJNEA,#0FH,W11

LJMPSTART

W11:

MOVA,P3

CJNEA,#0F0H,W12

LJMPSTART

W12:

SJMPW10

LJMPSTART

LJMPSTART

K1:

LCALLSHIFTL

W20:

LCALLDISP;等待按键抬起

MOVA,P3

CJNEA,#0FH,W21

LJMPA0

W21:

MOVA,P3

CJNEA,#0F0H,W22

LJMPA0

W22:

SJMPW20

LJMPA0

ALARM_1:

SETBTR0;操作错误报警

JBTR0,$

RET

ALARM_2:

SETBTR0;密码错误报警

JBTR0,$

LCALLDLY_L

RET;定时器中断服务程序,用于声音报警

INT_T0:

CPLP1.7

MOVTH0,#(65536-700)/256

MOVTL0,#(65536-700)MOD256

INCCNT_A

MOVR1,CNT_A

CJNER1,#30,RETUNE

MOVCNT_A,#00H

INCCNT_B

MOVR1,CNT_B

CJNER1,#20,RETUNE

MOVCNT_A,#00H

MOVCNT_B,#00H

CLRTR0

RETUNE:

RETI;段码,输入密码左移子程序

SHIFTL:

MOVLED_BIT_6,LED_BIT_5

MOVLED_BIT_5,LED_BIT_4

MOVLED_BIT_4,LED_BIT_3

MOVLED_BIT_3,LED_BIT_2

MOVLED_BIT_2,LED_BIT_1

MOVLED_BIT_1,#40H

MOVKEY_6,KEY_5

MOVKEY_5,KEY_4

MOVKEY_4,KEY_3

MOVKEY_3,KEY_2

MOVKEY_2,KEY_1

MOVKEY_1,VAL

RET;段码,输入密码右移子程序

SHIFTR:

MOVLED_BIT_1,LED_BIT_2

MOVLED_BIT_2,LED_BIT_3

MOVLED_BIT_3,LED_BIT_4

MOVLED_BIT_4,LED_BIT_5

MOVLED_BIT_5,LED_BIT_6

MOVLED_BIT_6,#00H

MOVKEY_1,KEY_2

MOVKEY_2,KEY_3

MOVKEY_3,KEY_4

MOVKEY_4,KEY_5

MOVKEY_5,KEY_6

MOVKEY_6,#00H

RET;以下为数码显示子程序

DISP:

CLRP2.7

MOVP0,LED_BIT_8

LCALLDLY_S

SETBP2.7

CLRP2.6

MOVP0,LED_BIT_7

LCALLDLY_S

SETBP2.6

CLRP2.5

MOVP0,LED_BIT_6

LCALLDLY_S

SETBP2.5

CLRP2.4

MOVP0,LED_BIT_5

LCALLDLY_S

SETBP2.4

CLRP2.3

MOVP0,LED_BIT_4

LCALLDLY_S

SETBP2.3

CLRP2.2

MOVP0,LED_BIT_3

LCALLDLY_S

SETBP2.2

CLRP2.1

MOVP0,LED_BIT_2

LCALLDLY_S

SETBP2.1

CLRP2.0

MOVP0,LED_BIT_1

LCALLDLY_S

SETBP2.0

RET

DLY_S:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

DLY_L:

MOVR5,#100

D2:

MOVR6,#100

D3:

MOVR7,#248

DJNZR7,$

DJNZR6,D3

DJNZR5,D2

RET

FINI:

NOP

END

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2