简易电子密码锁课程设计之欧阳美创编Word文件下载.docx
- 文档编号:17053400
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:25
- 大小:949.17KB
简易电子密码锁课程设计之欧阳美创编Word文件下载.docx
《简易电子密码锁课程设计之欧阳美创编Word文件下载.docx》由会员分享,可在线阅读,更多相关《简易电子密码锁课程设计之欧阳美创编Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
摘要
随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其的突出,传统的机械锁
由于其构造的简单,被撬的事件也屡见不鲜,因此,人们在日常生活中越来越越离不开密码的使用。
在人们对安全的重视和科技的发展的同时,许多电子智能锁(指纹识别、IC卡辨认)已相继问世,但这类产品是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。
另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平和市场的接收程度,电子密码锁是这类电子防盗产品的主流。
基于以上思路,本次设计使用PHILIPS公司的P89C51实现——基于单片机的电子密码锁的设计。
关键字:
P89C51单片机
密码
电子锁
with
the
improvement
of
people
living
standards,
how
to
achieve
security
this
family
also
changed
particularly
prominent,
traditional
mechanical
lock
because
its
simple
structure,
incident
was
nothing
new.
therefore,
more
and
in
their
daily
life
is
inseparable
from
use
passwords.as
attach
importance
security
development
technology,
at
moment,
many
Electronic
smart
lock(fingerprint
IC
card
identification)has
been
published
home
abroad.
However
these
products
are
characterized
by
specific
effective
fingerprint
cards,
can
only
apply
confidentiality
requirements
box,
counter,
doors,
so
on.
And
recognition
knowledge
for
public
places
if
there
easily
damaged
machinery,
C
still
lost,
damaged,
Coupled
high
cost,
some
extent,
limited
popularity
such
promotion.
Given
current
level
technology
market
reception
electronic
code
a
mainstream
anti-theft
products.Based
on
above
ideas,
design
uses
P89C51
PHILIPS
an
password—based
SCM
design.
Key
words:
P89C51SCM
password
locks
第一章系统概述
本次设计使用P89C51单片机实现简易电子密码锁的设计,其主要具有如下功能:
1.设8置位密码,密码通过键盘输入,此时黄灯亮,若密码正确则绿灯亮。
2.密码可以由用户自己修改设定,绿灯亮后后才能修改密码。
在输入新密码时候需要确认,以防止误操作。
3.报警、锁定键盘功能。
密码输入错误红色发光二极管和蜂鸣器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
电子密码锁的设计主要由三部分组成:
3×
4矩阵键盘接口电路、密码锁的控制电路、输出数码显示电路。
另外系统还有LED提示灯,报警蜂鸣器等。
密码锁设计的关键问题是实现密码的输入、确认、更改等功能:
1.密码输入功能:
按下数字键,输入密码长度。
2.密码确认功能:
当按下确认键时,表示密码输入完成。
3.密码设置功能:
将输入的值作为新的密码。
主要的设计实施过程:
首先,选用单片机P89C51,以及选购其他电子元器件。
第二步,使用DXP2004设计硬件电路原理图,并设计PCB图完成人工布线(后因时间和材料准备不充分,所以没做出实物)。
第三步,使用KeiluVision4软件编写单片机的C语言程序、仿真、软件调试。
第四部,使用PROTEUS软件进行模拟软、硬件调试。
最后,联合软、硬件调试电路板,完成本次设计。
第二章基本功能设计
2.1实验任务
通过对本题目的设计掌握单片机控制系统设计的相关方法与技巧。
用P89C51RC2HBP设计一个简单电子密码锁,完成密码的识别功能。
2.2基本设计要求
2.2.1基本要求
(1)设置(0~9)十个按键和一个设置/确认按键,当系统正常工作时可通过设置/确认按键修改密码,使用时初始密码为12345678,随后可任意设置密码。
(2)当密码输入正确时,用一个发光二极管和蜂鸣器作为指示。
当密码输入错误时,则提示密码输入错误。
(3)当密码连续输入错误3次后锁定键盘,锁定时间为1分钟。
2.2.2发挥部分
不改变硬件电路,增加蜂鸣器音乐输入功能,即编出三种音乐分别对应密码输入正确、输入错误和键盘锁定三种状态。
2.3主要元件介绍
2.3.1P89C51芯片
P89C51RB2/RC2/RD2具有16K/32K/64K并行可编程的非易失性FLASH程序,存储器并可实现对器件串行在系统编程ISP和在应用中编程(IAP)在系统编程ISP(In-System
Programming)。
当MCU安装在用户板上时允许用户下载新的代码,在应用中编程IAP(In-Application
Programming),MCU可以在系统中获取新代码并对自己重新编程。
这种方法允许通过调制解调器连接进行远程编程片内ROM中,固化的默认的加载程序,Boot
Loader允许ISP通过UART将程序代码装入Flash存储器而Flash代码中,则不需要加载程序对于IAP用户程序擦除和重编程。
Flash
Memory的操作是通过使用片内ROM中的标准程序该器件的1个机器周期由6个时钟周期组成因此运行速度是传统80C51的2倍一个OTP配置位可让用户选择传统的12时钟周期该系列单片机是80C51微控制器的派生器件是采用先进CMOS工艺制造的8位微控制器指令系统与80C51完全相同有4组8位I/O口3个16位定时/计数器多个中断源4个中断优先级嵌套中断结构个增强型UART片内振荡器及时序电路新增的特性使得89C51RB2/RC2/RD2成为功能更强大的微控制器更好地支持应用于脉宽调制高速I/O递增/递减计数能力如电机控制等场合。
图2.1P89C51的DIP封装及管脚功能
2.4系统框图
图2.2系统框图
第三章硬件设计
3.1硬件电路的设计
3.1.1硬件工作接线口
P0口接数码管,用来显示按键是否按下,P1口接报警器和发光二极管。
P3口接3x4矩阵键盘,分别为(0~9)和设置/确认按键。
3.1.2LED显示器结构与原理
LED显示块是由发光显示二极管显示字段的显示器件。
在单片机中我们通常用七段LED,这种显示共有共阴极和共阳极两种,本设计是用共阴极,如图3.1所示。
图3-1LED数码显示部分
显示字符
共阴极段选码
3FH
A
77H
1
06H
B
7CH
2
5BH
C
39H
3
4FH
D
5EH
4
66H
E
79H
5
6DH
F
71H
6
7DH
7
07H
8
7FH
9
6FH
表3.1LED显示块
通常的七段显示块中共有8个发光二极管,其中7个发光二极管构成七笔字形“8”,一个发光二极管构成小数点。
七段显示块与单片机接口非常容易。
只要将一个8位并行输出与显示块的发光二极管引脚相连即可。
8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。
3.1.3复位电路
图3.2复位电路
时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图3.2)。
3.1.4振荡电路
图3.3振荡电路
本设计晶振选择频率为12MHZ,电容选择22pF,如图3.3所示。
3.1.5按键设置
按键方式有独立式和行列式两种,本设计是采用行列式,共设置12个按键。
能减少键盘与单片机接口时所占用的I/O线的数目。
如图所示:
S1~S10分别为0~9数字按键,S11为设置/确认按键。
如图3-4,当没有键按下时,行线和列线之间是不相连的,若第N行与第M列的键被按下,那么第N行与第M列的线就被接通。
本系统的键盘扫描方法是利用P3口的低四位作为行扫描线,P3口的高四位作为列回扫线。
具体实施方法为:
先使P3.0口输出低电平,P3口其他口输出高电平,然后对P3.4、P3.5、P3.6三个口分别作判断。
若此三口都为高电平,则没有键按下;
若有键按下,P3.4、P3.5、P3.6三个口必定有一个口输入为低电平,再判断P3.4、P3.5、P3.6哪个口为低电平则可判断按键在哪列上。
如P3.4、P3.5、P3.6没有低电平,再使P3.1为低电平,其他口为高电平,依次扫描下去,找到按键所在的行,再判断P3口的高四位哪一位为低,便可知道键在哪一列上。
图3.4按键设置
3.1.6报警器和发光二极管
图3.5报警器与发光二极管
如果按下设置/确认按键,则黄灯亮。
当密码输入正确时,绿灯亮。
输入密码错误时,红灯亮且蜂鸣器响。
当第三次输入错误时,锁定键盘一分钟。
3.2硬件电路图
图3.6硬件电路Protel图
图3.6硬件电路PCB图
图3.7硬件电路PCB3D图
第四章软件设计
本系统程序部分使用C语言编写,C语言是一种高级程序设计语言,它的优点是简洁明了、可移植性高。
主要完成,先按下设置/确认键输入密码,系统会将所输入与系统密码进行比对。
若输入密码正确则绿灯亮。
然后可以任意设置密码。
每设置完一次都要按确认键。
期间操作出现失误,红灯亮蜂鸣器响,操作错误超过3次,系统会锁定键盘一分钟,并报警用以防止恶意试探密码。
4.1系统软件设计
本系统软件设计由主程序、初始化程序、数码显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。
主要程序设计流程图如下所示:
设置/确认键
图4.1程序设计流程图
图4.2开锁流程图
4.1.1密码开锁功能
本系统使用数组PASSW[]存储密码,系统初始化对数组赋值PASSW[]={1,2,3,4,5,6,7,8}。
输入密码的时候,先将输入的每一位密码分别放置在数组PASST[]中,然后再将PASST[]与PASSW[]的每一位分别对照。
若每一位都相等,密码检查通过。
第五章系统PROTUSE仿真图
图5.1PROTUES仿真图
图5.2PROTUES仿真加载HEX文件
在下图中,当按下设置/确认键时,黄灯亮,然后输入密码。
如密码输入正确,则绿灯亮。
如输入错误,红灯亮且蜂鸣器响。
当出现三次错误时,同时要锁定键盘一分钟。
经调试,所需要的功能都能实现。
图5.3按下设置/确认键黄灯亮
图5.4密码正确时绿灯亮
图5.5当密码错误时红灯亮
图5.6设置新密码时黄灯绿灯同时亮
第六章设计总结
通过这次课程设计,掌握了单片机的一些基本知识,并将计算机控制以及所有关知识联系起来,本来有些原理还是懵懂的,但是在找电子密码锁的基本知识时,我发现只有动手做才会掌握一些技巧。
通过这次的设计,我们熟悉并熟练掌握了Protel和Protues的技巧;
在C语言程序设计中,学到了如何使用C语言对单片机进行编写程序,熟悉了使用KEIL软件,并且加深了对单片机的编程技巧。
在做这个设计的过程中,我遇到了不少的问题。
这锻炼了我们筛选、查阅资料,并将理论结合到自己的设计中的能力。
一步一步的排除故障原因,找到故障的原因并解决故障。
这次的设计使我们对模拟电子、数字电子知识加深了了解,尤其是在对电路进行调试以及对C语言程序的编写和调试的时候,出现了很多这些方面的问题,通过对以往知识的复习巩固,将问题解决。
在此设计中,学到了很多知识,不仅对于技术有了更深入的学习,而且对于一个项目的完成的工作时序、任务分配也有了一定的了解。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
这次课程设计终于顺利完成了,在设计中遇到了些问题,最后在老师和各位同学的辛勤指导下终于解决了。
我们学得到很多实用的知识,在此表示感谢!
同时,对给过我们帮助的所有同学和指导老师再次表示忠心的感谢!
参考文献
[1]当方.微型计算机控制技术[M].中国水利水电出版社,2001年
[2]胡汉才.单片机原理及其借口技术[M].清华大学出版社,1996年
[3]赵新民.智能仪器设计基础[M].哈尔滨工业大学出版社,1999年
[4]潘新,民王,燕芳.微型计算机控制技术[M].电子工业出版社,2003年
[5]李钟实.实用电子报警器精选百例[M].北京:
科技技术文献出版社,2002年
[6]陈爱弟.Protel99se实用培训教程[M].人民邮电出版社,2000年。
[7]阎石.数字电子技术基础[M].高等教育出版社,1998年
[8]童诗白.模拟电子技术基础[M].高等教育出版涉,1998年
附录
1.源程序
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
uchari,j,num,temp,wrong;
ucharpassw[]={1,2,3,4,5,6,7,8};
ucharpasst[]={0,0,0,0,0,0,0,0};
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f,0};
bitlockflag;
biteditflag;
bitcmpflag;
bitpressflag;
sbitalarm=P1^3;
sbitrled=P1^0;
sbitgled=P1^1;
sbityled=P1^2;
uintt0,a;
ucharright;
voiddelay(uintz)
{uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voidlock()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while
(1)
{if(t0<
1200)
{
alarm=0;
for(a=2000;
a>
a--)
}
rled=~rled;
delay(1000);
else
rled=1;
TR0=0;
t0=0;
break;
voidtimer0()interrupt1
{
t0++;
}
ucharkeyscan()
P3=0xfe;
temp=P3;
temp=P3&
0xf0;
while(temp!
=0xf0)
delay(50);
if(temp!
switch(temp)
case0xee:
{num=0;
pressflag=1;
}//11101110
case0xde:
{num=1;
}//11011110
case0xbe:
{num=2;
}//10101110
case0x7e:
{num=3;
}//01111110
while(temp!
temp=temp&
P3=0xfd;
temp=P3;
temp=P3&
case0xed:
{num=4;
case0xdd:
{num=5;
case0xbd:
{num=6;
case0x7d:
{num=7;
P3=0xfb;
case0xeb:
{num=8;
case0xdb:
{num=9;
case0xbb:
{num=10;
returnnum;
voidinput()
while(num!
=10)
keyscan();
if(num==10)
pressflag=0;
yled=0;
for(i=0;
i<
8;
i++)
while(!
pressflag)
temp=num;
if(!
editflag)
passt[i]=temp;
passw[i]=temp;
P0=table[num];
yled=1;
cmpflag=~editflag;
delay(200);
P0=0;
num=0;
main()
i=0;
j=0;
lockflag=0;
editflag=0;
input();
if(cmpflag)
cmpflag=0;
for(j=0;
j<
j++)
if(passw[j]!
=passt[j])
if(wrong==2)
wrong=0;
lock();
gled=1;
rled=0;
for(a=5000;
delay(500);
alarm=1;
wrong++;
else
if(j==7)
gled=0;
editflag=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 电子 密码锁 课程设计 欧阳 创编