当前位置:文档之家› 单片机的密码锁课程设计说明书

单片机的密码锁课程设计说明书

1 引言随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

随着科技的发展以及人们生活水平的大幅度提高,特别是近几年国内经济的发展以及科学技术的不断发展,防盗的要求也是与日俱增,同时对使用的便捷性也提出了更高的要求,传统的锁防盗效果已经满足不了现代社会的防盗需求,还存在着需要随身带着钥匙,如果钥匙不慎丢失被他人利用,就有可能使不良之人乘虚而入等诸多弊端.因此近几年一种新型的电子密码锁应运而生.电子密码锁运用电子电路控制机械部分,使两者紧密结合,从而避免了因为机械部分被破坏而导致开锁功能失常.大大增加了密码锁得防盗功能。

同时因为电子密码锁不需要携带钥匙,弥补了钥匙极易丢失和仿造的缺陷,方便了锁具的使用,通过单片机的硬件和软件的设计可以不急可以达到开锁方便,而且还可以在别人随意开锁时发出警报。

电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。

电子密码锁的密码保密性高,不易被破解以及它不用用户携带钥匙等等特点,使得它日益被广泛的人群所接受,也逐渐成为人们生活的一种时尚、潮流,它正慢慢的在许多领域无形之中抢占先机替代机械锁。

本设计就是基于单片机的电子密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

2 系统总体方案设计2.1 设计的要求1、设计密码锁的密码为六位数,可以修改;2、用4×4组成0~9数字键及确认键、取消键、修改密码键、退出修改键。

3、当密码锁通电以后,通过LCD显示与用户沟通,组成显示电路提示信息,输入键盘按下时,LED指示灯亮,按键松开了指示灯就灭;4 、当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开;当输入的密码错误时,显示输入错误,并且用蜂鸣器报错;5、所修改的密码只能是六位数,要是在改密码以后要恢复最初密码,只需将密码锁断电即可。

2.2设计思路通过单片机AT89C51的输出口线,连接一个行列式键盘,以实现人机交换,使用户可以输入密码或修改密码,再同1602LCD显示器与用户进行沟通,提示用户下一步的操作,让用户更容易掌握所设计的密码锁的功能,在对单片机编程时,将键盘扫描程序和液晶显示程序嵌套在主程序中,既有利益于阅读,在对程序设计时的排除错误也容易,通过翻转法键盘扫描程序实现键盘的扫描,以确认用户输入的数据,再在1602LCD显示出输入数据的个数,使用户在按“确认”之前就对输入的数据用一定得判断,再通过程序判断密码是否正确,再通过判断键以实现修改密码的功能,总之,这次设计就是利用单片机的相关外围电路设计和程序的编写来实现电子密码锁的设计。

2.3 总体设计方框图以80C51单片机为核心的控制电路,采用模块化的设计方案。

通过单片机的P2端口的开关来控制案件的输入的内容,根据另一单片机端口P1口LCD数码显示管所显示的的情况来确定程序的运行和理论的结果是否一致。

具体设计方案如下:1.正确连接好硬件电路线路;2.加载程序.HEX文件,运行程序;3.按下键盘开关,结果键值显示在LCD数码管显示器上;4.对比LCD数码管显示情况与理论值是否相符。

如相符合,即方案可行。

系统整体框图如图2.3所示。

图2.1系统整体框图2.4 主要元器件介绍2.4.1 主控芯片AT89C51芯片 89C51介绍图2.2 AT89C51引脚图单片机控制器4×4键盘LCD液晶显示器本次设计需要注意的几个端口:P0口(39—32):是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。

可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。

在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。

P3口(10—17):是一组带有内部上拉电阻的8位双向I/O口,,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。

作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如表1-1所示:表1-1 端口引脚P3EA/Vpp(31):内部和外部程序存储器选择线。

EA=0时访问外部ROM 0000H—FFFFH;EA=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH空间访问外部ROM。

本次设计EA接高电平。

XTAL1(19)和XTAL2(18):使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。

RST/VPD(9):复位信号输入端。

AT89S51接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。

第二功能是VPD,即备用电源输入端。

当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。

2.4.2 LCD1602显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。

1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。

1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。

1602型LCD的接口信号说明如表1-2所示:表1-2 1602型LCD的接口信号说明编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 Data I/O2 VDD 电源正极10 D3 Data I/O3 V0 液晶显示偏压信号11 D4 Data I/O4 RS 数据/命令选择端(H/L)12 D5 Data I/O5 R/W 读写选择端(H/L)13 D6 Data I/O6 E 使能信号14 D7 Data I/O7 D0 Data I/O 15 BLA 背光源正极8 D1 Data I/O 16 BLK 背光源负极1602型LCD的主要技术参数如下表所示:表1-3 1602型LCD的主要技术参数显示容量16X2个字符芯片工作电压 4.5~5.5V工作电流 2.0mA(5.0V)模块最佳工作电压 5.0V字符尺寸 2.95X4.35(WXH)mm基本操作程序读状态:输入:RS=L,RW=L, E=H 输出:D0~D7=状态字读数据:输入:RS=H,RW=H, E=H 输出:无写指令:输入:RS=L,RW=L, D0~D7=指令码,E=高脉冲输出:D0~D7=数据写数据:输入:RS=H,RW=L, D0~D7=数据, E=高脉冲输出:无2.4.4 晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。

以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz 或48kHz的时钟频率。

如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。

但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。

现在应用最广泛的是石英晶体振荡器。

石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。

石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。

为数据处理设备产生时钟信号和为特定系统提供基准信号。

在单片机中为其提供时钟频率。

石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。

其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。

只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。

当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。

3 密码锁的硬件设计3.1 行列式键盘图3.1 行列键盘图图4.1所示键盘根据具体的功能省去4×4键盘中的两个按键,再通过翻转法扫描键盘的到键值,再根据键值进行相应的操作。

每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N × M 个按键的矩阵键盘。

在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就是要识别哪一个按键被按下。

对键的识别方法通常有两种:一种是通用的组行扫描查询法;另一种是速度较快的线反转法。

此系统中,我们采用线反转法。

首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

具体方法是:向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。

如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。

判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平后,检查行输入状态来实现的。

方法是:依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列;如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。

3.2 1602LCD显示器图3.2 LCD显示器图该图器件是1062液晶显示屏,D0到D7口连接在单片机的I/O口上(如该设计就连接在P1口),E,RW,RS引脚也与单片机相连(如本设计连在P3.5,P3.6,P3.7口),VEE和VSS接电源,VDD接地,再通过软件设计实现各个字符串的显示。

相关主题