单片机期末课程设计.docx

上传人:b****9 文档编号:26337078 上传时间:2023-06-17 格式:DOCX 页数:31 大小:345.55KB
下载 相关 举报
单片机期末课程设计.docx_第1页
第1页 / 共31页
单片机期末课程设计.docx_第2页
第2页 / 共31页
单片机期末课程设计.docx_第3页
第3页 / 共31页
单片机期末课程设计.docx_第4页
第4页 / 共31页
单片机期末课程设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

单片机期末课程设计.docx

《单片机期末课程设计.docx》由会员分享,可在线阅读,更多相关《单片机期末课程设计.docx(31页珍藏版)》请在冰豆网上搜索。

单片机期末课程设计.docx

单片机期末课程设计

第1节引言……………………………………………………………………………1

1.1电子密码锁概述………………………………………………………………1

1.2本设计任务和主要内容………………………………………………………2

第2节系统主要硬件电路设计………………………………………………………4

2.1设计方案的选择………………………………………………………………4

2.2电路总体构成…………………………………………………………………5

2.3单片机控制系统原理…………………………………………………………5

2.3.1键盘输入电路…………………………………………………………6

2.3.2复位电路………………………………………………………………7

2.3.3密码存储电路…………………………………………………………7

2.3.4晶振电路………………………………………………………………8

2.3.5电源输入电路…………………………………………………………9

2.3.6显示电路………………………………………………………………9

2.3.7报警电路………………………………………………………………10

2.3.8开锁电路………………………………………………………………10

第3节系统软件设计…………………………………………………………………12

3.1主要程序设计流程图…………………………………………………………12

3.1.1主程序流程图…………………………………………………………12

3.1.2键功能流程图…………………………………………………………13

3.1.3密码设置流程图………………………………………………………14

3.1.4开锁流程图……………………………………………………………15

3.2程序清单………………………………………………………………………15

第4节结束语…………………………………………………………………………24

参考文献…………………………………………………………………………25

 

基于单片机的电子密码锁

第1节引言

随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。

电子密码锁是由电子电路控制锁体的新型锁具,它采用触摸键盘方式输入开锁密码,操作方便。

触摸式电子锁的输入部分采用触摸开关(键盘输入),其优势在于传统的机械开关之出在于其保密性高,使用灵活性好,安全系数高,无活动零件,不会磨损,寿命长等受到了广大用户的亲呢。

出于安全、方便等方面的需要许多电子密码锁已相继问世。

但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。

而且卡片式IC卡还有易丢失等特点,加上其成本一般较高,一定程度上限制了这类产品的普与和推广。

在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。

本设计采用单片机AT89S51作为单片机的核心单元,设计了一款具有本机开锁和报警功能的电子密码锁,既简单又适用。

1.1电子密码锁概述

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

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

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

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

其特点如下:

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

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

2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。

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

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

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

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

在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以与一些个人资料的保存多以加锁的办法来解决。

目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。

由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。

随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展与人们对保密性需求的提高出现了越来越多的电子密码锁。

出于安全、方便等方面的需要许多电子密码锁已相继问世。

但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。

由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。

组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。

可以看出组合使用电子信息是电子密码锁以后发展的趋势。

1.2本设计任务和主要内容

本设计的任务采用单片机AT89S51作为单片机的核心单元,利用单片机串行发射、接收等功能而设计的一款具有本机开锁和报警功能的电子密码锁。

主要分为以下几个部分:

1)选择密码

将编好的密码程序存储在EPROM中,用户通过密码选择键进行选择。

具体操作过程如下:

首先按下密码选择键,然后在逐渐输入号码,最后按下确认键即可。

2)密码显示

为了帮助用户确认是否有键按下,特在电路中设置了模拟显示电路;而为了防止密码外泄;显示时,并不是显示用户按下的数字符号,而是以一个特定的字母符号提醒用户是否有键按下。

有键按下,就会显示出字符---“*”,没键按下,则不会显示字符。

这样既巧妙的提醒了用户又保护了用户密码,此乃本设计可靠性优点之一。

3)本机键开锁

当用户键入正确密码后,在按确认键,便会自动开锁。

但用户键入密码时应注意:

数字与数字之间的间隔时间为2分钟,例如密码为32796,当键入第一个数字3后应在2分钟内键入第二个数字2,否则,就会视为无效。

如果键入完密码后不按确认键系统会当做放弃开锁处理

4)密码错误报警

当用户键入错误密码时,系统就会报警,由扬声器发出5秒报警声。

当连续三次出现密码错误时,则系统会长期报警不止。

这时必须按复位方可停止。

此乃安全可靠性之一。

 

第2节系统主要硬件电路设计

2.1设计方案的选择

方案一:

采用数字电路控制

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。

采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。

方案二:

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

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

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

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

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

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

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

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

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。

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

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

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

可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。

 

2.2单片机控制系统原理

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

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

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

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

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

其原理框图如图2-1所示:

图2-1电子密码锁原理框图

2.3电路总体构成

在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成。

其原理图如图2-2所示:

图2-2电路原理图

2.3.1键盘输入电路

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

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

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

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

其大体功能(看键盘按键上的标记)与与单片机引脚接法如图2-3所示:

图2-3键盘输入原理图

2.3.2复位电路

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

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

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

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

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

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

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

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

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

由于R5<

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

图2-4复位电路原理图

2.3.3密码存储电路

用EPROM芯片AT24C02存储密码。

AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。

而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。

AT24C02中带有的片内地址寄存器。

每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。

所有字节均以单一操作方式读取。

为降低总的写入时间,一次操作可写入多达8个字节的数据。

I2C总线是一种用于IC器件之间连接的二线制总线。

他通过SDA(串行数据线)与SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。

AT24C02正是运用了I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。

主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。

无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。

AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。

其接线如图2-5所示:

图2-5密码存储电路原理图

2.3.4晶振电路

AT89S51引脚XTAL1和XTAL2与晶体振荡器与电容C2、C1按图2-6所示方式连接。

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

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

电容取值为20pF。

图2-6晶振电路原理图

 

2.3.5电源输入电路

密码锁主控制部分电源需要用5V直流电源供电,其电路如图2-7所示,把频率为50Hz、有效过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。

由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。

降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。

由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。

需通过低通滤波电路滤波,使输出电压平滑。

稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。

本电路使用集成稳压芯片7805解决了电源稳压问题。

图2-7电源输入电路原理图

2.3.6显示电路

为了提高密码锁的密码显示效果能力。

本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。

只有按下键盘上的开启按键后,显示器才处于开启状态。

同理只有按下关闭按键后显示器才处于关闭状态。

否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。

当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“RIGHT”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开。

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

其显示部分引脚接口如图2-8所示:

图2-8显示电路原理图

2.3.7报警电路

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

如图2-9所示:

图2-9报警电路原理图

2.3.8开锁电路

开锁控制电路的功能是当输入正确的密码后将锁打开。

系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。

用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。

只有用户操作键盘时,单片机的电源端才能得到3V电源,否则.单片机处于节电工作方式。

开锁步骤如下:

首先按下键盘上的开锁按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。

当用户输入一密码后,单片机自动识码,如果识码不符,则报警。

只有当识码正确,单片机才能控制电子锁内的微型继电器吸台。

当继电器吸台以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。

开锁以后,单片机自动清除掉由用户输人的这个密码。

如图2-10所示:

图2-10开锁电路原理图

 

第3节系统的软件设计

本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。

3.1主要程序设计流程图

3.1.1主程序流程图

 

图3-1主程序流程图

 

3.1.2键功能流程图

图3-2键功能流程图

 

3.1.3密码设置流程图

图3-3密码设置流程图

 

3.1.4开锁流程图

图3-4开锁流程图

3.2程序清单

;显示缓冲区

LED1EQU6FH

BUFFEQU6EH

TIMERS1EQU6DH;输入回车的次数

TIMERS2EQU6CH;报警的次数

LED6EQU6AH

;密码缓冲区

PS1EQU69H

PS2EQU78H

PS3EQU67H

PS4EQU66H

PS5EQU65H

PS6EQU64H

PS7EQU63H

PS8EQU62H

;AT24C02读取缓冲区

AT1EQU61H

AT2EQU60H

AT3EQU5FH

AT4EQU5EH

AT5EQU5DH

AT6EQU5CH

AT7EQU5BH

AT8EQU5AH

;按键标志位

F_0BIT20H

F_1BIT21H

F_2BIT22H

F_3BIT23H

F_4BIT24H

F_5BIT25H

F_6BIT26H

F_7BIT27H

F_8BIT28H

F_9BIT29H

CH_STATEBIT2AH;系统更改的状态标志位,为1表示busy

FLAG1BIT2BH;功能键标志位,为1表示功能按键。

F_F1BIT2CH

F_F2BIT2DH

PSW_FBIT2EH;密码是否正确的标志位

;口资源定义

SPKBITP2.1

WPBITP3.5

SDABITP3.6;定义串口数据端

SCLBITP3.7

ORG0000H

AJMPMAIN

ORG000BH

AJMPTIMER0

ORG001BH

AJMPTIMER1

ORG0030H

MAIN:

MOVSP,#70H

MOVTMOD,#11H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVTH1,#3CH

MOVTL1,#0B0H

CLRF_0;清除标志位

CLRF_1

CLRF_2

CLRF_3

CLRF_4

CLRF_5

CLRF_6

CLRF_7

CLRF_8

CLRF_9

CLRBUF_FULL

CLRCH_STATE

CLRFLAG1

CLRF_F1

CLRF_F2

CLRPSW_F

MOVBUFF,#00H;调用

LCALLINITPS;初始化环境

LCALLINITAT

LCALLXSA;调用默认显示

MOVTIMERS1,#00H

NOP

MOVPS1,#11H;初始化密码830620

MOVPS2,#0AH

MOVPS3,#02H

MOVPS4,#13H

MOVPS5,#0BH

MOVPS6,#02H

START:

NOP;程序开始

LCALLCH_KEY;检查键盘

AJMPSTART;返回

CH_KEY:

LCALLKS;检查有没有按键按下

JNZLK1

AJMPCH_KEY

LK1:

LCALLT12MS

ACALLKS

JNZLK2

RET

LK2:

NOP

LCALLSBIE;按键识别子程序

MOVBUFF,A;送缓冲区以识别是数字键还是功能键?

LCALLCH_KF;判断按键功能。

JBFLAG1,KEY_FUN;标志为1,则为功能键

;***************************

;*****显示子程序********

;***************************

;锁定状态显示。

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

;成功开锁状态显示

XSB:

PUSHACC

PUSHPSW

MOVA,TIMERS1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

JNBTI,$

CLRTI

MOVSBUF,#0FEH

JNBTI,$

CLRTI

MOVSBUF,#0FEH

JNBTI,$

CLRTI

MOVSBUF,#10H

JNBTI,$

CLRTI

MOVSBUF,#10H

JNBTI,$

CLRTI

MOVSBUF,#10H

JNBTI,$

CLRTI

POPPS

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

当前位置:首页 > 初中教育 > 语文

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

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