简易电子密码锁课程设计.docx

上传人:b****2 文档编号:3175249 上传时间:2023-05-05 格式:DOCX 页数:21 大小:81.68KB
下载 相关 举报
简易电子密码锁课程设计.docx_第1页
第1页 / 共21页
简易电子密码锁课程设计.docx_第2页
第2页 / 共21页
简易电子密码锁课程设计.docx_第3页
第3页 / 共21页
简易电子密码锁课程设计.docx_第4页
第4页 / 共21页
简易电子密码锁课程设计.docx_第5页
第5页 / 共21页
简易电子密码锁课程设计.docx_第6页
第6页 / 共21页
简易电子密码锁课程设计.docx_第7页
第7页 / 共21页
简易电子密码锁课程设计.docx_第8页
第8页 / 共21页
简易电子密码锁课程设计.docx_第9页
第9页 / 共21页
简易电子密码锁课程设计.docx_第10页
第10页 / 共21页
简易电子密码锁课程设计.docx_第11页
第11页 / 共21页
简易电子密码锁课程设计.docx_第12页
第12页 / 共21页
简易电子密码锁课程设计.docx_第13页
第13页 / 共21页
简易电子密码锁课程设计.docx_第14页
第14页 / 共21页
简易电子密码锁课程设计.docx_第15页
第15页 / 共21页
简易电子密码锁课程设计.docx_第16页
第16页 / 共21页
简易电子密码锁课程设计.docx_第17页
第17页 / 共21页
简易电子密码锁课程设计.docx_第18页
第18页 / 共21页
简易电子密码锁课程设计.docx_第19页
第19页 / 共21页
简易电子密码锁课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简易电子密码锁课程设计.docx

《简易电子密码锁课程设计.docx》由会员分享,可在线阅读,更多相关《简易电子密码锁课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

简易电子密码锁课程设计.docx

简易电子密码锁课程设计

江西理工大学应用科学学院

微机控制系统课程设计报告

题目:

简易电子密码锁

姓名:

学号:

专业班级:

指导教师:

完成时间:

设计报告

综合测试

平时

总评

格式

(10分)

内容

(10分)

图表

(5分)

功能测试

(35分)

答辩

(20分)

考勤

(20分)

指导教师签名:

第一章系统概述2

3.1.6报警器和发光二极管9

参考文献17

附录18

摘要

随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其的突出,传统的机械锁?

由于其构造的简单,被撬的事件也屡见不鲜,因此,人们在日常生活中越来越越离不开密码的使用。

在人们对安全的重视和科技的发展的同时,许多电子智能锁(指纹识别、IC卡辨认)已相继问世,但这类产品是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。

另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平和市场的接收程度,电子密码锁是这类电子防盗产品的主流。

基于以上思路,本次设计使用PHILIPS公司的P89C51实现——基于单片机的电子密码锁的设计。

?

关键字:

P89C51单片机?

密码?

电子锁?

?

with?

the?

improvement?

of?

people?

living?

standards,?

how?

to?

achieve?

security?

of?

this?

family?

also?

changed?

particularly?

prominent,?

the?

traditional?

mechanical?

lock?

because?

of?

its?

simple?

structure,?

the?

incident?

was?

nothing?

new.?

therefore,?

more?

and?

more?

people?

in?

their?

daily?

life?

is?

inseparable?

from?

the?

use?

of?

passwords.as?

people?

attach?

importance?

to?

security?

and?

the?

development?

of?

technology,?

at?

the?

moment,?

many?

Electronic?

smart?

lock(fingerprint?

IC?

card?

identification)has?

been?

published?

at?

home?

and?

abroad.?

However?

these?

products?

are?

characterized?

by?

specific?

and?

effective?

fingerprint?

cards,?

can?

only?

apply?

to?

the?

confidentiality?

requirements?

of?

the?

box,?

counter,?

doors,?

and?

so?

on.?

And?

fingerprint?

recognition?

knowledge?

for?

use?

in?

public?

places?

if?

there?

easily?

damaged?

machinery,?

C?

card?

there?

are?

still?

easily?

lost,?

damaged,?

and?

so?

on.?

Coupled?

with?

its?

high?

cost,?

to?

some?

extent,?

limited?

the?

popularity?

of?

such?

products?

and?

promotion.?

Given?

the?

current?

level?

of?

technology?

and?

the?

market?

reception?

of?

electronic?

code?

lock?

is?

such?

a?

mainstream?

electronic?

anti-theft?

products.Based?

on?

the?

above?

ideas,?

this?

design?

uses?

the?

P89C51?

PHILIPS?

achieve?

an?

electronic?

password—based?

SCM?

lock?

design.?

?

?

?

Key?

words:

?

P89C51SCM?

password?

electronic?

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数码显示部分

显示字符

共阴极段选码

显示字符

共阴极段选码

0

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设置新密码时黄灯绿灯同时亮

第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

#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>0;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>0;a--)

{

}

rled=~rled;

delay(1000);

}

else

{

alarm=0;

rled=1;

TR0=0;

t0=0;

break;

}

}

}

voidtimer0()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0++;

}

ucharkeyscan()

{

P3=0xfe;

temp=P3;

temp=P3&0xf0;

while(temp!

=0xf0)

{

delay(50);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xee:

{num=0;pressflag=1;}//11101110

break;

case0xde:

{num=1;pressflag=1;}//11011110

break;

case0xbe:

{num=2;pressflag=1;}//10101110

break;

case0x7e:

{num=3;pressflag=1;}//01111110

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xfd;

temp=P3;

temp=P3&0xf0;

while(temp!

=0xf0)

{

delay(50);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xed:

{num=4;pressflag=1;}

break;

case0xdd:

{num=5;pressflag=1;}

break;

case0xbd:

{num=6;pressflag=1;}

break;

case0x7d:

{num=7;pressflag=1;}

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xfb;

temp=P3;

temp=P3&0xf0;

while(temp!

=0xf0)

{

delay(50);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xeb:

{num=8;pressflag=1;}

break;

case0xdb:

{num=9;pressflag=1;}

break;

case0xbb:

{num=10;pressflag=1;}

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

returnnum;

}

voidinput()

{

while(num!

=10)

{

keyscan();

}

if(num==10)

{

pressflag=0;

yled=0;

for(i=0;i<8;i++)

{

while(!

pressflag)

{

keyscan();

}

pressflag=0;

temp=num;

if(temp!

=10)

{

if(!

editflag)

passt[i]=temp;

else

passw[i]=temp;

P0=table[num];

}

else

break;

}

yled=1;

cmpflag=~editflag;

delay(200);

P0=0;

num=0;

}

}

main()

{

i=0;

j=0;

lockflag=0;

editflag=0;

pressflag=0;

P0=0;

while

(1)

{

input();

if(cmpflag)

{

cmpflag=0;

for(j=0;j<8;j++)

{

if(passw[j]!

=passt[j])

{

if(wrong==2)

{

wrong=0;

lock();

}

else

{

gled=1;

rled=0;

alarm=0;

for(a=5000;a>0;a--)

{

}

delay(500);

rled=1;

alarm=1;

wrong++;

}

break;

}

else

{

if(j==7)

{

rled=1;

gled=0;

editflag=1;

input();

editflag=0;

gled=1;

wrong=0;

}

}

}

}

}

}

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2