电子密码锁说明书1

发布时间:66 阅读次数:66

  该图为电子密码锁电路图,用以AT89C51构成的数字电路做为密码锁的核心控制。8位数码显示,初始化时,显示“PE”,接着输入最大6位数密码。当密码输入完毕后,按下“ENTER”键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“—”。当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以利用“CLR”键清除刚才输入错误的数字。若密码正确,则发光二极管亮;若错误,则SOUNDER发出报警声。

  在导入程序后编译,出现错误提示“电子密码锁.LST not find”,安ASM文件生成步骤认真重新执行了一遍,编译后任然出现相同错误,LST文件未能自动生成。再通过仔细研究,DSN文件及ASM文件名须最好不包括中文,否则LST、HEX文件都未生成。解决此问题后程序编写出现错误,经提示发现是将0打成了“o”,改正后可正确仿真,仿真结果与设计要求相符合。

  在显示模块中,采用了一个八位共阴极7段式数码管(7SEG-MPX8-CC-BLUE)显示电路提示信息。程序初始化时,显示“PE”;当输入密码时,只显示“—”。显示驱动芯片采用74LS245,可以驱动八位数字的七段数码。它是8路同相三态双向总线收发器,可双向传输数据,它采用串行接口,可以方便地直接与AT89C51单片机的I/O接口相接,实现串行数据的输出。

  8位数码显示,初始化时,显示“PE”,接着输入最大6位数密码。当密码输入完毕后,按下“ENTER”键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“—”。当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以利用“CLR”键清除刚才输入错误的数字。若密码正确,则发光二极管亮;若错误,则SOUNDER发出报警声。

  主程序主要完成初始化,包括数据存储空间初始化,设置初始密码:断码存储区清0,输入密码存储区清0,设置初始密码为123456。

  键扫描程序分为行码及列码扫描,采用位条件转移指令,若键没有输入,跳转至下一行键查询。一旦有按键按下,便转向相应的子程序处理,处理结束再返回。扫描完行码后跳转到列码扫描,同理,若键有没有输入,转至下一列键查询,一旦有键按下,便跳转到子程序,执行完毕后返回。最后计算出键值赋给VAL。

  P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。(P3口也可作为AT89C51的一些特殊功能口)

  RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  输入密码后,点确定键,若密码正确,则LED发光二极管变亮1s作为提示。由于此实验选用LED-YELLOW,故会发光二极管由暗变黄。若密码不正确,禁止按键输入3s,同时发出“嘀、嘀、嘀”的报警声。连接方法如图。

  74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。

  AT89C51内部有一个用于构成片内振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器,振荡器的连接方法如图。

  用4*3组成0—9数字键及确认键、删除键;用8位数码管组成显示电路提示信息,当输入密码时,只显示“—”,当密码位数输入完毕按下“确定”键时,对输入的密码与设定的密码进行比较,若密码正确,则锁开,此处用LED发光二极管亮1s作为提示;若密码不正确,禁止按键输入3s,同时发出“嘀、嘀、嘀”的报警声。本程序设定密码数为6个,在输入过程中,数字输入超过6个时,给出报警信息。

  P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

  ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

  /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

  EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

  P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

  P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

  电子锁具有保密性强,防止非法监听复制密钥,使用灵活性好,安全系数高等优点,极大地提高了电子钥匙的安全性,方便了人们的生活。密码锁在人们的生活中起到了重要的作用,是传统机械锁无法替代的

  设计本课题时构思了两种方案:一种是用AT89C51单片机控制的密码锁,位8位密码锁,具有按键有效提示、解码有效提示、控制开锁电平、控制报警、密码修改等功能(该为讨论方案)。另一个方案同为单片机控制,但用8位数码管组成显示电路提示信息,初始化及按键过程屏幕提示。该方案能完成开锁、操作错误报警、密码输入错误时报警并锁定系统功能,为6位密码锁(此课设中采用了第二方案)。

  键处理程序:对不同的按键做出响应。先判断是否按下“CLR”,若按了则跳转执行密码右移子程序;若没有则继续判断。再判断是否按“ENTER”,若是则继续判断输出密码位数是否为6个,若等于6个则进行密码比较;若不是6个则跳转执行操作错误警报。

  程序接着将六个密码一一比较,若有一个不同则跳转至密码错误报警子程序,相同则执行灯亮子程序,p1.0清零,变为低电平,发光二极管电路导通。

  图中,外接石英晶体以及电容C1、C2构成并联谐振电路,接在放大器的回馈电路中。其中C1、C2取了20pf。

  采用开关和上电复位。即电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

  点击调试进程控制按钮的运行按钮play进入调试状态。在调试框架里可以执行单步、跳进、跳出、断点、查看寄存器内容等操作。

  初始化后屏幕出现“PE”,提示程序初始化成功,发光二极管及发声器按预期效果在各个情况下发光或者发出“嘀、嘀、嘀”报警声。调试运行正确,设计符合要求。

  点击菜单栏“Source”,在下拉菜单点击“Add/Remove Source Files(添加或删除源程序)”出现一个对话框。在“Code Generation Tool”的下面找到“ASEM51”,点击对话框的“NEW”按钮,在出现的对话框建立asm文件,然后点击“OK”按钮。

  P0口作为段码数据输出口,经74LS245接显示器,由74LS245的B口输出相应位的显示数据的段码。P2口扫描输出显示器中的位码,使8位显示器相应的位置于高电平(7SEG-MPX8-CC-BLUE显示器是八位共阴极7段式数码管)。单片机P3口接键盘开关,输入行列信息

  当单片机的P0口总线最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输(接收);DIR=“1”,信号由A向B传输(发送);当/CE为高电平时,A、B均为高阻态。

  设计一种单片机控制的密码锁,具有按键有效指示,解码有效指示、解码有效指示、控制开锁电平,控制报警,密码修改等功能。

  密码锁的控制程序由延时子程序,修改密码子程序、键盘读入子程序、校验密码子程序及主程序组成。

  锁的初始状态为“锁合”指示灯亮。输入初始密码“0、1、2、3、4、5、6、7”,每输入一位,“键有效”指示灯亮约0.5是:输完8位按确定键,锁打开,“锁开”指示灯亮;按“上锁”键,锁又重新上锁,“锁合”指示灯亮。“锁开”状态下,可输入新密码,按“确定”键后可更改密码;可重复修改密码。如果输入密码错误超过3次,蜂鸣器启动发出报警,同时“错误”指示灯常亮。

  点击菜单栏的“Source”,在下拉菜单点击“Build All”过一会,编译结果的对话框就会出现在我们面前。如果有错误,对话框会告诉我们是哪一行出现了问题。

  选中单片机AT89C51,左键点击AT89C51,在出现的对话框里,点击Program File按钮,找到刚才编译得到的pwm.hex文件,然后点击“OK”按钮就完成了CPU的加载。可以在该对话框修里该CPU的属性。

  采用行列式键盘,电路原理如图所示。按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线伏时,被钳位在高电平状态。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。

  从0-9是用户的密码输入键盘,用户可以通过开关输入数字,输入错误安CLR进行删除,输入完毕按ENTER确定。