基于51单片机简易密码锁设计.docx

上传人:b****5 文档编号:6851980 上传时间:2023-01-11 格式:DOCX 页数:29 大小:499.31KB
下载 相关 举报
基于51单片机简易密码锁设计.docx_第1页
第1页 / 共29页
基于51单片机简易密码锁设计.docx_第2页
第2页 / 共29页
基于51单片机简易密码锁设计.docx_第3页
第3页 / 共29页
基于51单片机简易密码锁设计.docx_第4页
第4页 / 共29页
基于51单片机简易密码锁设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于51单片机简易密码锁设计.docx

《基于51单片机简易密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机简易密码锁设计.docx(29页珍藏版)》请在冰豆网上搜索。

基于51单片机简易密码锁设计.docx

基于51单片机简易密码锁设计

 

易密码锁设计

摘要:

本设计以单片机STC89C52RC作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。

根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。

而且采用键盘输入的电子密码锁具有较高的优势。

采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。

软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。

测试结果表明,本系统各项功能已达到本设计的所有要求。

关键词:

单片机;智能密码锁;串行通信

 

TheDesignOfTheSimple PasswordLock

Abstract:

Itcancarryoutthekeyinformationtoregisterinthemainonboardinitialattestation,thepasswordinformationencryptetc.Gotocorrespondbylettertheprincipleaccordingtothestringbetween51machines,thisiseasytoencryptandprotecttothepasswordsinformationrandom.Adoptthenumericalsignalcodes,notonlycancarryoutmanycontrolsoftheroadinformation,raisetheanti-interferencethatsignaldeliver,reducethemistakeaction,butalsothepowerconsumeislow,Respondquickly,theefficiencydeliverishigh,workstablecredibilityetc.Thesoftwaredesignadoptionthedesignthoughtfromtoptobottom,tomakethesystemtowardweardistributetype,turntothedirectiondevelopmentofsmall,strengthenthesystemandcanexpandthestabilityandcirculate.Testtheresultenunciation,variousfunctionsofthissystemarealreadyallrequestofthisdesign.

KeyWords:

singlechip;intelligentpasswordlock;Serialcommunication;

 

 

随着人们生活水平的提高,传统的机械锁由于其构造的简单,被撬开的事件屡见不鲜,电子锁保密性高,能够防止不法分子多次试探密码;性价比高,因此,电子锁受到了广大的亲昵。

也使得该项技术有了更好的发展前景。

本作品智能密码锁控制器,以低价格高性能的8位单片机为核心,采用人性化的设计,用LCD显示和语音提示双重显示,人机界面友好。

另外预留着可扩展通道,可以根据用户的要求进行其他功能的扩展。

本系统安全可靠,智能化高,安装方便,是大众型电子锁的首选本系统采用以低价格高性能的8位单片机STC89C52RC为核心,STC89C52RC采用CHOMS工艺,功耗很低,并且价格合适,应用普遍,更是支持了ISP在线下载,易于开发。

使用该CPU进行设计具有实际意义

1设计目标

(1)设置8位密码,密码通过键盘输入,若密码正确,则将锁打开,初始化密码为(12345678)。

(2)密码可以由用户自己修改设定(支持8位密码),锁打开后才能修改密码。

修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。

(3)报警、锁定键盘功能。

密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。

(4)电子密码锁的设计主要4×4矩阵键盘接口电路、密码锁的控制电路。

(5)密码输入功能:

按下一个数字键,一个“0”就显示在最右边的数码管上,同时将先前输入的所有“0”向左移动一位。

(6)密码清除功能:

当按下清除键时,清除前面输入的一个值,并可以清除所有显示。

(7)密码更改功能:

将输入的值作为新的密码。

(8)开锁功能:

当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开

第二章硬件设计与原理

以STC89C52RC单片机为核心,起着控制作用。

系统包括数码管显示电路、复位电路、时钟电路、矩阵按键电路、蜂鸣器电路和发光二级管指示灯电路。

设计思路分为七个模块:

复位电路、晶振电路模块、STC89C51RC、数码管显示电路、矩阵按键电路、蜂鸣器电路和发光二级管指示灯电路这七个模块。

2.1设计总框图

图1设计总框图

2.2硬件设计分析

2.2.1电源的设计

1):

系统电源

系统电源使用直流5伏。

方案:

由市电220伏输入,经变压器降压为交流8-9伏左右,再经四个二极管进行整流(脉动直流),后用铝电解电容和无极性电容滤波,之后在使用一片7805稳压芯片进行稳压。

原理图如图2-1。

图25伏电源

2.2.2单片机最小系统

51单片机是对目前所有兼容intel8031指令系统的单片机的统称。

该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。

单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。

51系列单片机内包含以下几个部件:

一个8位CPU;一个片内振荡器及时钟电路;

4KB的ROM程序存储器;

一个128B的RAM数据存储器;

寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;

32条可编程的I/O口线;

两个16位定时/计数器;

一个可编程全双工串行口;

5个中断源、两个优先级嵌套中断结构。

如图2-2-1所示为STC89C52RC单片机基本构造,其基本性能介绍如下:

图3STC89C52RC单片机

STC89C52RC本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,3个16位可编程定时计数器,2个全双工串行通信口,STC89C51RC可以按照常规方法进行编程,但不可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

STC89C52RC的主要特性如下表所示:

兼容MCS—51指令系统

32个可编程I/O线

4k字节可编程闪烁存储器

可编程UARL通道

三个16位可编程定时/计数器中断

时钟频率0-24MHz

2个外部中断源,共8个中断源

256×8bit内部RAM

2个读写中断口线

可直接驱动LED

软件设置睡眠和唤醒功能

低功耗空闲和掉电模式

表1STC89C52RC主要功能描述

STC89C52RC为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。

Flash编程和程序校验期间,P1接收低8位地址。

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。

Flash编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个AL脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C51RC由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

图4单片机最小系统

单片机最小系统说明:

时钟信号的产生:

在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。

而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。

如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。

单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。

单片机复位条件:

必须使9脚加上持续两个机器周期(即24个振荡周期)的高电平。

 

2.2.3显示系统

显示部分由一组八个LED数码管来完成。

当单片机上电后,从左到右第八位数码管会闪亮,说明显示屏已经接通电源正等待密码的输入。

开锁时,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个数字,输入多少位就显示多少个数字。

当密码输入完成时,按下确认键,如果输入的密码正确的话,LED显示屏第八位数码管闪亮且不再显示以后输入的数字,单片机其中P2.0引脚会输出高电平,电子密码锁被打开(黄灯亮);若输入密码错误,显示屏无任何显示,单片机其中P2.1引脚会输出高电平,电子密码锁不能打开且报警(红灯亮),错误确认密码不能超过三次,超过三次,显示屏将不再显示输入的任何数字,键盘自动锁定。

通过LED显示屏,可以清楚地判断出密码锁所处的状态。

图5数码管显示电路

2.2.4矩阵按键模块

由于本设计所用到的按键数量较多而不适合用独立按键式键盘。

采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。

本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。

键盘的每个按键图6矩阵按键模块

功能在程序设计中设置。

 

2.2.5蜂鸣器和指示灯电路

报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导喇叭发出噪鸣声报警。

图7报警电路

 

第三章软件设计与分析

3.1软件设计的组成

该系统由延时子函数、矩阵键盘扫描子函数、数码管显示子函数、延时子函数、初始画面显示子函数、密码输入界面子函数、密码检测子函数、8位密码子函数、删除键处理子函数、密码输入动态显示子函数、密码修改子函数、主函数和数据定义这几部分组成。

3.2各部分软件分析

3.2.1延时子函数

//延时子函数

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

3.2.2矩阵键盘扫描子函数

//矩阵键盘扫描子函数

CLR_BUF:

MOVR7,#06H

MOVR0,#6FH

LOOP1:

MOVA,#00H

MOV@R0,A

DECR0

DJNZR7,LOOP1

RET

*************初始化显示缓冲区以及其他缓冲区**************

INITPS:

PUSHACC

PUSHPSW

MOVR7,#06H

MOVR1,#PS1

MOVA,#00H

INIT_PS:

MOV@R1,A

DECR1

DJNZR7,INIT_PS

POPPSW

POPACC

NOP

RET

INITAT:

PUSHACC

PUSHPSW

MOVR7,#06H

MOVR1,#AT1

MOVA,#00H

INIT_AT:

MOV@R1,A

DECR1

DJNZR7,INIT_AT

MOVTIMERS,#00H;密码输入的次数清零。

POPPSW

POPACC

RET

3.2.3检验密码正误子函数

C_PSW:

PUSHPSW

PUSHACC

MOVR2,#06H

MOVR0,#PS1

MOVR1,#AT1

C_P:

CLRC

MOVA,@R0

SUBBA,@R1

JNZRETURN

DECR0

DECR1

DJNZR2,C_P

NOP

SETBPSW_F

AJMPEXIT7

RETURN:

CLRPSW_F

EXIT7:

NOP

POPACC

POPPSW

RET

3.2.4锁定,鸣笛程序

LOCK_1M:

MOVR4,#3CH;锁定1分钟

M1_LOOP:

LCALLSEC

DJNZR4,M1_LOOP

NOP

RET

WARN2S:

PUSHPSW

PUSHACC

MOVR5,#14H;调用20次BP,报警2s

WARN:

LCALLBP

DJNZR5,WARN

NOP

POPACC

POPPSW

NOP

RET

BP:

CLRSPK;鸣笛子程序

LCALLT100MSD

SETBSPK

NOP

RET

3.2.5显示子程序

锁定状态显示。

XSA:

PUSHACC

PUSHPSW

MOVA,TIMERS1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A;送已经输入密码的次数

JNBTI,$

CLRTI

MOVSBUF,#0FEH;送短线

JNBTI,$

CLRTI

MOVSBUF,#0FEH;送短线

JNBTI,$

CLRTI;送F

MOVSBUF,#78H

JNBTI,$

CLRTI

MOVSBUF,#78H

JNBTI,$

CLRTI

MOVSBUF,#11H

JNBTI,$

CLRTI

POPPSW

POPACC

RET

密码输入及修改状态

XSC:

PUSHACC

PUSHPSW

LCALLKILLXS

SETBRS1;切换到第三组寄存器。

防止操作数读取错误。

MOVR6,TIMERS

MOVA,R6

SUBBA,#01H

JNCSC0

JZSC1

SC0:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

SC1:

MOVA,R6

SUBBA,#02H

JNCSC11

JNZSC2

SC11:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

SC2:

MOVA,R6

SUBBA,#03H

JNCSC22

JNZSC3

SC22:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

SC3:

MOVA,R6

SUBBA,#04H

JNCSC33

JNZSC4

SC33:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

SC4:

MOVA,R6

SUBBA,#05H

JNCSC44

JNZSC5

SC44:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

SC5:

MOVA,R6

SUBBA,#06H

JNCSC55

JNZSC6

SC55:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

SC6:

MOVA,R6

SUBBA,#07H

JNCSC66

JNZEXIT_C

SC66:

MOVSBUF,#0FEH

JNBTI,$

CLRTI

NOP

NOP

EXIT_C:

NOP

CLRRS1

POPPSW

POPACC

NOP

RET

第四章软件仿真

4.1PROTEUS简介

ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:

(1)现了单片机仿真和SPICE电路仿真相结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(2)支持主流单片机系统的仿真。

目前支持的单片机类型有:

68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

(3)提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。

(4)具有强大的原理图绘制功能。

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。

还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。

配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:

*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。

PROTEUS是单片机课堂教学的先进助手。

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。

前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。

这在相当程度上替代了传统的单片机实验教学的功能,例:

元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。

由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。

4.2仿真图

图8单片机电路图

 

图9开机界面

图10输入密码界面

 

图11正在输入界面

 

图12密码正确,开锁界面

 

图13修改密码界面,输入初始密码

 

图14修改密码界面,输入新密码

 

图15密码输入界面,密码错误

 

总结

以上为毕业期间所作的毕业论文---基于单片机的电子密码锁设计,在着手本次毕业设计时,通过查阅网络与图书馆搜集到的资料,再加上指导老师指点,结合生活中对密码锁的功能特性要求,

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

当前位置:首页 > 农林牧渔 > 林学

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

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