唐山学院单片机子密码锁研发设计方案.docx

上传人:b****6 文档编号:8451274 上传时间:2023-01-31 格式:DOCX 页数:25 大小:212.08KB
下载 相关 举报
唐山学院单片机子密码锁研发设计方案.docx_第1页
第1页 / 共25页
唐山学院单片机子密码锁研发设计方案.docx_第2页
第2页 / 共25页
唐山学院单片机子密码锁研发设计方案.docx_第3页
第3页 / 共25页
唐山学院单片机子密码锁研发设计方案.docx_第4页
第4页 / 共25页
唐山学院单片机子密码锁研发设计方案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

唐山学院单片机子密码锁研发设计方案.docx

《唐山学院单片机子密码锁研发设计方案.docx》由会员分享,可在线阅读,更多相关《唐山学院单片机子密码锁研发设计方案.docx(25页珍藏版)》请在冰豆网上搜索。

唐山学院单片机子密码锁研发设计方案.docx

唐山学院单片机子密码锁研发设计方案

目录

前言1

1电子密码锁的设计2

1.1电子密码锁设计的目的3

1.2设计任务3

1.3运行环境及开发工具3

2总体方案设计4

3设计的要求5

4密码锁的硬件设计6

4.1行列式键盘6

4.2LM016LLCD显示器6

4.3按键提示和报错7

4.4总电路设计图8

5密码锁的软件设计7

5.1主程序的设计8

5.2主要功能程序的设计9

5.2.1键盘扫描程序设计的流程图9

5.2.2LCD显示程序设计的流程图10

5.2.3修改密码子程序设计的流程图11

5.3仿真图及其分析12

5.3.1欢迎界面仿真图12

5.3.2输入密码界面仿真图13

5.3.3修改密码界面仿真图14

6总结与思考15

参考文献16

附录:

源程序指令代码17

前言

目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。

但在使用中暴露了很多缺点:

一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。

据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。

二是钥匙一旦丢失,无论谁捡到都可以将锁打开。

三是机械锁的材料大多为黄铜,质地较软,容易损坏。

四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。

由于人们对锁的安全性,方便性等性能有更高的要求,许多智能锁也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品的普及和推广。

随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。

电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。

随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,机械锁的这些弊端为一种新型的锁---电子密码锁,提供了发展的空间。

随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世。

但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

 

1电子密码锁的设计

1.1电子密码锁设计的目的

(1)熟悉电路,理解各个元件之间的控制流程。

(2)熟悉PROTEUS平台的运行环境。

(3)熟练掌握汇编语言,矩阵式键盘的实时控制操作。

(4)理解电子密码锁的工作原理。

1.2设计任务

(1)确定4×4键盘控制识别方案。

(2)分析电子密码锁的流程。

(3)画出程序流程图。

(4)分析电路图。

(5)编写代码。

(6)程序分析与调试。

(7)测试。

1.3运行环境及开发工具

(1)WindowsXP/win7系统。

(2)Keil51或WAVE编译环境。

(3)PROTEUS实验平台。

(4)运用汇编语言编程

 

2总体方案设计

本次设计使用AT89C51实现一基于单片机的电子密码锁。

本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。

系统能完成开锁、超次锁定、修改用户密码基本的密码锁的功能。

本系统成本低廉,功能实用。

以AT89C51单片机为核心的控制电路,采用模块化的设计方案。

通过单片机的P2端口的开关来控制案件的输入的内容,根据另一单片机端口P1口LCD数码显示管所显示的的情况来确定程序的运行和理论的结果是否一致。

具体设计方案如下:

1.正确连接好硬件电路线路;

2.加载程序.HEX文件,运行程序;

3.按下键盘开关,结果键值显示在LCD数码管显示器上;

4.对比LCD数码管显示情况与理论值是否相符。

如相符合,即方案可行。

图2.1总体的设计框图

 

3设计的要求

1、设计密码锁的密码为六位数,可以修改;

2、用4×4组成0~9数字键及确认键、取消键、修改密码键、退出修改键。

3、当密码锁通电以后,通过LCD显示与用户沟通,组成显示电路提示信息,输入键盘按下时,LED指示灯亮,按键松开了指示灯就灭;

4、当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开;当输入的密码错误时,显示输入错误,并且用蜂鸣器报错;

5、所修改的密码只能是六位数,要是在改密码以后要恢复最初密码,只需将密码锁断电即可。

 

4密码锁的硬件设计

4.1行列式键盘

图4.1行列键盘图

图4.1所示键盘根据具体的功能省去4×4键盘中的两个按键,再通过翻转法扫描键盘的到键值,再根据键值进行相应的操作。

4.2LM016LLCD显示器

图4.2LCD显示器图

该图器件是LM016L液晶显示屏,D0到D7口连接在单片机的I/O口上(如该设计就连接在P1口),E,RW,RS引脚也与单片机相连(如本设计连在P3.5,P3.6,P3.7口),VEE和VSS接电源,VDD接地,再通过软件设计实现各个字符串的显示。

 

4.3按键提示和报错

图4.3提示报错电路图

该图利用一个发光二极管提示用户按键是否按下,用蜂鸣器提示密码错误,发出错误警报,将a,b两端接在单片机上(本设计连在P0.6,P0.7口)

4.4总电路设计图

图4.4硬件设计图

图4.4是将行列式键盘,LCD显示器,提示和警报和AT89C51单片机连接起来,在给单片机加上晶振电路和复位电路就构成了一个完整的电子密码锁的硬件设计图。

5密码锁的软件设计

5.1主程序的设计

1、主程序流程图

图5.1主程序流程图

2、主程序的功能说明

在主程序中可以实现密码的储存,键值的判断,通过不同的键值判断程序的下一步走向,在没按键式或是在没按下特殊功能键时,程序在不停顶循环,直到符合用户的要求和意愿。

5.2主要功能程序的设计

5.2.1键盘扫描程序设计的流程图

图5.2键盘扫描程序设计的流程图

5.2.2LCD显示程序设计的流程图

图5.3LCD显示程序设计的流程图

5.2.3修改密码子程序设计的流程图

图5.4修改密码子程序设计的流程图

5.3仿真图及其分析

5.3.1欢迎界面仿真图

图5.5欢迎界面仿真图

图5.5为电子密码锁的欢迎界面,在两秒的欢迎界面后,显示器出现与用户沟通的用户输入显示如图5.6所示

 

5.3.2输入密码界面仿真图

图5.6输入密码界面仿真图

图5.6为用户输入密码时的沟通界面,可以通过星号判断输入数据的个数,当用户按下其他功能键时,显示器会有相应的动作,当按下“确认”时,若密码正确则显示“SUCCESS”,

提示用户输入的密码是正确的,如密码错误则显示“ERROR”并发出警报,当按下“取消”时,显示将提示用户重新输入。

 

5.3.3修改密码界面仿真图

图5.7修改密码界面仿真图

图5.7是用户修改密码时的用户沟通界面,当按下“确认”是若输入的新密码格式不对则显示“SAVEFAILURE”,若输入的新密码的格式正确则显示“SAVESUCCESS”,当按下“取消”时,显示将提示用户重新输入新密码,当按下“退出修改”时,显示器将提示用户没有储存新密码,并且显示欢迎界面。

6总结与思考

通过本次课程设计,我学到了许多书本上无法学到的知识,也深刻体会到单片机技术应用领域的广泛。

不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。

本设计涉及到《单片机原理及应用》、《模拟电子技术》等学科。

让我对专业知识有了更深的理解。

在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:

LCD的驱动原理、AT89C51单片机及其引脚说明、键盘扫描程序的编写等,为本次课程设计提供了一定的资料。

在做课程设计的初期阶段,难度较大。

在设计基本完成时密码的修改还是不能实现,通过求助于老师、查找了问题的所在。

最后经过指导老师的耐心指点和连续的奋战才基本设计出来。

感谢老师的无私的帮助!

本次设计我能独立完成,算是有了很大的收获。

不但对单片机有了更为深入的了解,对一个课题如何排版、画流程图、编程序等,有了一定的认识。

进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。

同时明白了办事只要有信心,有毅力,找对方法,就会成功!

通过本次课程设计,让我了解到智能化技术对当今人们生活的重要性。

同时这次做课程设计的经历也使我受益匪浅。

让我知道做任何事情都应脚踏实地,刻苦努力地去做。

只有这样,才能做好。

在这次课程设计中,我既巩固了专业知识,又学到了在设计过程中的许多流程和该注意的事项,增强了电子产品开发的意识。

本次经历将是我在大学时期很好的一次实践和锻炼机会。

 

参考文献

1、何立民主编,单片机中级教程,北京航空航天大学出版社

2、丁元杰主编,单片机原理与应用,机械工业出版社

3、孙育才主编,MCS-51系列单片微型计算机及其应用,东南大学出版社

4、潘新民、王燕芳主编,微型计算机控制技术实用教程,北京电子工业出版社

5、刘湘涛、江世明主编,单片机原理与应用,北京电子工业出版社

 

附录:

源程序指令代码

ORG0000H;

LJMPSTART

ORG000BH

LJMPINT

RSBITP3.7

RWBITP3.6

EBITP3.5

ORG0040H

START:

MOV70H,#1;将正确的密码存放

MOV71H,#2

MOV72H,#3

MOV73H,#4

MOV74H,#5

MOV75H,#6

START1:

ACALLWELCOME

ACALLDELAY1

ACALLDELAY1

ACALLDELAY1

KAISHI:

MOVR2,#00H

MOVR0,#50H

ACALLINPUT

JIXU:

ACALLSAOMIAO

CJNEA,#10,PD2

ACALLPD1

AJMPPD4

PD2:

CJNEA,#11,PD3

AJMPPD4

PD3:

ACALLINPUT

LJMPJIXU

PD4:

LJMPKAISHI;这一部分为主程序,电子密码锁的各种功能函数都嵌套在主程序中

SAOMIAO:

NOP;键盘扫描子程序

MAIN:

MOVP2,#0F0H

MOVA,P2

CJNEA,#0F0H,M

SJMPMAIN

M:

ACALLDELAY

CJNEA,#0F0H,MM

SJMPMAIN

MM:

MOV20H,A

MOVP2,#0FH

MOV31H,P2

CLRP0.6

MMM:

MOVP2,#0F0H

MOVA,P2

CJNEA,#0F0H,MMM

SETBP0.6

JNB20H.4,AP1

JNB20H.5,AP2

JNB20H.6,AP3

JNB20H.7,AP4

LJMPMAIN

AP1:

MOV30H,#0

AJMPWP

AP2:

MOV30H,#4

AJMPWP

AP3:

MOV30H,#8

AJMPWP

AP4:

MOV30H,#12

AJMPWP

WP:

MOVA,31H

JNBACC.0,D0

JNBACC.1,D1

JNBACC.2,D2

JNBACC.3,D3

LJMPMAIN

D0:

MOVA,#0

ADDA,30H

MOV@R0,A

MOVA,R0

INCR0

INCR2

LJMPWWW

D1:

MOVA,#1

ADDA,30H

MOV@R0,A

INCR0

INCR2

LJMPWWW

D2:

MOVA,#2

ADDA,30H

MOV@R0,A

INCR0

INCR2

LJMPWWW

D3:

MOVA,#3

ADDA,30H

MOV@R0,A

INCR0

INCR2

WWW:

NOP

RET;扫描程序出口,该部分用翻转法,先给高位置1,低位置0,再将其翻转过来,扫描得到键值

PD1:

CLRC;输入密码判断程序

MOVA,50H

SUBBA,70H

JNZEXIT

CLRC

MOVA,51H

SUBBA,71H

JNZEXIT

CLRC

MOVA,52H

SUBBA,72H

JNZEXIT

CLRC

MOVA,53H

SUBBA,73H

JNZEXIT

CLRC

MOVA,54H

SUBBA,74H

JNZEXIT

CLRC

MOVA,55H

SUBBA,75H

JNZEXIT

CLRC

DECR2

MOVA,R2

SUBBA,#6

JNZEXIT

ACALLSUCCESS

ACALLDELAY1

ACALLDELAY1

ACALLDELAY1

ACALLWELCOME

PP1:

ACALLSAOMIAO

MOVA,57H

CJNEA,#12,PP

AJMPPPP0

PP:

AJMPPP1

PPP0:

ACALLXIUGAI

LJMPSTART1

EXIT:

ACALLERROR

MOVTMOD,#01

MOVTH0,0FCH

MOVTL0,0EH

SETBEA

SETBET0

SETBTR0

ACALLDELAY1

CLRTR0

RET

XIUGAI:

ACALLNEWWORD;修改密码的程序

MOVR2,#00

MOVR0,#50H

JIXIU1:

ACALLSAOMIAO

CJNEA,#10,XX1

LJMPPD5;跳转到判断输入密码格式是否正确

XX1:

CJNEA,#11,XX2

LJMPPD6;跳转到开始修改密码的状态

XX2:

CJNEA,#12,XX3

LJMPPD6

XX3:

CJNEA,#13,XX4

LJMPPD7;退出修改密码

XX4:

ACALLXIANSX

LJMPJIXIU1

PD5:

ACALLPANDUAN

AJMPPD8

PD6:

LJMPXIUGAI

PD7:

ACALLNOMOTIFY

ACALLDELAY1

ACALLDELAY1

ACALLDELAY1

PD8:

NOP

RET

XIANSX:

MOVA,R2;显示新密码的程序

MOVR3,A

ACALLBUSY

MOVP1,#38H

ACALLENABLE

ACALLBUSY

MOVP1,#0FH

ACALLENABLE

ACALLBUSY

MOVP1,#06H

ACALLENABLE

ACALLBUSY

MOVP1,#192

ACALLENABLE

MOVDPTR,#1900H

LP5:

ACALLBUSY

MOVA,#00H

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP5

RET

PANDUAN:

MOVA,R2;密码修改时的格式是否正确的判断程序

SUBBA,#7

JNZEXIT1

MOV70H,50H

MOV71H,51H

MOV72H,52H

MOV73H,53H

MOV74H,54H

MOV74H,54H

ACALLSAVES

AJMPEXIT2

EXIT1:

ACALLSAVEF

EXIT2:

ACALLDELAY1

ACALLDELAY1

ACALLDELAY1

RET

ENABLE:

SETBE

CLRRW

CLRRS

CLRE

RET

DATAS:

SETBE

SETBRS

CLRRW

CLRE

RET

BUSY:

CLRE;LCD判忙程序

MOVP1,#0FFH

CLRRS

SETBRW

SETBE

JBP1.7,BUSY

RET

CHUSHI:

ACALLBUSY;LCD初始化程序

MOVP1,#01H

ACALLENABLE

ACALLBUSY

MOVP1,#38H

ACALLENABLE

ACALLBUSY

MOVP1,#0FH

ACALLENABLE

ACALLBUSY

MOVP1,#06H

ACALLENABLE

ACALLBUSY

MOVP1,#80H

ACALLENABLE

RET

INPUT:

MOVA,R2;INPUT加星号的显示程序

MOVR3,#6

ADDA,R3

MOVR3,A

MOVDPTR,#2000H

AJMPPPP

SUCCESS:

MOVDPTR,#2050H

MOVR3,#7

AJMPPPP

ERROR:

MOVDPTR,#2100H

MOVR3,#5

AJMPPPP

PPP:

ACALLCHUSHI

LP:

ACALLBUSY

MOVA,#00H

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP

RET

WELCOME:

MOVDPTR,#2150H;显示WELCOMETOUSE的程序

MOVR3,#14

ACALLCHUSHI

LP1:

ACALLBUSY

MOVA,#00

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP1

RET

NEWWORD:

MOVDPTR,#2200H;显示NEWPASSWORDIS的程序

MOVR3,#15

ACALLCHUSHI

LP2:

ACALLBUSY

MOVA,#00

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP2

RET

SAVEF:

MOVDPTR,#2250H;显示SAVEFAILURE的程序

MOVR3,#12

ACALLCHUSHI

LP3:

ACALLBUSY

MOVA,#00

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP3

RET

SAVES:

MOVDPTR,#2300H;显示SAVESUCCESS的程序

MOVR3,#12

ACALLCHUSHI

LP4:

ACALLBUSY

MOVA,#00

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP4

RET

NOMOTIFY:

MOVDPTR,#2350H

MOVR3,#9

ACALLCHUSHI

LP6:

ACALLBUSY

MOVA,#00

MOVCA,@A+DPTR

MOVP1,A

ACALLDATAS

INCDPTR

DJNZR3,LP6

RET

INT:

;定时器中断服务程序

MOVTH0,0FCH

MOVTL0,0EH

SETBTR0

CPLP0.7

RETI

DELAY:

MOVR7,#3;消除抖动的延时程序

OP:

MOVR6,#255

DJNZR6,$

DJNZR7,OP

RET

DELAY1:

MOVR6,#5

YS2:

MOVR4,#255

YS1:

MOVR5,#255

DJNZR5,$

DJNZR4,YS1

DJNZR6,YS2

RET

ORG1900H

DB2AH,2AH,2AH,2AH,2AH,2AH,2AH,2AH,2AH,2AH

ORG1950H

DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H

ORG2000H

DB49H,4EH,50H,55H,54H,3AH

DB2AH,2AH,2AH,2AH,2AH,2AH,2H,2AH,2AH

ORG2050H

DB53H,55H,43H,43H,45H,53H,53H

ORG2100H

DB45H,52H,52H,4FH,52H

ORG2150H

DB57H,45H,4CH,43H,4FH,4DH,45H,20H,54H

DB4FH,20H,55H,53H,45H

ORG2200H

DB4EH,45H,57H,20H,50H,41H,53H,53H

DB57H,4FH,52H,44H,20H,49H,53H

ORG2250H

DB53H,41H,56H,45H,20H,46H,41H,49H,4CH,55H,52H,45H

ORG2300H

DB53H,41H,56H,45H,20H,53H,55H,43H,43H,45H,53H,53H

ORG2350H

DB4EH,4FH,20H,4DH,4FH,54H,49H,46H,59H

END

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

当前位置:首页 > 解决方案 > 学习计划

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

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