基于51单片机简易密码锁设计.docx
- 文档编号:8024740
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:29
- 大小:474.40KB
基于51单片机简易密码锁设计.docx
《基于51单片机简易密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机简易密码锁设计.docx(29页珍藏版)》请在冰豆网上搜索。
基于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密码输入界面,密码错误
总结
以上为毕业期间所作的毕业论文---基于单片机的电子密码锁设计,在着手本次毕业设计时,通过查阅网络与图书馆搜集到的资料,再加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 简易 密码锁 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)