基于单片机的密码锁设计与制作Word下载.docx

上传人:b****3 文档编号:16848049 上传时间:2022-11-26 格式:DOCX 页数:34 大小:241.45KB
下载 相关 举报
基于单片机的密码锁设计与制作Word下载.docx_第1页
第1页 / 共34页
基于单片机的密码锁设计与制作Word下载.docx_第2页
第2页 / 共34页
基于单片机的密码锁设计与制作Word下载.docx_第3页
第3页 / 共34页
基于单片机的密码锁设计与制作Word下载.docx_第4页
第4页 / 共34页
基于单片机的密码锁设计与制作Word下载.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于单片机的密码锁设计与制作Word下载.docx

《基于单片机的密码锁设计与制作Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码锁设计与制作Word下载.docx(34页珍藏版)》请在冰豆网上搜索。

基于单片机的密码锁设计与制作Word下载.docx

 

等等等等。

第2章芯片介绍

MCS-51单片机等等等等。

2.1AT89C51简介

AT89C51单片机是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

2.1.1主要特性:

 

2.1.2管脚说明:

AT89C51芯片有40条引脚,双列直插式封装引脚图所示:

2.1.3内部结构:

2.1.4中断处理

第3章系统扩展

由于要求对报警进行控制,因此该系统中,我将使用LM386N-1音频放大芯片。

LM386N-1是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接组件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。

3.1LM386N-1

3.1.1LM386N-1介绍

LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。

为使外围组件最少,电压增益内置为20。

但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。

输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。

LM386的封装形式有塑封8引线双列直插式和贴片式。

3.1.2LM386N-1引脚

LM386的外形和引脚的排列如下图所示。

引脚2为反相输入端,为同相输入端;

3引脚5为输出端;

引脚6和4分别为电源和地;

引脚1和8为电压增益设定端;

使用时在引脚7和地之间接旁路电容,通常取10μF。

3.1.3内部电路

LM386内部电路原理图如图所示。

与通用型集成运放相类似,它是一个三级放大电路。

第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;

T5和T6组成镜像电流源作为T1和T2的有源负载;

T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。

使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。

第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。

第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。

二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。

引脚2为反相输入端,引脚3为同相输入端。

电路由单电源供电,故为OTL电路。

输出端(引脚5)应外接输出电容后再接负载。

电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。

3.1.4芯片特性

1.静态功耗低,约为4mA,可用于电池供电。

2.工作电压范围宽,4-12Vor5-18V。

3.外围组件少。

4.电压增益可调,20-200。

5.低失真度。

电源电压4-12V或5-18V(LM386N-4);

静态消耗电流为4mA;

电压增益为20-200dB;

在1、8脚开路时,带宽为300KHz;

输入阻抗为50K;

音频功率0.5W。

尽管LM386的应用非常简单,但稍不注意,特别是器件上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生非常讨厌的噪声。

1、通过接在1脚、8脚间的电容(1脚接电容+极)来改变增益,断开时增益为20dB。

因此用不到大的增益,电容就不要接了,不光省了成本,还会带来好处--噪音减少。

2、PCB设计时,所有外围元件尽可能靠近LM386;

地线尽可能粗一些;

输入音频信号通路尽可能平行走线,输出亦如此。

这是死理,不用多说了吧。

3、选好调节音量的电位器。

质量太差的不要,否则受害的是耳朵;

阻值不要太大,10K最合适,太大也会影响音质,转那么多圈圈,不烦那!

4、尽可能采用双音频输入/输出。

好处是:

“+”、“-”输出端可以很好地抵消共模信号,故能有效抑制共模噪声。

5、第7脚(BYPASS)的旁路电容不可少!

实际应用时,BYPASS端必须外接一个电解电容到地,起滤除噪声的作用。

工作稳定后,该管脚电压值约等于电源电压的一半。

增大这个电容的容值,减缓直流基准电压的上升、下降速度,有效抑制噪声。

在器件上电、掉电时的噪声就是由该偏置电压的瞬间跳变所致。

6、减少输出耦合电容。

此电容的作用有二:

隔直+耦合。

隔断直流电压,直流电压过大有可能会损坏喇叭线圈;

耦合音频的交流信号。

它与扬声器负载构成了一阶高通滤波器。

减小该电容值,可使噪声能量冲击的幅度变小、宽度变窄;

太低还会使截止频率(fc=1/(2π*RL*Cout))提高。

分别测试,发现10uF/4.7uF最为合适,这是我的经验值。

7、电源的处理,也很关键。

由于电压不同、负载不同以及并联的去耦电容不同,每组电源的上升、下降时间必有差异。

可行的方法:

将上电、掉电时间短的电源放到+12V处,选择上升相对较慢的电源作为LM386的Vs,但不要低于4V!

第4章硬件设计

4.1原理图制作

4.1.1基本结构

电子密码锁主要有密码输入、密码比较、结果输出组成。

硬件结构简图下图3.1所示。

4.1.2LED数码管显示电路

密码显示使用四路静态数码显示管进行显示。

1位共阴极数码管用单片机P2.0-P2.7八个I/O口控制。

LED数码管与单片机连接电路如下图所示。

4.1.3键盘电路设计

键盘是标准的输入设备,实现键盘有两种方案:

一是采用现有的一些芯片实现键盘扫描,如8279,CH451,LMC9768等,还有就是用软件实现键盘扫描。

使用现成的芯片可以节省CPU的开销,但增加了成本,而用软件实现具有较强的灵活性,也只需要很少的CPU开销,可以节省开发成本。

本文便使用软件实现键盘的扫描。

常见的键盘可分为独立按键式键盘和行列扫描式键盘。

独立按键式键盘应用在需要少量按键的情况,按键和单片机的I/O口线直接连接。

而行列扫描式键盘用在按键需求较多的情形下。

考虑到血压计面向大多数人群,需操作简单,所以采用独立按键式键盘。

独立式键盘电路如下图所示。

4.1.4报警电路设计

声音报警电路通过驱动蜂鸣器发声实现,当其接通5V的电压会发出蜂鸣叫声。

第5章软件设计

5.1软件开发流程

5.1.1启动KeiluVision3新建一个项目文件并从器件库中选择一个器件

KeiluVision3是一个标准的windows应用程序,直接点击图标就可以启动他。

要新建一个项目可以从KeiluVision3的project菜单中选择Newproject。

会打开一个标准的windows对话框,并对此输入项目文件名。

然后选择符合设计要求的芯片型号。

图5-1新建工程

5.1.2新建一个源文件并把它加入到项目中,同时增加并配置选择的器件的启动代码

由菜单选项File-New来新建一个源文件,在空的编辑窗口中输入源代码并把该文件另存为new.ASM的文件后KeiluVision3将显示汇编语言语法字符,创建了源文件后就可以把将其加入到项目中。

之后将程序敲入,并编译调试程序直到无错通过编译。

图5-2选择器件的启动代码

5.1.5编译项目并生成可以编程PROM的HEX文件

HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示,常用来保存单片机或其他处理器的目标程序代码。

它保存物理程序存储区中的目标代码映像。

一般的编程器都支持这种格式。

打开它的所在目录,找到。

Uv2的文件即可以打开先前的项目了。

选OptionsforTarget’Target1’,弹出项目选项设置窗口,同样先选中项目文件夹图标,这时在Project菜单中也有一样的菜单可选。

打开项目选项窗口,转到Output选项页创建HEX文件,编译后就在信息窗口中就显示HEX文件了。

图5-3生成HEX文件

5.2系统程序流程图

系统程序流程图如图5.12所示。

图5.12系统程序流程图

5.3按键功能

其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;

或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。

voidmain(void)

{

unsignedchari,j;

P2=dispcode[digitcount];

TMOD=0x01;

TH0=(65536-500)/256;

TL0=(65536-500)%256;

TR0=1;

ET0=1;

EA=1;

while

(1)

{

if(cmpflag==0)

{

if(P3_6==0)//functionkey

{

for(i=10;

i>

0;

i--)

for(j=248;

j>

j--);

if(P3_6==0)

{

if(hibitflag==0)

{

funcount++;

if(funcount==pslen+2)

{

funcount=0;

cmpflag=1;

}

P1=dispcode[funcount];

}

else

second3=0;

while(P3_6==0);

}

}

if(P3_7==0)//digitkey

if(P3_7==0)

digitcount++;

if(digitcount==10)

digitcount=0;

P2=dispcode[digitcount];

if(funcount==1)

pslen=digitcount;

templen=pslen;

elseif(funcount>

1)

psbuf[funcount-2]=digitcount;

while(P3_7==0);

}

else

cmpflag=0;

for(i=0;

i<

pslen;

i++)

if(ps[i]!

=psbuf[i])

{

hibitflag=1;

i=pslen;

errorflag=1;

rightflag=0;

cmpflag=0;

second3=0;

gotoa;

}

cc=0;

errorflag=0;

rightflag=1;

hibitflag=0;

cmpflag=0;

}

}

5.4密码输入错误报警功能

当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;

否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。

voidt0(void)interrupt1using0

if((errorflag==1)&

&

(rightflag==0))

bb++;

if(bb==800)

bb=0;

alarmflag=~alarmflag;

if(alarmflag==1)

P0_0=~P0_0;

aa++;

if(aa==800)

aa=0;

P0_1=~P0_1;

second3++;

if(second3==6400)

second3=0;

rightflag=0;

P0_1=1;

alarmflag=0;

if((errorflag==0)&

(rightflag==1))

P0_1=0;

cc++;

if(cc<

1000)

okflag=1;

elseif(cc<

2000)

okflag=0;

oka=0;

okb=0;

P0_0=1;

if(okflag==1)

oka++;

if(oka==2)

oka=0;

P0_0=~P0_0;

okb++;

if(okb==3)

okb=0;

}

第6章系统调试

6.1硬件调试

我首先用protel画好原理图,正确无误后去购买电子元器件。

我使用的是面包板,所以就是手工的对电子元件进行布局,这是一个十分讲究的事,第一次我没有考虑到这个细节,结果各引脚靠的太近使我无法继续下去,只能又重新做了一块板,在吸取了教训之后,我进行了合理的布局,在焊接的时候轻松了许多。

由于对元件的不熟悉以及焊接时候的粗心,弄坏了好几个元件,不得不去了好几次电子广场。

6.2软件调试

在软件调试过程中,出现了一系列错误,首先对一些打错,漏打之类的问题进行检查和排除。

遇到了一些不能解决的问题,我通过网络和书籍努力寻找问题的所在,继而寻求老师的帮助,终于顺利的通过了编译。

第7章设计特点与不足

7.1设计思路

首先需要对各个芯片引脚地址进行初始化。

在初始化完成后,重置系统。

通过输入密码进行验证,将信号传输给AT89C51芯片,进行密码比较,密码正确则通过,3次不正确通过LM386N-1芯片发出报警声。

7.2设计不足

由于设计时的偷懒,想借用其他有串口的电路板对我的芯片进行烧录程和修改,没有考虑到芯片的脆弱性,在插拔芯片的过程中弄坏了好几块芯片,浪费了不少时间。

另外,由于使用面包板,所以导线之间的干扰是避免不了的。

第8章结论

在完成这次毕业实际的过程中,我遇到了不少困难,因为是第一次做一个完整的51单片机,在经验和知识运用上都缺乏有效的结合。

在这样的情况下,我不得不去借了很多关于51单片机方面的书,还到网上找了很多的有关资料,结合自己上课所学的课程,在不断的失败错误中摸索着,终于完成了自己的毕业设计,也为我在原有的基础上得到了巩固。

我做到尽我所能,找了很多有关的资料书籍,对51单片机的功能特点进行了详细的了解。

先用proteldpx2004绘制电路原理图,并焊接了电路板,再通过keil3编译所需要的程序,运用flip下载烧录程序到芯片上,并不断调试寻找错误,让我的毕业设计尽可能完善。

二个月的时间,让我体会到了编程者的辛酸,从各类书籍到各类资料,让我收获了很多有用的东西,收益匪浅。

在解决不了之处,我寻求了导师的帮助,导师也很积极耐心的指导我,帮我纠正了一系列的错误,也让我搞懂了一些概念模糊的地方。

谢辞

在这次毕业设计中,我要衷心感谢黄丽佳老师,每周她都能对我进行有效的辅导,当遇到难题的时候,她甚至会一整天和我一起想办法解决问题,令我避免了很多设计中的错误,使我十分感动,也使我更一步巩固了我学的知识。

参考文献

[1]曾一江.单片微机原理与接口技术.出版社:

科学出版社.2006年2月

[2]周兴华.手把手教你学单片机.出版社:

北京航空航天大学出版社.2005年4月

[3]王玉良,戴志涛,杨紫珊.微机原理与接口技术.出版社:

北京邮电大学出版社.2001年6月

[4]张迎新.单片微型计算机原理应用及接口技术(第2版).出版社

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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