数字式密码电子锁电路.docx

上传人:b****6 文档编号:5680470 上传时间:2022-12-31 格式:DOCX 页数:33 大小:552.72KB
下载 相关 举报
数字式密码电子锁电路.docx_第1页
第1页 / 共33页
数字式密码电子锁电路.docx_第2页
第2页 / 共33页
数字式密码电子锁电路.docx_第3页
第3页 / 共33页
数字式密码电子锁电路.docx_第4页
第4页 / 共33页
数字式密码电子锁电路.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数字式密码电子锁电路.docx

《数字式密码电子锁电路.docx》由会员分享,可在线阅读,更多相关《数字式密码电子锁电路.docx(33页珍藏版)》请在冰豆网上搜索。

数字式密码电子锁电路.docx

数字式密码电子锁电路

课程设计任务书

学生姓名:

柯一凡专业班级:

通信1102

指导教师:

许建霞工作单位:

信息工程学院

题目:

数字式密码电子锁电路设计

初始条件:

Protel软件、PC机和相关的参考书籍如:

1.Protel99入门与提高.赵品编著.人民邮电出版社.2000.11

2.Protel99高级应用.赵品编著.人民邮电出版社.2000.11

3.Protel99SE电路设计与仿真应用

要求完成的主要任务:

1、绘制具有一定规模、一定复杂程度的电路原理图*.sch(自选)。

可以涉及模拟、数字、高频、单片机、或者一个具有完备功能的电子电路系统。

(注意:

电路选择不可过分简单,元件种类(包括电源和信号源)少于5种;或者元件个数少于10个将导致不及格。

2、绘制相应电路原理图的双面印刷版图*.pcb

3、

对电路原理图进行仿真,给出仿真结果(如波形*.sdf、数据)并说明是否达到设计意图。

(注意:

仿真提倡对所绘制的原理图*.sch进行全面仿真,如果不能做到全面仿真成功,则要说明原因,但要完成局部电路的仿真。

时间安排:

序号

设计内容

所用时间

1

选择合适的电路

1天

2

用Protel绘制相应的电路双面印刷版图,并仿真

3天

3

总结编写课程设计报告

1天

合计

1周

指导教师签名:

2014年6月10日

系主任(或责任教师)签名:

2014年6月10日

摘要

本系统以STC89C52单片机最小系统为核心,结合矩阵键盘、1602LCD和报警系统组成。

系统能完成锁闭状态显示、密码输入错误超次(大于三次)异常,系统锁定声光告警、初始化设置用户密码等基本的密码锁的功能。

除上述基本的密码锁功能外,依据实际的情况还可以添加通过超级密码重置密码、键盘背光与通过背光显示密码、系统产生随机密码等扩展空间。

ProtelDXP6将项目管理方式、原理图和PCB图的双向同步技术、多通道技术、自动布线技术以及强大的电路仿真的技术完美的融合在一起。

ProtelDXP提供了丰富的元件库,包括原理图符号。

PCB封装、SI模型及仿真模型,可以方便地进行同步修改。

这次课程设计主要要求掌握原理电路图设计、PCB设计和仿真。

关键词:

ProtelDXP,PCB设计,电子密码锁,STC89C52,液晶显示

 

Abstract

ThesystemSTC89C52microcomputerasthecore,combinedwithmatrixkeyboards,1602LCDandalarmsystemcomponents.Systemcancompletethelockstatusdisplay,thepasswordinputerrorandUltra(morethanthreetimes)abnormalsoundandlightalarmsystemlock,initializedtosetuserpasswords,andotherbasiclockfunction.Inadditiontothebasiclockfunction,basedontheactualsituationcanalsobeaddedthroughsuperpasswordresetyourpassword,keyboardbacklightandpasswordthroughthebacklitdisplay,thesystemgeneratesrandompasswordsforexpansion.

ProtelDXP6combineProjectmanagement,thePCBandschematicmapofthetwo-waysynchronizationtechnology,multi-channeltechnology,automaticroutingtechnologyandastrongcircuitsimulationtechnologytogetherperfectly.ProtelDXPprovidesarichlibrary,includingtheprincipleofsymbols.PCBpackage,SImodelandsimulationmodelcaneasilysynchronizeedits.Themaindemandsofthecurriculumdesignmasterprinciplecircuitdesign,PCBdesignandsimulation.

Keywords:

ProtelDXP,PCBdesigntools,electroniccodelock,STC89C52,liquidcrystaldisplay

 

1设计任务与要求

1.1设计任务

设计一个以单片机AT89C52为主控芯片,结合外围电路,组成电子密码锁。

用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为提高安全性,当密码输入错误三次将报警。

密码可以由用户自己修改设定,锁打开后才能修改密码。

修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。

完成密码锁的功能。

1.2设计要求

(1)使用protel制作数字式密码电子锁的电路原理图

(2)使用protel制作数字式密码电子锁的PCB图

(3)使用Protuse对数字式密码电子锁电路进行仿真

 

2原理分析

2.1单片机控制原理

本次设计选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁信号判断、状态保存、电平控制的功能。

设计从总体可以分为硬件和软件两个部分。

在硬件部分中,由单片机最小系统、矩阵键盘、1602液晶显示、声光显示这几个部分,其相关控制如图2-1;在软件部分中,由矩阵键盘键值读取、1602液晶显示函数、延时模块、密码读取模块、密码设置模块、密码比较模块、声光状态模块等几部分组成。

 

 

图2-1硬件模块关系

2.2模块硬件电路分析

2.2.1单片机最小系统

此为一个单片机最小系统,其有P0~P3四组I/O口,可以进行相关的电平状态读取与控制操作。

开关SW_RST为复位开关,当其接通,单片机RST9复位端至于高电位,满足一定时长后,单片机会进行复位操作,重新开始工作。

Y1、C1.2、C1.3组成了单片机的振荡电路,为单片机系统提供稳定可靠地时钟信号,协助单片机完成相关操作。

Header9为一组排阻,座位上拉电阻。

由于STC89C52使用串口方式下载程序,因此需要使用MAX232完成程序下载的处理工作。

图2-2单片机最小系统原理图

图2-3串口电路

2.2.2键盘矩阵

设计准备使用4×4键盘,对应的电路如图2-4所示。

0~9输入相应的数字。

在输入密码是L\R分别实现输入位置的左右移动,B为退格键,C为清除键,清楚当前所有的输入字符,S为功能扩展键,暂时未定义,E为确认键。

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

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

图2-44×4键盘矩阵

 

2.2.3LCM1602液晶显示

图2-5为1602液晶的引脚分布。

1,2为液晶显示供电,3接滑动变阻器改变3的相对电位,调节显示对比度。

4,5,6为液晶的控制端,调节工作状态。

7~14为液晶的数据输入端,15、16为液晶背光的电源接口。

17,18可以悬空不接。

图2-5LCM1602液晶显示

2.2.4声光显示

光显示有红绿两种颜色的发光二极管组成,负极接单片机引脚,正极结一个限流电阻后接地。

当单片机输出高电平,其不亮,当单片机输出低电平,二极管点亮。

声信号告警有长鸣蜂鸣器与一个三极管、电阻组成,三极管在单片机的控制下驱动蜂鸣器正常工作。

长鸣蜂鸣器,在给予有效电平时可以不间断的以一定的频率发出蜂鸣。

 

图2-6蜂鸣器工作电路

 

3电路原理图绘制

3.1DXP绘制电路原理图

进入ProtelDXP2004后,依次点击工具栏上的File/New/PCBProject,新建一个后缀名为prjPCB的工程文件。

图3-1新建prjPCB工程文件

接下来在刚建立的prjPCB的工程文件下点击File/New/Schematic新建一个后缀名为SchDoc的原理图,建立原理图与工程的关联。

图3-2新建原理图

在绘制原理图时,ProtelDXP2004在工具栏上提供了常用元件的快捷方式,例如电阻、电解电容、瓷片电容以及常用的与、或、非等组合逻辑门,使用起来很方便。

如果要使用其他元件则可以使用Place/Part命令打开元件选择窗口。

若使用的是比较基本的元件可以在ProtelDXP2004默认提供的元件库MiscellaneousDevices.lntLib中直接浏览。

ProtelDXP2004将元件的原理图符号,元件描述、封装号以及SI仿真模型都集中在一起显示,使用起来很方便,也在一定程度上避免了Protel99SE中不知道元件封装号的问题。

如果需要修改,可以在ModelName框中自行修改。

图3-3添加元件

如果是寻找不那么常用的元件可以在元件库管理器中选择Libraries/Search/SearchLibraries命令,再输入元件名称查找。

根据电路要求可以在DXP中加载相应的元件库,DXP中带有非常丰富的元件库,并且按照芯片的生产公司的名称分开放置,便于查找。

如果没有相应的元件,还可以通过PCB库文件编辑器来自己编辑。

图3-4加载元件库

在依照电路安放好所有元件之后再开始连线。

点击工具栏上的placewire图标进行连线操作,将各元件的引脚连接起来。

在连线时需要注意导线交叉时是否导通的问题。

如图3.5所示,第一条水平导线与竖直导线导通,但在绘图时经常忽略这一点,处理成第二条水平线。

所以在画图时应该在连接处用Place菜单下的ManualJunction工具添加一个电气结点。

图3-5连线时的结点处理

完成所有连线之后,选择File/New/TextDocument命令,开启一个数据库文本;再选择Project/ProjectOptions命令设置工程检查参数,在执行Project/CompileDocument检查系统错误。

如果提示错误则返回修改原理图,如果没有错误,则选择Design/NetlistForDocument/Protel命令生成网络表。

图3-6数字式密码电子锁原理图

3.2DXP绘制PCB图

3.2.1加载网络表

生成网络表之后,就进入了PCB板绘制的阶段。

选择File/New/PCB生成一个后缀为PcbDoc的文件。

PCB板分为很多层,主要有Top-Layer、Bottom-Layer、Mechanical、TopOverlay、Keep-Out-layer和Multi-Layer。

按步骤设置PCB板的Mechanical物理边界以及Keep-OutLayer电气边界。

先执行Design/BoardSharp/RedefineBoardSharp命令,此时光变变成十字形。

然后在Mechanical层面上划定PCB板的物理边界,最后在禁止布线层(Keep-OutLayer)上面划定电器边界。

在正确设置完成PCB板之后,在PcbDoc文件下选择Design/ImportChangesFrom命令加载网络表(或者在SchDoc文件下选择Design/UpdatePCBDocument命令),屏幕上显示详细的网络连接信息。

点击ValidateChanges按钮可以检查装入的元件封装、电器规则以及元件的网络连接是否正确,如果正确,屏幕上将显示绿色打勾标记。

再点击ExecuteChanges按钮完成元件网络表的加载。

3.2.2PCB板的排版

网络表加载完成之后,PCB根据网络表产生预拉线,在屏幕上会出现排列整齐的所有元件以及设置过的PCB板,然后PCB根据预拉线一条一条变为铜膜走线。

选定所有的元件拖至PCB板上,执行Tools/AutoPlacement/AutoPlacer/ClusterPlacer命令,DXP开始自动排版。

一般来说DXP的自动排版后的PCB板已经比较理想了,但是仍然可以手动排版进行进一步美化。

图3-7PCB手动排版

3.2.3PCB板的布线

在元件排版完毕之后,就可以进入到最后的布线阶段。

ProtelDXP2004沿袭了Protel99SE强大的自动布线功能,不仅布线快速而且合理,通过率很高。

我们可以执行AutoRoute/All命令,选择Default2LayerBoard选项,再点击RouteAll完成双层PCB板的布线。

 

图3-8DXP自动布线后的PCB板

DXP在完成自动布线之后显示一共布线总数,并且全部成功,至此基于DXP的PCB板设计全部制作完成。

3.3.4PCB板的覆铜

选择工具栏上的

按钮,将弹出一个对话框,如图3-9所示,在ConnecttoNet中选择GND点击OK,鼠标将变成光标,用光标将需要覆铜的区域圈起来,则得到覆铜后的顶层图,如图3-9所示,在设计工作区的板层标签选中BottomLayer,执行以上相同步骤,得到覆铜后的底层图,如图3-9。

 

图3-9覆铜参数设置

 

图3-10覆铜后的顶层图

4电路仿真及分析

(1)密码锁开始菜单

图4-1密码锁开始菜单

(2)密码锁设置初始密码

图4-2设置初始密码

(3)成功设置密码

图4-3设置密码成功提示

(4)输入错误提示

图4-4密码输入错误提示

结论:

由此可以看出,此设计的矩阵键盘键值读取,1602液晶显示模块,密码读取模块,密码设置模块比较模块,声光状态模块都能正常工作,设计成功。

5心得体会

作为电路设计必须使用的软件,ProtelDXP被现代电子设计者们广泛的使用,我们作为电子信息工程专业的学习者,理应熟练掌握这种实用性好、专业性强的软件。

经过对ProtelDXP一周的学习和应用,从开始的无法上手,到现在的马马虎虎,虽然不能说做的很好,但是自己看到了自己的进步,从这点上还是很高兴的。

本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89C52作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路并用C编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。

设计完全可行可以达到设计目的。

使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点。

可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。

该电路设计还具有按键有效提示,输入错误提示,控制开锁电路,控制报警电路,修改密码等多种功能。

可在意外泄密的情况下随时修改密码。

保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等诸多场所。

与此同时本次课程设计也使我学到了关于protel软件的安装、电子线路原理图的设计、电路原理图元件库文件的设计、电子线路PCB电路板设计、PCB元件封装库设计。

但是这些内容对于我们今后的所用是远远不够的。

为此,在以后的时间里要进一步的去学习和思考,对protel要有近一步的认识,更好能熟练地掌握各种操作此软件。

6参考文献

[1]伍时和等.数字电子技术基础.北京:

清华大学出版社,2009.4.

[2]张天凡等.51单片机C语言开发详解.北京:

电子工业出版社,2008.6.

[3]李东生,许四毛.Protel电路设计教程.北京:

电子工业出版社,2010.

[4]朱定华,蔡苗.Protel原理图和印制板设计.北京:

清华大学出版社,2011.

[5]陈汝全.电子技术常用器件应用手册2版.北京:

机械工业出版社,2006.

[6]余孟尝.数字电子技术基础简明教程.2版.北京:

高等教育出版社,2007.

[7]谢自美.《电子线路设计.实验.测试》.武汉:

华中科技大学出版,2006.

 

附录

名称

型号

数量

备注

单片机芯片

STC89C52

1

石英晶振

12M

1

瓷片电容

33

2

105

4

电解电容

4.7uf

1

电位器

10K

1

电阻

1K

4

10K

1

10K排阻

1

LED

红色

1

绿色

1

长鸣蜂鸣器

1

三极管

8550

1

LCD显示模块

1602

1

按键开关

17

自锁开关

1

排针

若干

导线

若干

万用表

1

电工工具

1套

 

数字式密码电子锁程序源代码(仿真)

#include"reg52.h"

#include"string.h"

#defineLCD_DATAP0//LCD的数据口

//输入方式设置

#defineLCD_AC_AUTO_INCREMENT0x06//数据读、写操作后,AC自动增一

#defineLCD_AC_AUTO_DECREASE0x04//数据读、写操作后,AC自动减一

#defineLCD_MOVE_ENABLE0x05//数据读、写操作,画面平移

#defineLCD_MOVE_DISENABLE0x04//数据读、写操作,画面不动

//设置显示、光标及闪烁开、关

#defineLCD_DISPLAY_ON0x0C//显示开

#defineLCD_DISPLAY_OFF0x08//显示关

#defineLCD_CURSOR_ON0x0A//光标显示

#defineLCD_CURSOR_OFF0x08//光标不显示

#defineLCD_CURSOR_BLINK_ON0x09//光标闪烁

#defineLCD_CURSOR_BLINK_OFF0x08//光标不闪烁

//光标、画面移动,不影响DDRAM

#defineLCD_LEFT_MOVE0x18//LCD显示左移一位

#defineLCD_RIGHT_MOVE0x1C//LCD显示右移一位

#defineLCD_CURSOR_LEFT_MOVE0x10//光标左移一位

#defineLCD_CURSOR_RIGHT_MOVE0x14//光标右移一位

//工作方式设置

#defineLCD_DISPLAY_DOUBLE_LINE0x38//两行显示

#defineLCD_DISPLAY_SINGLE_LINE0x30//单行显示

unsignedcharcodetab[4][4]={

{'1','2','3','C'},

{'4','5','6','B'},

{'7','8','9','S'},

{'L','0','R','E'}};//键盘键值表

unsignedcharinput_password[9]={0,0,0,0,0,0,0,0,'\0'};//临时读入密码数组

unsignedcharnormal_password[9]={"12345678"};//密码存储数组

unsignedchartemp_normal_password[9]={"12345678"};//临时设定密码数组

unsignedcharlock=0,miss=0,key=0;//系统环境变量分别为锁状态、连续错误次数、读入键值

sbitbeep=P3^2;//蜂鸣器控制变量

sbitLEDR=P3^4;//开锁指示灯控制变量

sbitLEDE=P3^6;//闭锁指示灯控制变量

sbitLCD_BUSY=LCD_DATA^7;//LCD忙信号位

sbitLCD_RW=P2^0;//LCD读写控制

sbitLCD_RS=P2^1;//LCD寄存器选择

sbitLCD_EN=P2^2;//LCD使能信号*/

voidLCD_cls(void);

voidLCD_write_data(unsignedchar);

voidLCD_initial(void);

voidLCD_set_position(unsignedchar);

voidLCD_prints(unsignedchar*);

voidLCD_printc(unsignedchar);

voiddidi();//蜂鸣报警模块函数

voidverify_password();//开锁判断模块函数

voidLoad();//初始化函数

voidFirst();

voidread_password();//读入密码模块函数

voidSet_password();//设定密码模块函数

voiddelay(unsignedchara);//毫秒延时模块函数

unsignedcharkbscan();//键盘扫描模块函数

voidLCD_check_busy(void)//检测LCD状态

{

while

(1)

{

LCD_EN=0;

LCD_RS=0;

LCD_RW=1;

LCD_DATA=0xff;

LCD_EN=1;

if(!

LCD_BUSY)break;

}

LCD_EN=0;

}

voidLCD_cls(void)//LCD清屏

{

LCD_check_busy();

LCD_RS=0;

LCD_RW=0;

LCD_DATA=1;

LCD_EN=1;

LCD_EN=0;

}

voidLCD_write_instruction(unsignedcharLCD_instruction)//写指令到LCD

{

LCD_check_busy();

LCD_RS=0;

LCD_RW=0;

LCD_DATA=LCD_instruction;

LCD_EN=1;

LCD_EN=

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

当前位置:首页 > 经管营销

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

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