基于protues的电子密码锁设计说明.docx
- 文档编号:28621710
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:31
- 大小:416.77KB
基于protues的电子密码锁设计说明.docx
《基于protues的电子密码锁设计说明.docx》由会员分享,可在线阅读,更多相关《基于protues的电子密码锁设计说明.docx(31页珍藏版)》请在冰豆网上搜索。
基于protues的电子密码锁设计说明
本科生学年论文(设计)
(2011级)
论文(设计)题目基于protues的电子密码锁设计
作者晓强
系专业电气信息工程
班级电子1102
指导教师(职称)亚萍(讲师)
字数6280
成果完成时间2013-12-26
师大学钱江学院教学部制
基于protues的电子密码锁设计
电气信息专业1102班晓强指导教师亚萍
摘要:
本文以AT89C51单片机为核心器件,结合按键电路、LED数码管显示电路、报警指示电路和开锁机构,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能,其主要具有如下功能:
●密码通过键盘输入,若密码正确,则将锁打开
●密码输入错误,蜂鸣器将报警提示
●用户可以自由设定密码
本密码锁具有设计方法合理,简单易行成本低,安全实用等特点,具有一定的推广价值。
关键词:
AT89C51;电子密码锁;功能
Thedesignofelectronic lockontheProtues
YaoXiaoqiangInstructor:
SunYaping
Abstract:
BasedontheAT89C51single-chipmicrocomputerasthecoredevice,combiningwiththekeycircuit,LEDdigitaltubedisplaycircuit,analarmcircuitandunlockingmechanism,designthewholesystemtoachievethebasicfunctionsofelectroniccipherlockbyitsflexibleprogramming,richI/Oport,andaccuracybasingonthesoftwareprogram.Withthefollowingfunctions:
●Inputpasswordthroughthekeyboard,ifthepasswordiscorrect,lockwillopen
●Ifthepasswordiserror,thebuzzerwillalarm
●Userscanfreelysetthepassword
Thelockhassomefeatureslikeareasonabledesignmethods,simpletowork,lowcostandsecurity,italsohassomepromotionvalue.
Keywords:
AT89C51;Electroniclock;Function
第一章引言1
1.1研究背景1
1.2应用现状1
2.1Protues软件概述2
2.2Protues软件的功能和特点2
第三章电子密码锁电路的设计2
3.1电子密码锁的工作原理2
3.2系统的总体思路设计3
3.3主要元器件介绍3
3.3.1AT89C51介绍3
3.3.2LED数码管介绍5
3.3.3LED矩阵键盘介绍6
第四章电子密码锁的仿真分析6
4.1Protues原理图设计6
4.1.1单片机主控制模块(含晶振、复位基本工作电路)7
4.1.2键盘输入模块7
4.1.3显示模块8
4.1.4报警模块和开锁模块9
4.2仿真效果总图10
总结10
参考文献10
附录11
基于protues的电子密码锁设计
电子信息专业1102班晓强指导教师亚萍
第一章引言
1.1研究背景
电子线路的设计需要经过设计方案提出、方案验证和修改三个阶段,有时甚至需要经过多次的反复。
传统的设计方法一般是采用搭接实验电路的方法进行,这种方法费时、费用高、效率低。
随着计算机技术水平的不断提高,电子线路设计仿真软件迅速发展起来,EDA[1](ElectronicDesignAutomation电子设计自动化)技术应运而起,功能日益强大,运行速度快,使得电子线路设计人员能在计算机上完成电路的功能设计、逻辑设计、性能分析等等。
Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
1.2应用现状
现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方案,另一种是单片机控制的方案。
对于采用集成电路控制的方案,其中的编码电子锁电路分为编码电路、控制电路、复位电路、解码电路、防盗报警电路、门铃电路,而电子锁主要由输入元件、电路(包括电源)以及锁体三部分组成。
显然此种方案的物理实现结构较为复杂且重新设置密码、输入密码的操作过程也会给用户带来一定的不方便;而利用单片机控制的方案,由于单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能,但其也有一定的局限性,就在于其控制原理的复杂以及要求设计人员具有更加良好的程序设计能力,调试较为繁琐,否则程序一旦跑飞将造成意想不到的损失。
通过对这两种方案的优缺点比较,再考虑到本人自己对单片机设计具有一定的基础,所以此次选择利用单片机来进行密码锁的设计。
第二章Protues软件包介绍
2.1Protues软件概述
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译。
2.2Protues软件的功能和特点
Protues软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
(1)原理布图
(2)PCB自动或人工布线
(3)SPICE电路仿真
第三章电子密码锁电路的设计
3.1电子密码锁的工作原理
以AT89C51单片机为主控制单元,键盘为主要输入单元,结合开锁装置、报警器和显示器完成整个系统设计。
它的系统结构图如图.3.1所示:
图.3.1系统结构图
3.2系统的总体思路设计
系统的运行过程大致如下:
假设初始状态为闭锁,此时整个系统只等待按键输入,数码管也不显示。
先按除号键修改密码,每按下一个数据键(即每输入一个密码),数码管相应的显示一个“-”标志,当密码全部输入完成后,需按下确认键“ON/C”。
设置密码后,先按“+”复位,然后输入密码,输入完毕后按下确认键“ON/C”,此时系统判断密码是否正确,正确则开锁(仿真中以数码管显示全8、绿色LED灯亮为标志),错误则报警,此后数码管熄灭继续等待按键。
3.3主要元器件介绍
3.3.1AT89C51介绍
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3.3.1.1AT89C51封装图图3.3.1.2AT89C51引脚图
AT89C51主要特性:
1.与MCS-51兼容
2.4K字节可编程FLASH存储器
3.寿命:
1000写/擦循环
4.数据保留时间:
10年
5.全静态工作:
0Hz-24MHz
6.三级程序存储器锁定
7.128×8位部RAM
8.32可编程I/O线
9.两个16位定时器/计数器
10.5个中断源
11.可编程串行通道
12.低功耗的闲置和掉电模式
13.片振荡器和时钟电路
AT89C51单片机引脚:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片振荡器。
石晶振荡和瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.3.2LED数码管介绍
图3.3.2数码管
LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。
这些段分别由字母a,b,c,d,e,f,g,dp来表示。
当数码管特定的段加上电压后,这些特定段就会发亮,以形成我们眼睛看到的样子。
以“2”为例,应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。
LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。
小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。
发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。
常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
3.3.3LED矩阵键盘介绍
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
本设计采用Protues库中KEYPAD-SMALLCALC作为键盘。
第四章电子密码锁的仿真分析
4.1Protues原理图设计
4.1.1单片机主控制模块(含晶振、复位基本工作电路)
图4.1.1主控制模块
4.1.2键盘输入模块
本设计中采用Protues库中KEYPAD-SMALLCALC作为键盘,与AT89C51的P3口相连,提供按键输入,如图4.1.2:
图4.1.2键盘输入模块
按键
键名
功能说明
1-9键
数字键
输入密码
÷键
重设密码键
设定新密码
+键
复位键
密码全部一次删除
=键
密码删除键
一次删除一位密码
ON/C键
确定键
确认密码输入完毕
表4.1.2按键功能
4.1.3显示模块
图4.1.3显示模块
此设计中,使用了四个共阳极数码管,使用动态显示技术控制数码管。
其6个位选信号与P2.0-P2.5相连,当其中某位为低电平时表示选中该位;8段段选信号与P0口相连,当其中某段为高电平时导通该段,特殊的,由于AT89C51的P0口的驱动能力较弱,不足以驱动数码管点亮,故在此又引入上拉电阻以驱动数码管。
关于上拉电阻有如下介绍:
1、当TTL电路驱动CMOS电路时,如果电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,以提高输出的高电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。
管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
4.1.4报警模块和开锁模块
图4.1.4报警和开锁模块
4.2仿真效果总图
图4.2输入正确密码时仿真效果总图
总结
通过上述设计电路的仿真分析,不难发现使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点。
正是由于单片机的众多优良特性的吸引,最终从经济实用的角度出发,采用单片机AT89C51作为主控芯片,结合外围的键盘输入、显示、报警、开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。
参考文献
[1]于殿泓,王新年.单片机原理与程序设计实验教程[M].电子科技大学,2007.127-151页.
[2]文博,文涛.单片机语言C51程序设计[M].人民邮电,2005.258-294页.
附录
#include
#defineucharunsignedchar
#defineuintunsignedint
uintnum=10;//开始让数码管什么都显示
bitset=0;//定义设置密码的位
charcount=-1;//开始让COUNT=-1,方便后面显示数码管
sbitBeep=P1^2;//蜂鸣器
uchartemp;
ucharpws[6]={8,8,8,8,8,8};//原始密码
ucharpwx[6];//按下的数字存储区
bitrightflag;//密码正确标志位
ucharworkbuf[6];
ucharcodetabledu[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40
};//段选码,共阴极
ucharcodetablewe[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf
};//位选码
uintkeyscan();
voiddelay(ucharz)//延时,ms级
{
uchary;
for(;z>0;z--)
for(y=120;y>0;y--);
}
voidsetpw()//设置密码函数
{
keyscan();
}
uintkeyscan()//键盘扫描函数
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(5);//键盘去抖,最好20ms以上,这里用了5ms
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
count++;//按键计数加1
temp=P3;
switch(temp)
{
case0xee:
{
num=7;
if(count<6)//六位密码,所以COUNT<6
{
if(set==0)//设置密码键没有按下时
pwx[count]=num;//存储按下的数字
else
pws[count]=num;//设置密码键按下时,设置新密码
workbuf[count]=tabledu[11];//相应位的数码管显示"--",不显示相应的数字,密码是的
}
}
break;
case0xde:
{
num=8;
if(count<6)//以下扫描键盘的原理差不多同上
{
if(set==0)
pwx[count]=num;
else
pws[count]=num;
workbuf[count]=tabledu[11];
}
}
break;
case0xbe:
{
num=9;
{
if(count<6)
{
if(set==0)
pwx[count]=num;
else
pws[count]=num;
workbuf[count]=tabledu[11];
}
}
}
break;
case0x7e:
//设置密码键按下
{
set=1;//设置密码标志位置1
P1_3=0;//设置密码指示灯亮
workbuf[0]=0x00;//数码管第一位不显示
workbuf[1]=0x00;//......
workbuf[2]=0x00;//......
workbuf[3]=0x00;
workbuf[4]=0x00;
workbuf[5]=0x00;//......
count=-1;//按键计数复位为-1
if(count<6)//密码没有设置完,继续设置密码
{
setpw();//设置密码
}
}
break;
}
while(temp!
=0xf0)//按键抬起检测
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
count++;
temp=P3;
switch(temp)
{
case0xed:
{
num=4;
if(count<6)
{
if(set==0)
pwx[count]=num;
else
pws[count]=num;
workbuf[count]=tabledu[11];
}
}
break;
case0xdd:
{
num=5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 protues 电子 密码锁 设计 说明