电子密码锁文档.docx
- 文档编号:23244734
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:39
- 大小:366.74KB
电子密码锁文档.docx
《电子密码锁文档.docx》由会员分享,可在线阅读,更多相关《电子密码锁文档.docx(39页珍藏版)》请在冰豆网上搜索。
电子密码锁文档
单片机课程设计
课题:
电子密码锁
学院:
电气与信息工程学院
专业:
电子信息工程
姓名:
***
学号:
0934111**
指导老师:
贺伟田巍
河南城建学院
2013年01月01日
成绩评定·
一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。
二、评分
评分项目
设计报告评分
答辩评分
平时表现评分
合计
(100分)
任务完成
情况
(20分)
课程设计
报告质量
(40分)
表达情况
(10分)
回答问题
情况
(10分)
工作态度与纪律
(10分)
独立工作
能力
(10分)
得分
课程设计成绩评定
第一章设计目的
本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。
密码可以有用户自己修改设定,锁打开后才能修改密码。
修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。
第2章总体设计方案的确定
2.1电子密码锁设计的具体要求
(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。
(2)设计开锁密码位六位密码的电子密码锁。
(3)能够LCD显示在密码正确时显示PASSWORDOK,密码错误时显示PASSWORDERROR,输入密码时显示INPUTPASSWORD。
(4)实现输入密码错误超过限定的三次电子密码锁定。
(5)4×4的矩阵键盘其中包括0-9的数字键和A-F的功能键
(6)本产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。
(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
2.2总体设计方案选定
方案一:
采用数字电路控制。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。
故不采用。
方案二:
采用一种是用以AT89S51为核心的单片机控制方案。
选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。
其原理如下图2.1所示:
图2.1单片机控制密码锁原理图
可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案
第三章系统硬件设计
3.1单片机AT89S51简介
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
3.1.1主要特性
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
3.1.2引脚功能说明
图2.2单片机引脚图
Vcc:
电源电压
GND:
接地
P0口:
P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),Flash编程和程序校验期间,Pl接收低8位地址。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/0口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。
XTALl:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
液晶显示LCD1602的介绍
1、LM1602字符型模块的性能
重量轻:
<100g;
体积小:
<11mm厚;
功耗低:
10—15mW;
显示内容:
192种字符(5×7点字型);
32种字符(5×10点字型);
可自编8(5×7)或许(5×10)种字符;
指令功能强:
可组合成各种输入、显示、移位方式以满足不同的要求;
接口简单方便:
可与8位微处理器或微控制器相联;
工作温度宽:
0—50oC
可靠性高:
寿命为50,000小时(25oC)
2、基本原理
液晶体
液晶板上排列着若干5×7或5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。
工作电路
它由KS0066、KS0065及几个电阻电容组成。
KS0065是扩展显示字符用的(例如:
16个字符×1行模块就可不用KS0065,16个字符×2行模块就要用1片KS0065)接口方面,有8条数据,三条控线。
可与微处理器或微控制相连,通过送入数据和指令,就可使模块正常工作。
LCD驱动器和控制器
ALCD驱动器KS0065
KS0065是用低功耗CMOS技术制造的大规模LCD驱动IC。
它既可当行驱动用,也可以当列驱动用,由20×2Bin二进制移位寄存器、20×2Bin数据锁存器和20×2Bin驱动器组成
功能:
a40通道点阵LCD驱动;
b可选择当做行驱动或列驱动;
c输入/输出信号:
输出,能产生20×2个LCD驱动波型;输入,接受控制器送出的串行数据和控制信号,偏压(V1—V6);
特性:
a显示驱动偏压低:
静态~1/5;
b电源电压:
+5V+10%;
c显示驱动电源:
-5V;
dCMOS处理;
e60引脚、塑封;
BLCD控制器KS0066
见图4,KS0066是用低功耗CMOS技术制造的大规模点阵LCD控制器(兼带驱动器),和4Bin/8Bin微处理器相连连,它能使点阵LCD显示大小英文字母、符号。
应用KS0066,用户能有少量元件就可组成一个完整点阵LCD系统。
特性:
a容易和Bin/8BinMpu相连;
b可选择5×7或5×10点字符;
c显示数据RAM容量:
80×8Bin(80字符);
d字符发生器ROM能提供户所需字符库或标准库;字符容量:
192个字符(5×7点字符);32个字符(5×10点字符);
eDDRAM和CGRAM都能从Mpu读取数据;
f输出信号:
16个行扫信号(commonsingnal),40个列扫信号(sengmentsingnal)
g电源复位电路;
h显示占空比:
1/8duty(1Line,5×7dots+Cursor);1/11duty(1Line,5×10dote+Cuesor);1/16duty(2Line,5×7dots+Cuesir);
i振荡电路;
j指令:
11种;
k80引脚、塑封。
技术参数
a极限参数
b电参数
3.2硬件电路的设计
本设计单片机硬件资源的分配:
P0.0~P0.7用于LCD液晶显示作用。
P2.6、P2.7用于蜂鸣器和报警灯的控制。
P2.0用于开锁电路的控制。
P1.0~P1.7用于键盘电路的控制。
P3.3~P3.5用于LCD显示模块的控制端口的控制。
3.2.1最小系统的设计
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和开关复位。
图3.3即为手动(开关)复位电路。
图3.3手动复位电路
(2)复位后的状态
a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。
b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。
c、P0~P3口值为FFH。
P0~P3口用作输入口时,必须先写入“1”。
单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。
(3)WDT溢出将使该引脚输出高电平,所以本设计采用图3.4的手动复位电路:
图3.4本设计手动复位电路
AT89S51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3.5。
外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容Cl、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。
用户也可以采用外部时钟。
采用外部时钟的电路如图1所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
图3.5单片机自激震荡电路
由于单片机有内部振荡器,所以本设计采用图3.6的晶振电路:
图3.6晶振电路
3.2.2芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.2.3开锁机构
用户通过LCD提示信息,用键盘输入正确密码,从而达到开锁的目的。
当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
电路驱动和开锁两级组成。
由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。
D5作为开锁的提示;由D6、C24、T11组成。
其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。
T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
图3.7密码锁开锁机构电路图
3.2.4键盘设计
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理
把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理。
由於这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,
我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
图3.8为键盘整体模框图:
图3.8键盘整体模框图
3.2.5显示电路设计
显示设计采用字符型液晶屏设计,由单片机的p0口控制显示,由p3.3~p3.5控制lcd的控制端口。
本设计采用以下液晶显示设计:
图3.9LCD液晶显示电路抓图
第四章系统软件设计
因设计主要是作用汇编语言来开发的51单片机项目程序,所以首先必须有一个可以在WindowsXP或Windowsvista操作系统下执行的汇编语言编译器,本设计采用Keil编译器进行编程,因为它可以支持一系列的51单片机。
图4.1主程序的流程图
4.1主程序模块
主程序主要是完成系统初始化、设置中断向量、检查有无键按下、以及调用显示等等。
主程序部分如下所示:
enbitp3.5;将lcd的en管脚连接到单片机的p3.5口
rwbitp3.4;将lcd的rw管脚连接到单片机的p3.4口
rsbitp3.3;将lcd的rs管脚连接到单片机的p3.3口
displayequp0;将lcd的显示端口连接到p0口上
speakerbitp2.6;蜂鸣器连接到p2.6口
ledbitp2.7;与蜂鸣器共同作用的led灯连到p2.7口
openbitp2.0;开锁电路的控制端连接到p2.0口
returnbitbit20h.1;
ORG0000h;程序开始地址
LJMPstart;
ORG000bh;
LJMPintermit_t0;
ORG001bh;
LJMPintermit_t1;
ORG0030h;
start:
MOVsp,#60h;
lcallsys_initialization;调用子程序sys_initialization
4.2键盘扫描及识别子程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
其程序流程如图4.2所示
键盘部分程序如下:
key:
;键盘程序名称
callks;调用子程序ks
jnzk1;判断是否有键按下
jmpkey;跳回键盘程序
ks:
movp1,#0f0h;
mova,p1;
xrla,#0f0h;
ret;
图4.2键盘扫描程序流程图
4.3系统模块密码设置子程序
由于设计是分模块化进行,所以子程序是整体软件系统的组成部分,子程序不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,修改等,每个功能模块都有它自己的子程序,在本设计中是用LCD显示数据,所以就要用到显示子程序,设计中用的是矩阵键盘,所以就用到键盘扫描子程序,例如还有显示初始化子程序、LCD忙检测子程序、关闭状态显示子程序、开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序等。
如下图为密码修改子程序流程图
图4.3设置密码子程序
图4.7仿真成功密码正确
图4.8密码正确绿灯亮
第五章系统制作及调试
5.1焊接注意事项:
LCD的注意事项
1. 采用焊接方法将金属基PIN安装于LCD时,从玻璃末端到PCB的焊接位置的长度至少5mm,焊接温度必须在260℃以下,且焊接时间必须在10秒以内,以免焊接过程中对装置的损坏,确保焊接性能。
在230℃,30秒条件下,90%的焊料须紧密附着于PIN上。
2. 对LCD基板或基PIN焊接位置的调整必须在安装前完成。
严禁猛烈移动基PIN,否则会机械地破坏LCD屏与基PIN之间的连接点。
焊接时平放LCD,尽量不让LCD受力。
3. 焊接LCD基板时,将其小心、平衡地插入PCB插槽,以避免损坏基PIN或LCD基板。
4. 焊接时,LCD基板不应长时间置于焊锡蒸汽中,清洗PCB时,必须避免污染LCD基板,否则可能损坏显示器表面的偏光片及封口胶。
5. 显示器表面的保护膜直到焊接完成才可揭掉,禁止手指及其它硬物接触偏光片,禁止水和其他化学物质沾污装置,因为这些物质会污染显示器表面。
单片机焊接注意事项:
80s51单片机与其它单片机,dsp,arm芯片相比较而言是脆弱的,如果焊接时不小心就很可能把芯片损坏!
建议用比较好的恒温可调的烙铁,功率在30瓦左右,温度控制在260到300度,建议采用点焊而不用拉焊,焊接时烙铁放在每个引脚的时间不能太长(最好低于3秒)。
上边提到的方法还不能确保芯片完好,对芯片有危害的还有带电烙铁的静电感应!
烙铁质量不是太好的,焊接时可以把烙铁电源插头拔掉。
其他的电子器件焊接须知:
一般分四步骤进行。
①准备焊接:
清洁被焊元件处的积尘及油污,再将被焊元器件周围的元器件左右掰一掰,让电烙铁头可以触到被焊元器件的焊锡处,以免烙铁头伸向焊接处时烫坏其他元器件。
焊接新的元器件时,应对元器件的引线镀锡。
②加热焊接:
将沾有少许焊锡和松香的电烙铁头接触被焊元器件约几秒钟。
若是要拆下印刷板上的元器件,则待烙铁头加热后,用手或银子轻轻拉动元器件,看是否可以取下。
③清理焊接面:
若所焊部位焊锡过多,可将烙铁头上的焊锡甩掉(注意不要烫伤皮肤,也不要甩到印刷电路板上!
),用光烙锡头"沾"些焊锡出来。
若焊点焊锡过少、不圆滑时,可以用电烙铁头"蘸"些焊锡对焊点进行补焊。
④检查焊点:
看焊点是否圆润、光亮、牢固,是否有与周围元器件连焊的现象。
焊接流程按照附录
所示的电子密码锁的硬件联接原理图按下列顺序依次焊接:
(1)焊接单片机的晶振电路、复位电路等单片机的最小系统的外围电路。
(2)焊接LCD的相应管脚并把LCD的管脚单片机相连接。
(3)焊接键盘的按键电路。
(4)焊接电子密码锁的密码输入错误的报警电路。
(5)焊接密码锁的开锁机构电路。
(6)焊接其他接口及辅助电路。
(7)焊接接地及高电平。
5.2、硬件调试问题及解决方法
本设计在焊接调试时遇到的问题以及解决方法:
单片机的最小系统问题:
电源、晶振电路和复位电路都无异常。
Lcd焊接时的问题:
(1)接通电源后lcd无反应,各个引脚均属正常。
推断可能是初始化程序出现问题。
经查找得知是lcd显示器的15和16管脚控制背光功能,连接好之后还是不能显示字符。
(2)接通电源开门灯和报警电路就会工作,分析原因是单片机刚开始各个管脚输出高电平。
参考文献
[01]何宏主编.单片机原理与接口技术.北京:
国防工业出版社.2006.07
[02]杨西明,朱骐主编 .单片机编程与应用入门.北京:
机械工业出版社 .2004.06
[03]先锋工作室编著.单片机程序设计实例.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 文档