找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10563|回复: 1
打印 上一主题 下一主题
收起左侧

89C51单片机控制的密码锁硬件课程设计说明书

[复制链接]
跳转到指定楼层
楼主
ID:268577 发表于 2017-12-28 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

机电工程学院课程设计说明书

(2017/2018学年第 1 学期)

课程名称 :微机原理课设      

题    目 :单片机的密码锁设计

专业班级 :机械电子工程2

学生姓名 :*

学    号: 140*07

指导教师 :杨*

设计周数 :

设计成绩 :

1引言

目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。由于人们对锁的安全性,方便性等性能有更高的要求,许多智能锁也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品的普及和推广。
随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,机械锁的这些弊端为一种新型的锁---电子密码锁,提供了发展的空间。
随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。


2设计方案及原理

2.1系统设计要求

本次电子密码锁设计的主要是以下几个部分:4x3矩阵键盘设计、LCD信息显示和密码的比较和处理,还有报警等功能模块。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路是报警。系统整体框图如图1所示。

图1 系统整体框图

2.2设计硬件资源分配

P3.0~P3.7用于LCD液晶显示作用。
P1.6、P1.7用于蜂鸣器和报警灯的控制。
P1.4用于开锁电路的控制。
P2.0~P2.7用于键盘电路的控制。
P1.0~P1.2用于LCD显示模块的控制端口的控制。




3硬件设计

3.1芯片选择

本次设计采用AT89C51贴片芯片,AT89C51是一个低电压,高性能CMOS 8位单片机,使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和系统可编程Flash,使得AT89SC51为众多嵌入式控制应用系统提供高灵活,超有效地解决方案。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,通过用Keil软件编写程序,然后装到单片机里面去,然后让它对整个系统进行信息的处理,如可以让它处理矩阵键盘传过来的信息,并根据编好的程序来确定哪个按键按下,并处理相应按键对应的功能,然后把相应的信息反应到单片机的各个引脚,来实现按键实现的现象,如:显示是否开启锁,报警等。AT89C51 提供以下标准功能:4k字节Flash闪速存储器128字节内部RAM,32 个I/O 口线两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51的引脚图如图2所示。
                    
图2 AT89C51

3.1.1电容的作用及分类

电容 在电路中具有隔断直流电,通过交流电的作用,因此常用于级间耦合、滤波、去耦、旁路及信号调谐。
1、应用于电源电路,实现旁路、去藕、滤波和储能的作用,下面分类详述之:
1)旁路
旁路电容是为本地器件提供能量的储能器件,它能使稳压器的输出均匀化,降低负载需求。就像小型可充电电池一样,旁路电容能够被充电,并向器件进行放电。为尽量减少阻抗,旁路电容要尽量靠近负载器件的供电电源管脚和地管脚。这能够很好地防止输入值过大而导致的地电位抬高和噪声。地弹是地连接处在通过大 电流毛刺时的电压降。
2)去藕
去藕,又称解藕。从电路来说,总是可以区分为驱动的源和被驱动的负载。如果负载电容比较大,驱动电路要把电容充电、放电,才能完成信号的跳变,在上升沿比较陡峭的时候,电流比较大,这样驱动的电流就会吸收很大的电源电流,由于电路中的电感,电阻(特别是芯片管脚上的电感,会产生反弹),这种电流相对 于正常情况来说实际上就是一种噪声,会影响前级的正常工作。这就是耦合。
去藕电容就是起到一个电池的作用,满足驱动电路电流的变化,避免相互间的耦合干扰。将旁路电容和去藕电容结合起来将更容易理解。旁路电容实际也是去藕合的,只是旁路电容一般是指高频旁路,也就是给高频的开关噪声提高一条低阻抗泄防 途径。高频旁路电容一般比较小,根据谐振频率一般是0.1u,0.01u等,而去耦合电容一般比较大,是10uF或者更大,依据电路中分布参数,以及驱动 电流的变化大小来确定。旁路是把输入信号中的干扰作为滤除对象,而去耦是把输出信号的干扰作为滤除对象,防止干扰信号返回电源。这应该是他们的本质区别。
3)滤波
从理论上(即假设电容为纯电容)说,电容越大,阻抗越小,通过的频率也越高。但实际上超过1uF的电容大多为电解电容,有很大的电感成份,所以频率 高后反而阻抗会增大。有时会看到有一个电容量较大电解电容并联了一个小电容,这时大电容通低频,小电容通高频。电容的作用就是通高阻低,通高频阻低频。电容越大低频越容易通过,电容越大高频越容易通过。具体用在滤波中,大电容(1000uF)滤低频,小电容(20pF)滤高频。曾有网友将滤波电容 比作“水塘”。由于电容的两端电压不会突变,由此可知,信号频率越高则衰减越大,可很形象的说电容像个水塘,不会因几滴水的加入或蒸发而引起水量的变化。它把电压的变动转化为电流的变化,频率越高,峰值电流就越大,从而缓冲了电压。滤波就是充电,放电的过程。
4)储能
储能型电容器通过整流器收集电荷,并将存储的能量通过变换器引线传送至电源的输出端。电压额定值为40~450VDC、电容值在220~150 000uF之间的铝电解电容器(如EPCOS公司的B43504或B43505)是较为常用的。根据不同的电源要求,器件有时会采用串联、并联或其组合的形式,对于功率级超过10KW的电源,通常采用体积较大的罐形螺旋端子电容器。
2、应用于信号电路,主要完成耦合、振荡/同步及时间常数的作用。
1)耦合
举个例子来讲,晶体管放大器发射极有一个自给偏压电阻,它同时又使信号产生压降反馈到输入端形成了输入输出信号耦合,这个电阻就是产生了耦合的元 件,如果在这个电阻两端并联一个电容,由于适当容量的电容器对交流信号较小的阻抗,这样就减小了电阻产生的耦合效应,故称此电容为去耦电容。
2)振荡/同步
包括RC、LC振荡器及晶体的负载电容都属于这一范畴。
3)时间常数
这就是常见的R、C串联构成的积分电路。当输入信号电压加在输入端时,电容(C)上的电压逐渐上升。而其充电电流则随着电压的上升而减小。电流通过电阻(R)、电容(C)的特性通过下面的公式描述:
  i = (V/R)e-(t/CR)
通常音频电路中包括滤波、耦合、旁路、分频等电容,如何在电路中更有效地选择使用各种不同类型的电容器对音响音质的改善具有较大的影响。
  • 耦合电容 
耦合电容的容量一般在0.1μF~1μF之间,以使用云母、丙烯、陶瓷等损耗较小的电容音质效果较好。
2.前置放大器、分频器等
  前置放大器、音频控制器、分频器上使用的电容,其容量在100pF~0.1μF之间,而扬声器分频LC网络一般采用1μF~数10μF之间容量较大的电容,目前高档分频器中采用CBB电容居多。小容量时宜采用云母,苯乙烯电容。而LC网络使用的电容,容量较大,应使用金属化塑料薄膜或无极性电解电容器,其中无机性电解电容如采用非蚀刻式,则更能获取极佳音质。
3.滤波电容
 整流后由于滤波用的电容器容量较大,故必须使用电解电容。滤波电容用于功率放大器时,其值应为10000μF以上,用于前置放大器时,容量为1000μF左右即可。当电源滤波电路直接供给放大器工作时,其容量越大音质越好。但大容量的电容将使阻抗从10KHz附近开始上升。这时应采取几个稍小电容并联成大电容同时也应并联几个薄膜电容,在大电容旁以抑制高频阻抗的上升。

3.2单片机最小系统设计

单片机最小系统就是指能使单片机工作的最少的器件构成的系统。因为单片机已经包含了数据存储器和程序存储器,所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。
  • 晶振电路的作用是产生单片机所必须的时钟频率。单片机工作所需的同步时钟信号由由以下两种方法获得,第一:由单片机片内时钟电路结合外部晶振、电容产生;第二:直接从单片机外部引入脉冲信号。设计中用第一方法,有石英晶体和微调电容(一般取值30pF左右)组成,石英晶体产生震荡,单片机振荡电路产生的脉冲信号称振荡信号,它的频率等于石英晶体的振荡频率(fosc),简称晶振频率,振荡脉冲信号还不是单片机工作所需的时钟信号,时钟信号必须由振荡脉冲信号经单片机片内时钟电路的处理后才能产生。  课程设计晶振电路主要由振荡电路和分频电路组成。其中振荡电路由高增益反相器以及并联外接的石英晶体和电容构成产生振荡脉冲。而分频电路则用于把振荡脉冲分频,已得到所需的时钟信号。振荡电路由单片机芯片的XTAL1端输入,XTAL2端输出。此时同时并接一个石英晶体振荡器以及两个22pF电容。而AT89C51中自带有分频电路所以不需要外接电路对脉冲信号进行分频。晶振频率是12MHz。
单片机工作需要晶振给CPU提供频率,时钟电路就是给单片机提供晶振频率的电路。图3是时钟电路的PROTEUS仿真图。单片机允许的振荡晶体可在1.2~24MHz之间选择,一般为11.0592MHz,电容C1,C2的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20~100pF之间选择,典型值30pF

图3时钟电路

(2)计算机每次开始工作,CPU和系统中的其他部件都必须要有一个确定
的初值,即复位状态。图4是单片机复位电路仿真图。


           图4单片机复位电路仿真图。
单片机RST引脚是高电平有效。单片机在上电瞬间C1充电,RST引脚端出现正脉冲,只要RST断保持两个机械周期(大约10ms)以上的高电平,单片机就能复位。在单片机工作后,如果还想再次复位,只需按下开关,单片机就能重新变成复位状态。当晶体振荡频率为12MHz时,RC的典型值为C=10μF,R=8.2KΩ。

3.3 矩阵键盘设计

一组键或者一个键盘,需要通过接口电路和CPU相连接,CPU可以采用查询接口或者中断的方式了解有没有键被按下,并检查是哪个键被按下。无论是查询方式还是中断方式都要用到单片机的I/O口。由于单片机I/O口较少的原因,当系统中需要用到较多按键时,为了能够更合理更有效地利用单片机的I/O口,一般采用矩阵键盘的方式来实现多按键的功能。

矩阵键盘又叫做行列式键盘。行列式键盘的硬件结构比较简单,由行输出口和列输出口构成行列式键盘,按键设置在行、列交点上。只有当键被按下时相应的行和列才能相连。如此,只要检测行和列是否相连就可以知道是否有键按下。

由于按键设置在行、列线交点上,行、列分别连接到按键开关的两端,平时无键按下时,行线处于高电平,假设列线为低电平,当有键按下时,按下的键就会将相应的行和列连通,使得对应的行线被列线拉低,也变为低电平。这就是识别矩阵键盘是否有键被按下的关键。

当确定有键被按下时,通过逐行扫描,读出I/O口的值可以知道哪一行的值被改变了,被改变了的行即是被按下的按键所在行。同时,由于每个键都有它的行值和列值,行值和列值得组合就是这个按键的编码,当算法一定时,每个按键的编码是固定的,且各个按键的编码互不相同,所有通过读I/O的值还能具体知道是哪一个键被按下,这样就实现了键盘的识别。图5是4x3矩阵键盘在PROTEUS中的电路原理仿真图。

                  图5矩阵键盘

3.4 LCD显示模块设计

LCD1602是一种字符型液晶显示器,是一种专门用于显示字母、数字、符号等的点阵式液晶显示器。LCD1602的显示容量为16x2个字符(可以显示2行,每行显示16个字符),芯片工作电压为4.5~5.5V,工作电流为2.0mA(5.0V),模块最佳工作电压是5.0V。

LCD1602具有16个引脚。在LCD1602的有关设计中,主要是通过编写程序控制LCD1602的4、5、6引脚来实现数据或者指令的写入和执行,再通过数据或者指令的写入和执行来进一步实现LCD1602的显示功能。 查资料了解在仿真库中用lm016l代替LCD602图6是PROTEUS中显示模块的仿真图。 由于LCD要正常工作必须提供足够的电流,因此在实际应用为了保证显示器能够正常工作,应在数据端口接一上拉电阻,不过此次仿真就没有另外加上拉电阻。

图6 LCD显示电路

3.5报警模块、开锁模块以及表示模块

开锁模块用继电器带一个LED管代替电磁锁。电路如图7所示,报警模块用蜂鸣器表示,电路如图8所示,表示模块用发光二极管表示开锁与否。采用蜂鸣器控制开锁显示,当输入正确密码时,单片机向蜂鸣器送出低电平,驱动蜂鸣器响铃。采用蜂鸣器闹铃结构简单,只需要单路信号控制,发出的闹铃声音可以根据响和不响的不同的软件延时时间来控制,若加上LM386放大电路的话,当然也能发出清脆的音乐声音。当输入密码错误时,该模块发出报警声音,密码的按键音是通过声音模块发出的。用户输入六位正确密码时按再ENTEER键,蓝灯D1亮,表示开锁成功。按CLEAR键清除六位密码。

                           图7开锁电路

图8报警电路

3.6硬件连接图

  根据电路原理,在PROTEUS中画出各功能模块的仿真图,各个功能模块验证正确后,将所有模块集合到一个电路设计图中,画出具有所有功能的总体硬件仿真图。

参考文献

  • 吴炳胜.80C51单片机原理及应用技术.北京:冶金工业出版业,2013

完整的Word格式文档51黑下载地址:
单片机的密码锁设计.docx (115.95 KB, 下载次数: 48)
密码锁.pdf (57.99 KB, 下载次数: 16)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:550668 发表于 2019-5-29 23:10 | 只看该作者
这个可以分享代码的么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表