收藏 分享(赏)

电子密码锁实验报告.doc

上传人:精品资料 文档编号:8861161 上传时间:2019-07-14 格式:DOC 页数:26 大小:634KB
下载 相关 举报
电子密码锁实验报告.doc_第1页
第1页 / 共26页
电子密码锁实验报告.doc_第2页
第2页 / 共26页
电子密码锁实验报告.doc_第3页
第3页 / 共26页
电子密码锁实验报告.doc_第4页
第4页 / 共26页
电子密码锁实验报告.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、11方案设计说明1.1采用以单片机为核心的控制方案采用一种是用以 AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的 IO 端口,及其控制的准确性,能实现基本的密码锁功能。设计思路如下:输入密码用矩形键盘,包括数字键和功能键。LED 数码管显示输入密码,用 74JS247 驱动数码管发光显示数码,用 74LS138 控制各位显示器分时进行显示。用发光二极管代替开锁的电路,发光表示开锁。输入密码错误次数超过 3 次,系统报警。打开电源后,显示器显示“000000” ,设原始密码为“123456” ,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。按“C”键,清除显

2、示器为“000000” 。欲重新设定密码,先输入密码再按“*” 。输入密码,再按“#”键。若密码与设定密码相同,则开门。否则显示器清为“000000” 。1.2 主要元器件介绍1.2.1 主控芯片 AT89C51AT89C51 是一种低功耗,高性能 CMOS8 位微控制器,具有 8K 在系统可编程Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和系统可编程 Flash,使得AT89SC51 为众多嵌入式控制应用系统提供高灵活,

3、超有效地解决方案。AT89C51 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器, AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案6。芯片引脚如图 1.1 所示。2图 1.1 AT89C51 芯 片 引 脚 图1.AT89C51 性能简介AT89C51 具 有 如 下 特 点 : 40 个 引 脚

4、 , 4K 字 节 可 编 程 FLASH 片 内 程 序 存储 器 , 1288 位 随 即 存 取 数 据 存 储 器 ( RAM) , 32 个 外 部 双 向 输 入 /输 出( I/O) 口 , 5 个 中 断 源 , 两 个 16 位 可 编 程 定 时 计 数 器 , 可 编 程 串 行 通 道 ,低 功 耗 的 闲 置 和 掉 电 模 式 , 片 内 振 荡 器 和 时 钟 电 路 7。2.AT89C51 引脚功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”

5、可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉3电阻输出电流I。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表1.2。表1.2 P3口的第二功能端口功能 第二功

6、能 端口引脚 第二功能RXD(P3.0) 串行输入口 T0(P3.4) 定时/计数器0外部输入TXD(P3.1) 串行输出口 T1(P3.5) 定时/计数器1外部输入INT0(P3.2) 外中断0 WR(P3.6) 外部数据存储器写选通INT1(P3.3) 外中断1 RD(P3.7) 外部数据存储器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR 的 DISRTO 位(地址8EH)可打开或关闭该功能。DISRTO 位缺省为 RESET输出高电平打开状态9。EA/Vpp:外部访问允许。欲使CPU公访问外部

7、程序存储器(地址0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接V cc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上12V的编程电压Vpp11。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3. AT89C51芯片内部结构特殊功能寄存器:特殊功能寄存器的片内空间分存如下图3-2所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。中断寄存器:各中断允许控制位于

8、IE寄存器,5个中断源的中断优先级控制位于IP寄存器 12。图1.3为AUXR辅助寄存器。4图1.3 AUXR辅助寄存器双时钟指针寄存器:为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。图1.4为双时钟指针寄存器。图1.4 双时钟指针寄存器电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。51.3晶体振荡器

9、晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号 44.1kHz 或 48kHz 的采样,频率发生器就必须提供一个44.1kHz 或 48kHz 的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用 SCR 将输出的采样频率固定在 48kHz,但是 SRC 会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。1.4电源的选择密码锁主控制部分电源需要用 5V 直流电源供电,其电路如图 1.5

10、所示,把频率为 50Hz、有效值为 220V 的单相交流电压转换为幅值稳定的 5V 直流电压。其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压 15。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使

11、用集成稳压芯片 7805 解决了电源稳压问题。 D1T20uFC8.673出V4Res图 1.5 电源输入电路原理图62 系统硬件设计说明2.1 设计原理本设计主要由单片机、矩阵键盘、LED显示电路和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、

12、初始化程序、键盘扫描程序、LED 显示程序、密码设置程序等组成。其原理框图如图2.1所示。图 2.1 电子密码锁原理框图2.2 电路总体构成在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择 4*4 矩阵键盘,显示部分选择 LED 显示电路。其线路开锁控制电路AT89C51单片机复位电路矩阵键盘输入显示电路晶振电路报警控制电路7图2.2 电路线路图2.3 复位部位电路单片机复位是使 CPU 和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后 PC0000

13、H,使单片机从 0000H 取指令 16。系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图 2.3 所示 RC 复位电路可以实现上述基本功能。8图 2.3 复位电路线路图2.4 晶振部分电路AT89S51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图2.4所示方式连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在

14、2030pF之间。根据实际情况,本设计中采用12MHZ作为系统的外部晶振 17。电容取值为30pF。图2.4为晶振电路图。图2.4 晶振电路线路图2.5 键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的 I/O 线的数目,在按键比较多的时候,通常采用这样方法 18。其原理如 2.5。9图 2.5 矩阵键盘线路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 N 条行线和 M 条列线,即可组成具有 NM 个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认

15、有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照表 2.6 所示的 44 键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机 I/O 口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A 中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为 1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1

16、,则所按下的键不在此列;如果不全为 1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。判断哪个键被按下:将 P1.0P1.3 都置低,检测 P1.4P1.7 是否有低的,若有,则证明有键按下,记下低的端口。然后,将 P1.4P1.7 置低,检测P1.0P1.3 是否有低的端口,如有,则证明端口与上次的一个为地的端口交叉位置的键被按下。10键盘 16 个键布局如表 2.7,09,ON,OFF,LOCK,#,C,*。其中 ON 为开启键盘键,按下此键后键盘开启;OFF 为关闭键盘键,按下此键后键盘关闭;09 为数字键,进行密码输入以及更改密码时的输入键;*键用来设置密码,当锁被打

17、开后,此键方可有效工作,按下此键后,可以设置新密码;C 为清除键,当输入密码按键错误时可以按此键后退并清除当前字符;#键作为确定键,开锁时,按下此键后进行密码比对,设置密码时,按下此键确定所输入的数字。表 2.6 键盘布局1 2 3 ON4 5 6 OFF7 8 9 LOCK* 0 C #具体的功能设计如表 2.7:表 2.7 按键功能按 键 键 名 功 能 说 明09 键 数 字 键 输 入 密 码* 键 重 设 密 码 键 设 定 新 密 码#键 确 定 键 比 较 密 码C 键 清 除 键 使 显 示 器 清 零ON 键 开锁键 键盘开启OFF 键 闭锁键 键盘关闭LOCK 键 上锁键

18、系统上锁2.6 LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用 74LS247 驱动数码管发光显示数码和 74LS138 控制位选信号,就可以完成单片机的显示功能 18。显示电路的电路原理图如图 2.8 所示。用 P0.0P0.3 接 74LS247 的 A,B,C,D 四端口,74LS247 的输出口接 LED的七段显示。 11图 2.8 LED 显示电路用 74LS247 可以控制输出什么字型。74LS247 的逻辑功能表如表 2.9:表 2.9 74LS247 的逻辑功能表输 入 输 出十进制数 A3 A2

19、A1 A0 QA QB QC QD QE QF QG字型0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 1 1 0 0 1 1 1 1 12 0 0 1 0 0 0 1 0 0 1 0 23 0 0 1 1 0 0 0 0 1 1 0 34 0 1 0 0 1 0 0 1 1 0 0 45 0 1 0 1 0 1 0 1 1 0 0 56 0 1 1 0 0 1 0 0 0 0 0 67 0 1 1 1 0 0 0 1 1 1 1 78 1 0 0 0 0 0 0 0 0 0 0 89 1 0 0 1 0 0 0 0 1 0 0 92.7 开锁电路在本次设计中,基于节省材料的

20、原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如 3.1 所示。当 P2.0 口输出低电平时,二极管发光,表示开锁。12图 3.1 开锁电路线路图2.8 报警电路报警模块由红色发光二极管和单片机组成。当 AT89C51 的 P2.1 口输出为低电平时,发光二极管发出红光。图 3.2 报警电路线路图3 系统软件设计31 软件设计思路电子密码锁工作的主要过程是 LED 数码管提示开始输入密码,通过键盘输入密码,同时 LED 显示密码输入情况,按下确认键后判断密码的正确性,做出开锁或报警处理。当输入密码连续输入错误 3 次时,系统报警。密码的设定,在此程序中密码是固定

21、 40H45H 中,假设预设的密码为“123456“共 6 位密码。主要程序设计流程图图 3.3 所示。13图 3.3 主程序流程图3.2 各子程序设计3.2.1 键盘扫描子程序键盘扫描流程图如图开始初始化键盘扫描键功能程序结束比较密码密码正确 3 次报 警NN启动程序开锁Y14图 3.2.1 键盘扫描流程图3.2.2 LED显示子程序LED 显示流程图如图 3.2.2图 3.2.2 LED 显示流输入键值74LS247 芯片开始送 p0 口输出153.2.3 密码比较和报警程序密码比较和报警流程图如 3.2.3图 3.2.3 密码比较和报警流程4、制作调试说明4.1 建立工程文件点击“Pro

22、ject-New Project ”菜单,出现一个对话框,要求给将要建立的工程起一个名字,在编辑框中输入exam1,不需要扩展名。点击“保存”按钮,出现第二个对话框,如图4.1所示。图4.1 选择目标CPU16这个对话框要求选择目标CPU(即你所用芯片的型号),Keil 支持的CPU很多,选择Atmel 公司的89C51 芯片。点击ATMEL 前面的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面。4.1 源文件的建立使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入汇编语言源程序。4.2 工程的详

23、细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边 Project 窗口的Target 1,然后使用菜单“Project-Option for target target1”即出现对工程设置的对话框,这个对话框共有8 个页面。设置对话框中的 Target 页面,如图4.1 所示。图4.1 对目标进行设置设置对话框中的 Output 页面,如图4.2 所示。图4.2 对输出进行控制此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“ Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动

24、把刚才编写好的源程序加入,点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图4.3 所示。17图4.3 加入文件选中其中的“Add file to Group” Source Group1”,出现一个对话框,要求寻找源文件,点击对话框中“文件类型”后的下拉列表,找到并选中“Asm Source File(*.a51,*.asm),找到exam1.asm 文件了。双击exam1.asm 文件,将文件加入项目。4.3 编译、连接选择菜单 Project-Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产

25、生目标代码;如果选择Rebuild All target files将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate .项则仅对该文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直接进行。图4.4是有关编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译和对工程进行设置。图 4.4 有关编译、连接、项目设置的工具条编译过程中的信息将出现在输出窗口中的Build 页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图4.5所示的结果,提示获得了名为exa

26、m1.hex 的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil 的仿真与调试,这时可以进入下一步调试的工作。18图 4.5 正确编译、连接之后的结果4.4 调试过程中出现的问题:1.当三次输入错误密码不能报警,后来在老师的帮助下在密码比较的地方加上一段延时程序解决。2 由于试验箱上的数码管是共阳极的,所以将原来用 74LS138 芯片用软件实现了。5、作品操作说明书打开电源后,显示器显示“000000” ,设原始密码为“123456” ,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。按“C”键,清除显示器为“000000” 。欲重新设定

27、密码,先输入密码再按“*” 。输入密码,再按“#”键。若密码与设定密码相同,则开门。否则显示器清为“000000” 。6、小结以上为电子密码锁的设计,它经过多次修改和整理,可以满足设计的基本要求。输入密码时,如三次输入错误,则进行报警,输入正确时,电子锁打开。电子锁打开时可以进行修改密码,输入错误时可以清除该密码等功能。但因为我的水平有限,此电路中也存在一定的问题。譬如说电路修改后的密码不能断电,一旦断电,就是初始密码。在此次课程设计中老师提供了许多帮助,非常感谢老师!附 录源程序清单:num equ4fhORG 0000Hmov sp,#60h19mov num,#0MOV R5,#00HM

28、OV R7,#00HDJNZ R7,$MOV R7,#10HMOV R6,#06HMOV R1,#35HL1: MOV A,R7MOV DPTR,#TABLEMOVC A,A+DPTRMOV R1,ADEC R1INC R7DJNZ R6,L1START: ;ORL P2,#0FFHMOV R4,#06HMOV R0,#40HCLEAR: MOV R0,#00HINC R0DJNZ R4,CLEARL2: MOV R3,#0F7HMOV R1,#00HL3: MOV A,R3MOV P1,AMOV A,P1MOV R4,ASETB C20MOV R5,#04HL4: RLC AJNC KEYI

29、NINC R1DJNZ R5,L4CALL DISPMOV A,R3SETB CRRC AMOV R3,AJC L3JMP L2KEYIN: MOV A,R1XRL A,#0BHJZ X3MOV A,R1XRL A,#0FHJZ X4MOV R7,#10D1: MOV R6,#24DJNZ R6,$DJNZ R7,D1D2: MOV A,P1XRL A,R4JZ D2MOV A,R1MOV DPTR,#TABLE21MOVC A,A+DPTRMOV R7,AXRL A,#0AHJZ SET0MOV A,R7XRL A,#0BHJZ STARTMOV A,R7XRL A,#0CHJZ L2MOV

30、 A,R7XRL A,#0DHJZ L2MOV A,R7XCH A,40HXCH A,41HXCH A,42HXCH A,43HXCH A,44HXCH A,45HCALL DISPJMP L2X3: JMP DISP2X4: JMP COMPDISP:MOV R0,#40HDISP1: MOV A,R0;ADD A,#50H22MOV P0,AMOV P2,#80HCALL DELAYMOV P2,#00HINC R0MOV A,R0ADD A,#40HMOV P0,AMOV P2,#40HCALL DELAYMOV P2,#00HINC R0MOV A,R0ADD A,#30HMOV P0

31、,AMOV P2,#20HCALL DELAYMOV P2,#00HINC R0MOV A,R0ADD A,#20HMOV P0,AMOV P2,#10HCALL DELAYMOV P2,#00HINC R0MOV A,R023ADD A,#10HMOV P0,AMOV P2,#08HCALL DELAYMOV P2,#00HINC R0MOV A,R0ADD A,#00HMOV P0,AMOV P2,#04HCALL DELAYMOV P2,#00HRETSET0: MOV R2,#06HMOV R0,#40HMOV R1,#30HE1: MOV A,R0XCH A,R1INC R0INC

32、R1DJNZ R2,E1CALL DELAYE2: JMP STARTCOMP: MOV50H,#250COMP1:ACALL DELAYACALL DELAYACALL DELAY24ACALL DELAYACALL DELAYDJNZ 50H,COMP1MOV R1,#45HMOV R0,#35HMOV R2,#06HC1: MOV A,R1XRL A,R0JNZ C3DEC R1DEC R0DJNZ R2,C1CLR P3.0MOV 51H,#400000000LOOP: ACALLDELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYACAL

33、L DELAYACALL DELAYACALL DELAYACALL DELAYACALL DELAYDJNZ 51H,LOOPSETB P3.0MOV R2,#20025C2: MOV R6,#248DJNZ R6,$DJNZ R2,C2SJMP C4C3: MOV A,NUMADD A,#1MOV NUM,ACJNE A ,#03H,C4CLR P3.1C4: JMP START DISP2: MOV R0,#35HCALL DISPMOV A,P1XRL A,R4JZ DISP2CALL DELAYJMP STARTDELAY: MOV R7,#100D3: MOV R6,#24;djnz r6,$DJNZ R7,D3RETORG 300HTABLE: DB 01H,02H,03H,0CHDB 04H,05H,06H,0DHDB 07H,08H,09H,0EHDB 0AH,00H,0BH,0FH26DB 01H,02H,03H,04H,05H,06HEND

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报