基于STCC单片机的密码锁END.docx

上传人:b****6 文档编号:8561710 上传时间:2023-01-31 格式:DOCX 页数:35 大小:682.81KB
下载 相关 举报
基于STCC单片机的密码锁END.docx_第1页
第1页 / 共35页
基于STCC单片机的密码锁END.docx_第2页
第2页 / 共35页
基于STCC单片机的密码锁END.docx_第3页
第3页 / 共35页
基于STCC单片机的密码锁END.docx_第4页
第4页 / 共35页
基于STCC单片机的密码锁END.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于STCC单片机的密码锁END.docx

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

基于STCC单片机的密码锁END.docx

基于STCC单片机的密码锁END

基于STC89C51单片机的电子密码锁

 

学生姓名:

赵丽丽宋帅高秋利

学生学号:

110410100511041010211104101001

院(系):

机电工程学院

年级专业:

11级电子信息工程1班

指导教师:

王秀山

 

二〇一五一月

 

目录

1绪论

1.1电子密码锁简介…………………………………………………………………………3

2设计方案……………………………………………………………………………………4

3主要元器件…………………………………………………………………………………5

3.1主控芯片STC89C51………………………………………………………………………5

3.2晶体振荡器………………………………………………………………………………5

3.3LCD显示密码模块的设计………………………………………………………………7

3.3.1LCD1602简介………………………………………………………………………7

3.3.2LCD1602液晶显示模块与单片机连接电路………………………………………8

4硬件系统设计……………………………………………………………………………9

4.1设计原理…………………………………………………………………………………9

4.2电源输入电路……………………………………………………………………………9

4.3矩阵键盘…………………………………………………………………………………10

4.4复位电路…………………………………………………………………………………10

4.5晶振电路…………………………………………………………………………………11

4.6报警电路…………………………………………………………………………………12

4.7显示电路…………………………………………………………………………………12

4.8开锁电路…………………………………………………………………………………12

4.9电路总体构成……………………………………………………………………………13

5软件程序设计……………………………………………………………………………14

5.1主程序流程介绍…………………………………………………………………………14

5.2键盘模块流程图…………………………………………………………………………15

5.3显示模块流程图…………………………………………………………………………17

5.4修改密码流程图…………………………………………………………………………18

5.5开锁和报警模块流程图………………………………………………………………19

6电子密码锁的系统调试及仿真………………………………………………………21

6.1硬件电路调试及结果分析………………………………………………………………21

6.2软件调试及功能分析……………………………………………………………………21

6.2.1调试过程……………………………………………………………………………21

6.2.2仿真结果分………………………………………………………………………22

6.3仿真全图…………………………………………………………………………………24

7结论…………………………………………………………………………………………25

参考文献………………………………………………………………………………………26

附录:

……………………………………………………………………………………………27

 

1绪论

1.1电子密码锁简介

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。

其性能和安全性已大大超过了机械锁。

其特点如下:

1)保密性好,编码量多,远远大于弹子锁。

随机开锁成功率几乎为零。

2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因

人员的更替而使锁的密级下降。

3)误码输入保护,当输入密码多次错误时,报警系统自动启动。

4)无活动零件,不会磨损,寿命长。

5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。

6)电子密码锁操作简单易行,一学即会。

 

2设计方案

采用以单片机为核心的控制方案。

由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。

一般来说在选取单片机时从下面几个方面考虑:

性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:

中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。

在开发过程中单片机还受到:

开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。

基于以上因素本设计选用单片机STC89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602液晶显示屏用于显示作用。

当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。

密码输完后按下确认键,如果密码输入正确则开锁,不正确则重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确开锁后才能设置新密码。

新密码输入无误后按确认键使新密码将得到存储,密码修改成功。

 

3主要元器件

3.1主控芯片STC89C51

1)STC89C51单片机的主要特性如下:

STC89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的STC89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C51芯片引脚图如图3-1所示。

图3-1STC89C51芯片引脚图

3.2晶体振荡器

晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。

以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。

如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。

但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。

现在应用最广泛的是石英晶体振荡器。

石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。

石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。

为数据处理设备产生时钟信号和为特定系统提供基准信号。

在单片机中为其提供时钟频率。

石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:

从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。

其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。

只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。

当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。

时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:

内部振荡和外部振荡。

MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。

外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz

 

3.3LCD显示密码模块的设计

显示模块主要由LCD1602显示屏组成,他显示的是键盘输入的密码,以及密码正确与错误的提示。

当输入密码时,出于安全性的考虑,显示的密码是有*号代替,为暗密。

当输入六位密码后按下确认键,系统会与存于ROM的密码对比,若密码错误,显示屏会显示Error,若密码正确,显示屏会显示Right。

3.3.1LCD1602简介

1)1602功能介绍

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。

每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

2)1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表3-2所示:

表3-2引脚功能说明

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

其引脚图如下图3-2所示:

图3-2LCD1602引脚图

3)LCD寄存器的选择

表3-3LCD寄存器的选择

E

R/W

RS

功能说明

1

1

0

写入命令寄存器

1

1

1

写入数据寄存器

1

1

0

读取忙碌标志及RAM地址

1

1

1

读取RAM数据

0

X

1

不动作

3.3.2LCD1602液晶显示模块与单片机连接电路

图3-3LCD1602液晶显示模块与单片机连接电路

4硬件系统设计

4.1设计原理

本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。

其中矩阵键盘用于输入数字密码和进行各种功能的实现。

由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。

本系统共有两部分构成,即硬件部分与软件部分。

其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。

图4-1组成原理

4.2电源输入电路

三端集成稳压器LM7805和LM7905是作为固定输出电压的典型应用。

正常工作时,输入、输出电压差为2--3V。

电容C为输入稳定电容,其作用是减小纹波,消振、抑制高频和脉冲干扰,它一般为0.1--1uF。

电容C为输出稳定电容,其作用是改善负载的瞬态响应,它一般为1uF。

使用三端稳压器时要根据输出电流的大小选择加散热器,否则会由于过热而无法工作到额定电流。

图4-2电源输入电路

4.3矩阵键盘

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

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

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

键盘的每个按键功能在程序设计中设置。

其大体功能(看键盘按键上的标记)及与单片机引脚接法。

图4-3矩阵键盘

4.4复位电路

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。

无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。

在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。

地址锁存信号ALE也为高电平。

根据实际情况选择如图2-8所示的复位电路。

该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。

增加手动复位按键是为了避免死机时无法可靠复位。

当复位按键按下后电容C1通过R5放电。

当电容C1放电结束后,RST端的电位由R11与R15分压比决定。

由于R11<

R11的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电。

图4-4复位电路

4.5晶振电路

STC89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按下图所示方式连接。

晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在30pF左右。

根据实际情况,本设计中采用11.0592MHZ做系统的外部晶振。

电容取值为33pF。

图4-5晶振电路

4.6报警电路

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

图4-6报警电路

4.7显示电路

LCD1602液晶显示屏显示。

图4-7显示电路

4.8开锁电路

通过单片机开锁执行机构,发光二极管D1发光以替代达到开锁的目的。

图4-8开锁电路

开锁原理:

图4-9开锁原理

4.9电路总体构成

外围电路包括电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择LCD1602液晶显示屏来完成。

键盘输入模块和LCD1602液晶显示屏显示模块是最主要的两大模块,键盘主要是完成密码的输入、修改密码、消除密码等等任务。

而显示模块则是主要完成输入密码的显示以及密码输入正确或者错误的提示。

而剩余的就是报警模块、开锁模块以及单片机的最小系统。

图4-10总电路图

5软件程序设计

电子密码锁的软件设计是整个电子密码锁可靠安全运行的关键,密码锁软件程序分为主程序、延时程序、LCD1602液晶显示屏显示程序、修改密码程序、扫描键盘输入程序、报警程序。

密码通过矩阵键盘输入,并且在LCD1602液晶显示屏上显示,如果输入密码正确,则可以直接开锁。

如果不正确,并且3次以上输入不正确,则启动报警系统,触发蜂鸣器发声。

如果要修改密码,则需要在输入基础密码判别正确后,输入修改后的密码,通过系统确认后方可修改密码。

为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。

而本次设计分为四大模块,分别是键盘输入模块、LCD1602液晶显示屏显示模块、开锁和报警模块以及修改密码模块,通过主程序来实现控制。

5.1主程序流程介绍

主程序主要内容是各程序模块的调用,并利用各模块进行电子密码锁功能的实现,即是键盘输入密码并在LCD1602液晶显示屏显示密码,当密码输入完成后,单片机会将输入进的密码与原单片机内部所储存的密码进行对比,如若密码正确,则代表电磁吸合器的发光二极管会发光,同时LCD1602液晶显示屏会显示出正确的密码;如若密码错误,会启动计数器计数,当错误次数超过三次时,报警系统会启动即是蜂鸣器会发出报警声,以提醒保安。

流程图如图5-1所示。

图5-1主程序流程

5.2键盘模块流程图

键盘输入模块主要包含键盘的扫描、延时去抖、找到键值以及返回键值。

键盘扫描时循环的,程序编写是会使其进入是循环,这样可以检验出是否有按键按下,如果无按键按下就会进入等待有按键按下的状态,如果有按键按下的话就进入延时去抖的步骤,这样可以肯定的确定扫描到的按键是否被按下。

经过去抖之后就是确定按键的位置即是第几行和第几列,找到按键后,就是确定键值并返回按键值,每一次扫描到有键按下后,最后都要有释放闭合按键的步骤,这是为了避免影响下一次键盘的扫描和按键值的读取。

流程图如图5-2所示

图5-2键盘模块流程

按键的消抖子程序所示:

if(press_on!

=0XF0)//--按键消抖---(时间自定)

{

delay(50);

press_on=KEY_IO;

}

确定键值的子程序如下所示:

switch(row)

{

case0xe0:

row=0;break;

case0xd0:

row=1;break;

case0xb0:

row=2;break;

case0x70:

row=3;break;

}

switch(col)

{

case0x07:

col=0;break;

case0x0b:

col=1;break;

case0x0d:

col=2;break;

case0x0e:

col=3;break;

}

recieve=key_value[row][col];

}

5.3显示模块流程图

LCD显示模块的软件设计主要包含开始、初始化LCD、清除LCD、写LCD四个过程。

其中写包含写数据和写字符。

写数据的部分程序:

//写数(5位数据)

voidprintf_data(ucharrow,ucharcol,ucharcount,uintdat)

{

ucharsh1,sh2,sh3,sh4,sh5;

sh5=dat/10000;

sh4=dat%10000/1000;

sh3=dat%1000/100;

sh2=dat%100/10;

sh1=dat%10;

write_adr(0x0c);

switch(row)

{

case1:

row=0x80;break;

case2:

row=0xc0;break;

default:

break;

}

write_adr(row+col-1);

delay(500);

if(count>=5)

write_data(sh5+48);

if(count>=4)

write_data(sh4+48);

if(count>=3)

write_data(sh3+48);

if(count>=2)

write_data(sh2+48);

if(count>=1)

write_data(sh1+48);

写字符的小程序为:

//写一段字符

voidprintf_char(ucharrow,ucharcol,ucharInbuffer[31])

{

uchari;

write_adr(0x0c);

switch(row)

{

case1:

row=0x80;break;

流程图5-3如下:

图5-3显示模块流程图

5.4修改密码流程图

修改密码模块主要是在输入密码正确之后,按下14键即是修改密码键就能进入修改密码界面,其流程分为四个步骤,分别为按下14键并启动定时、输入修改的密码、按下确认键11键、LCD的显示。

修改密码的部分程序如下:

//改密码

voidch_word(void)

{

unsignedcharrecieve=0xff,b[10],j=0;

LCD_CLR();

printf_char(1,1,"new_password%d");

while(recieve!

=11)

{

recieve=keypad();

delay(10000);

if(recieve<=9&&recieve>=0)

{

b[j]=recieve;

printf_data(2,j+1,1,recieve);

j++;

}

elseif(recieve==12)

{

if(j!

=0)

{

a[j]='\0';

printf_char(2,j,"%d");

j--;

}

}

流程图如图5-4所示:

图5-4修改密码流程图

5.5开锁和报警模块流程图

开锁和报警模块主要任务是把从键盘输入到单片机的密码和本身保存在单片机中的密码进行对比,如果正确就开锁,如果错误的话就进行计数并显示在LCD液晶显示屏上,当输入密码的错误次数达到3次就进入报警模式,启动蜂鸣器报警。

其流程图如图5-5所示。

图5-5报警流程图

 

6电子密码锁的系统调试及仿真

6.1硬件电路调试及结果分析

硬件调试首先检查电路板焊接是否有误,检查有是否出现虚焊、漏焊、线路短接、元器件引脚是否错误焊接等等问题,然后检查电路中某些元器件是否起作用,最后利用一些小程序测试LCD1602是否完好无损。

检测单片机是否工作可通过观察示波器显示的波形是否衰减,或者利用万用表测一下18,19脚的电压,应该有个2-3V就说明起振了,另外,ALE如果有信号或者有电压也说明单片机工作了。

我采用利用万用表侧18、19脚的电压,其结果显示为2.3V。

检测电路有无虚焊可用万用表的二极管档来检测,当把万用表的红黑两表笔接触在焊接线路的两端后,万用表发出声音,则说明没有虚焊。

检查电路是否短路也是利用同一原理。

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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