基于89C51电子密码锁设计.docx
- 文档编号:5783535
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:22
- 大小:492.97KB
基于89C51电子密码锁设计.docx
《基于89C51电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于89C51电子密码锁设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于89C51电子密码锁设计
电子密码锁设计报告
小组成员:
朱峰、郑东、王月雷、刘群
一、主要元器件分析…………………………………………………………………2
1、电阻类…………………………………………………………………………2
2、电容类…………………………………………………………………………2
3、二极管、三极管………………………………………………………………2
4、蜂鸣器…………………………………………………………………………2
5、4*4键盘…………………………………………………………………………2
6、LCD显示器………………………………………………………………………2
二、实验目的………………………………………………………………………10
三、功能要求和操作方法…………………………………………………………10
1、密码锁说明……………………………………………………………………10
2、功能要求………………………………………………………………………10
3、操作方法………………………………………………………………………11
四、口线分布及原理图……………………………………………………………11
1、连接线图………………………………………………………………………11
2、接口说明………………………………………………………………………11
3、接盘按键说明…………………………………………………………………12
4、电路原理图……………………………………………………………………12
五、实验电路图……………………………………………………………………13
1、实验硬件连线框图……………………………………………………………13
2、实验流程图……………………………………………………………………14
六、程序……………………………………………………………………………15
七、程序运行结果…………………………………………………………………15
八、元器件清单……………………………………………………………………17
九、实验体会和收获………………………………………………………………18
参考文献……………………………………………………………………………19
附件…………………………………………………………………………………20
一、主要元器件分析
1、电阻类:
本次设计中用到的电阻有一般电阻(200Ω,10KΩ,4.7KΩ)和排电阻(510Ω*10)。
2、电容类:
本次试验中用到的电容有点解电容,它是一种静态电荷存储介质可以吧电荷充存进去,在没有放电回路的情况下,刨除介质漏电自放电效应/电解电容比较明显,可能电荷会永久存在,它的用途较广,它是电子、电力领域中不可缺少的电子元件。
主要用于电源滤波、信号滤波、信号耦合、谐振、隔直流等电路中。
3、二极管、三极管:
根据实验电路图可知,当89C51向P2.4口送定点平时,由于二极管另一端接VCC高电平,此时二极管两端有电势差存在,所以此时二极管发光,相反,二极管熄灭。
三极管的三个口分别连接P2.5、地和继电器、蜂鸣器,此时三极管气电流放大作用,当P2.5输出低电平时,蜂鸣器响。
4、蜂鸣器:
同理,当P2.5输出低电平时,由于三极管导通,经三极管放大功能蜂鸣器工作。
5、4*4键盘:
此次实验中键盘系统采用的是行列式非编码键盘,这种键盘中,没根行线和列线的交叉处都接有一个按键,每当某个按键被按下时与这个按键相连的行线和列线就会接通,否则处于断开状态。
这种4*4行列式键盘只需要4条行线和4条列线,共需要8条I/O端口线。
在P1.4~P1.7口都为低电平时P1.0~P1.3置高电平,同时检测P1.0~P1.3是否都为高电平,若不都为高电平则说明有键按下。
因为当有键按下时,相应的端口接通都为低电平。
此时将行列高低电平互换,再检测P1.4~P1.7,判断是哪个键按下。
6、LCD显示器:
在日常生活中,我们对液晶显示器并不陌生。
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
在单片机的人机交流界面中,一般的输出方式有以下几种:
发光管、LED数码管、液晶显示器。
发光管和LED数码管比较常用,软硬件都比较简单。
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。
因此,液晶显示器画质高且不会闪烁。
液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
(1)、液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
(2)、液晶显示器的分类
液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。
除了黑白显示外,液晶显示器还有多灰度有彩色显示等。
如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)和主动矩阵驱动(ActiveMatrix)三种。
(3)、液晶显示器各种图形的显示原理
线段的显示
点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。
这就是LCD显示的基本原理。
字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。
这样一来就组成某个字符。
但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
汉字的显示
汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。
(4)、1602LCD主要技术参数
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
(5)、引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表6-1所示:
编号
符号
引脚说明
编号
符号
引脚说明
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
背光源负极
表6-1:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
(6)、1602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表6-2所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
表6-2:
控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
与HD44780相兼容的芯片时序表6-3如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
表6-3:
基本操作时序表
读写操作时序如图6-4和6-5所示:
图6-4读操作时序
图6-5写操作时序
(7)、1602LCD的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图6-6是1602的内部显示地址。
图6-61602LCD内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。
每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图6-7所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”
图6-7字符代码与图形对应图
(8)、1602LCD的一般初始化(复位)过程
延时15mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
以后每次写指令、读/写数据操作均需要检测忙信号
写指令38H:
显示模式设置
写指令08H:
显示关闭
写指令01H:
显示清屏
写指令06H:
显示光标移动设置
写指令0CH:
显示开及光标设置
(9)、硬件原理图
1602液晶显示模块可以和单片机AT89C51直接接口,电路如图6-8所示。
图6-8硬件原理图
二、实验目的
1、学习89C51的功能及编程方法。
2、掌握I/O口的使用方法及定时器的使用和计数初值的计算方法。
3、熟悉行列矩阵式按键键盘的两种程序方法,即行扫描法和行列翻转法。
4、初步掌握LCD1602液晶显示块的结构和显示方法。
5、了解运用继电器的原理和驱动大功率电器的连线方法。
6、学习KeilC51软件、调试和编译的使用方法
三、功能要求和操作方法
1、密码锁说明
本密码锁是利用8051单片机的控制结合1602LCD,设计的一个微电脑LCD密码锁,可以用在需要密码输入的场合中,例如要当门禁用时,需要实际配合电子门锁。
也可以设计在保险中做密码锁控制中。
本密码锁应用的知识主要有:
(1)、80514x4矩阵键盘扫描输入
(2)、1602LCD显示
(3)、密码比较处理的设计方法
(4)、定时器的使用
(5)、24c02的应用等
2、功能说明
(1)、使用LCD显示器来显示密码输入的相关消息及提示
(2)、可以设置6位数字(0-9)密码
(3)、内定另一组数字密码为:
000000
(4)、密码输入正确则继电器启动2s
(5)、密码输入正确或错误都有相应的声音提示
(6)、密码输入3次错误,系统将自动锁定,30分钟内不准使用,30分钟后自动开启
(7)、密码输入时,如果在10秒内没有按键,表示放弃本次输入,则自动跳出密码输入状态,进入欢迎界面
(8)、可以修改密码或用原始密码
(9)、断电后密码仍然存在(保存在24c02中)
(10、具有按键复位功能
3、操作方法
(1)、系统的启动
电子密码锁启动时,系统显示:
“Welcome!
^_^Pleasepassword”,即提示输入密码;当有键按下,且不是“*、#、A、B、C、D”键时,系统显示“PleasechooseA-PWB-CRTC-RT”;此时按下键“A、B、C”分别进入输入密码、修改密码和恢复出厂设置界面。
(2)、密码输入及功能选择
当按下“A”键,进入密码输入界面,系统显示“Inputpassword”即提示输入密码,用4行*4列小键盘输入6位密码(密码仅限于0~9)。
如果密码输入正确,则显示“——Passwordok!
——Thankyou!
——”,同时蜂鸣器响两次,继电器闭合,工作指示灯点亮;如果输入密码错误,则显示“==Sorry==Passworderror”,同时蜂鸣器报警(响四次),并返回初始界面。
如果连续三次密码输入错误,锁闭键盘30分钟。
(3)、修改系统密码
当按下“B”键时,进入密码修改界面,显示“Inputpassword”,如果密码输入正确,提示密码正确,显示“Inputnew_pass”,输入两次新密码,如果两次输入的密码一致即可实现更改密码,显示“New_passsetsuccess”不一致则显示“New_passsetfail”;若原密码输入不正确,则返回初始界面。
(4)、密码复位
如果用户忘记了密码,可以按C键进行密码复位。
若密码输入正确,系统显示提示内容分别为“PasswordReset”和“===Success===”,可以对密码进行复位。
四、口线分布及原理图
1、连接线图
LCM-----51LCM-----51 LCM------51
DB0-----P0.0DB4-----P0.4RS-------P2.0
DB1-----P0.1DB5-----P0.5RW-------P2.1
DB2-----P0.2DB6-----P0.6E--------P2.2
DB3-----P0.3DB7-----P0.7VLCD接10K电阻到GND
2、接口说明
P1口:
4x4矩阵键盘
P2.4工作指示灯
P2.5继电器控制端
P3.7蜂鸣器控制端
P3.324c02时钟端SCL
P3.424c02数据端SDA
3、接盘按键说明
|1|2|3|A|
-------------
|4|5|6|B|
-------------
|7|8|9|C|
-------------
|*|0|#|D|
键盘采用4*4矩阵式键盘,采用反线发确定键值。
注:
AT89S52使用12M晶振
4、电路原理图
五、实验电路图
1、实验硬件连线框图
图0实物接线图
2、实验流程图
六、程序
电子密码锁程序
七、程序运行结果
图1初始界面
图2密码输入界面
图3输入密码
图4密码输入正确
八、元器件清单
清单列表
器件名称
数量
规格
LCD液晶显示器
1
LCD1602
电阻
3
10KΩ
电阻
10
510Ω
电阻
1
200Ω
电阻
1
4.7KΩ
电容
2
30PF
电容
1
20UF
晶振
1
12M
按键
16
PNP三极管
1
9012
PNP三极管
1
8550
带自锁开关
1
不带自锁开关
1
通用板
1
LED白灯
1
LED红灯
1
89C51单片机
1
存储器
1
24C02
二极管
1
继电器
1
5V
蜂鸣器
1
九、实验体会和收获
朱峰:
这是我第二个做的课程设计了。
此次单片机的课程设计是以小组形式自行拟订的项目,所以更能让我们发挥自己的兴趣爱好。
我作为本小组的组长,组织调动组员的积极性,让每个成员能更好的配合和参与设计的过程,大家一起分享成果的艰辛和喜悦。
我主要对几大版块进行了分工:
电路原理图主要由刘群负责,焊接工作主要由郑东着手,部分程序编程和撰写报告主要由王月雷负责,我则对大部分工作进行参与和改善,大家一起对电路行进调试。
由于我们的时间和能力有限,所以有些预先设想的功能没有完成体现出来,这是我们一大缺陷。
但是我们尽了所能把密码锁的基本功能实现,为了使密码锁显示界面更加实用化,加入了液晶显示器,所以也相应地增加了设计的难度。
对于第一次与液晶模块打交道,为了避免型号的不匹配,我们对液晶的资料进行了很详细的调查,比如12864和1602这两种规格。
再拿到实物后针对1602这一型号再展开研究。
在整个星期的设计过程中,虽然工作量很大,过程也很枯燥,但是我们小组每个成员都竭尽所能地投入其中,这点让我很开心,我们一起攻克困难,一起挑战未知。
遇到了一些问题:
焊接时候的粗心导致了电路短路,对有些元器件不熟悉而遇到硬件电路连接和工作原理的差错,调试部分功能程序的问题和把程序结合起来的问题,等等。
我们通过借阅书本知识和网上搜索资源,还有大家不同理解的争论,对设计的成果有很大的帮助和成效。
此次课程设计对我们是一次理论结合实际的锻炼。
不仅考验我们对书本知识的综合掌握,还对我们的动手动脑能力进行了测试。
我们还熟悉掌握了一些相关的软件,比如protel99和keil仿真软件。
这对于我们日后的学习和工作带来了巨大的帮助,我希望吸取这次设计中的经验教训,能在下次设计中做的更好。
王月雷:
我们在刚刚听到课程设计这个陌生词时,感觉它仿佛离我们很遥远,只是觉得只有毕业生才会做毕业设计,如今我们也要做了。
因为是单片机课程设计,我们开始以为之后的工作会十分困难,但经过一个星期的共同工作、努力,我们发现其实它并非我们想象的那样枯燥乏味、困难重重,我们从开始的对一个个元器件都不了解到最后的把电路接好,程序设计好,期间我们又重新温习了课本上的知识,同时结合课外资料把一个个疑问逐一解决,真是有一种温故而知新的感觉。
通过这次课程设计,我们也深刻体会到实践的巨大作用。
有时对程序有不懂的地方时,我们可以很方便的根据自己的想法修改程序,再通过检查程序的运作结果来检查验证的正误,有时不经意间会有闪光点出现,另外,在这整个过程中,同组的组员也相互团结,共同做好每个细节,虽然有时矛盾在所难免,但我想大家的目的都是一致的,
通过这次电子密码锁的设计给我最大的收获是学会了LCD1602液晶显示器的原理和使用方法,懂得了液晶线段的显示、字符显示、汉字显示……
在试验中遇到了一系列问题,如:
焊接电路板时分不清元器件的正负极?
解决方案,放光二极管可以根据引脚线的长短判断,唱的一段为正极,蜂鸣器的正负极也一样判断;按数字键是,抗干扰性能差,有时出现消键情况等。
解决方案,通过查看程序,发现程序中延时程序延时太短,通过适当加长延时时间,这个问题才得到解决。
总之在通过我们四个组员的共同努力,解决了遇到的一系列问题,并成功实现原定计划,并在此过程中学到了很多东西。
参考文献
1、宋彩利,《单片机原理与C51接口编程》,西安交通大学出版社,2008.6
2、夏继强,沈德金等.《单片机实验与实践教程》,北京航天大学出版社,2004年1月出版
3、王新颖.《单片机原理及应用》,北京大学出版社,2008年1月出版
4、喻萍,郭文川.《单片机原理与接口技术》,化学工业出版社,2005年12月出版
附件
附件1:
89C51单片机引脚图:
附件224C02引脚图
附件3LCD16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C51 电子 密码锁 设计