基于51单片机的电子密码锁课程设计报告
基于51单片机电子密码锁课程设计
课程名称:微机原理课程设计题目:KS-010电子密码锁摘要伴随着科技的越来越进步和人们生活水平的提高,人们对于如何防盗的要求也越来越高,众所周知传统的机械锁由于构造简单很容易就被人破解了。
现在我们已经进入了信息化时代,可以说密码已经无处不在,银行卡要密码、手机要密码、保险箱也要密码等等,而人们为了增加安全保障性迫切需要更加安全的锁,正因为此电子密码锁应运而生。
成为了大众青睐的新一代安全锁。
本设计也正是基于此而设计的,主要就是利用STC89C52单片机作为整个系统的核心对所有的分系统进行控制,本设计是通过键盘进行密码输入然后单片机会自动与原来的已经设定好的密码进行比对,如果比对的密码正确那么锁就会自动打开。
同时显示灯会亮表示锁已开启,这样的锁具有轻便快捷、反应灵敏、安全系数高、小型化等诸多优点。
本设计的达到了基本的设计要求,能够实现作为电子密码锁的功能。
本报告主要包含八个方面,能够比较系统完整的阐述由单片机作为控制中心的电子密码锁的设计、制作、调试等过程。
可以全面的表现单片机系统、程序设计、硬件电路的设计等知识,本设计采用的的是C语言编程,其中涉及的C语言知识有很多,可以说可视为C语言中的经典范例。
而本设计加以改进也必能产生其应有的功能和价值。
关键词:52单片机、电子密码锁、C语言、单片机电路设计目录一、设计任务与要求 (4)1.1 设计任务 (4)1.2 设计要求 (4)二、方案总体设计与论证 (5)2.1 方案的总体设计 (5)2.2 方案的论证与确立 (5)三、硬件设计 (6)3.1 单片机最小系统 (6)3.2 密码锁部分 (7)3.3 总的电路结构 (9)四、软件设计 (11)4.1 模块设计 (11)4.2 程序框图 (11)五、系统仿真与调试 (13)5.1 Keil uVision4简介 (13)5.2 Proteus ISIS简介 (13)5.3 仿真与调试 (13)六、实物调试与效果 (16)七、设计总结 (18)八、参考文献 (19)一、设计任务与要求1.1 设计任务本设计的任务就是通过52单片机这个中枢结合外围的输入模块、显示模块、提示模块等进行有机结合达到能够作为电子密码锁的功能,其中就是通过键盘输入密码单片机自动与设置的密码进行比对,如果正确那么锁就会自动打开,反之则不能打开。
简易电子密码锁(基于51单片机)报告
简易电子密码锁设计&我的设计思想联想到日前在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,并结合近期的学习过程和一些参考书籍,完成了简易的电子密码锁设计学习。
电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码控制不论性能还是安全性都已大大超过了机械类结,具有良好的应用前景。
一、设计目的与内容设计了一个简易电子密码锁,可按要求从矩阵键盘输入6位数密码如“080874”,输入过程中有按键音提示。
当密码输入正确并按下确认键(“OK”键)后,发光二极管被点亮。
二、工作原理与基本操作过程介绍采用80C51为核心的单片机控制。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。
(1)键盘的人工编码给每个按键指定一个按键值,报告设定按键S1~S9对应的按键值分别为“1~9”,S10为数字“0”,S11为“OK”,S12~S16对应的按键值分别为12~16。
(2)根据按键值,指定每个按键对应的输入数字和信息。
如下表为每个按键代表的数字和输入信息。
当键盘扫描程序扫描到S10键被按下时,将其代表的按键值“0”通知CPU,CPU根据事先的规定,就会知道输入的数字是“0”。
矩阵键盘中每个按键所代表的数字和输入信息(3)输入数字和密码对比。
先将设定的密码用一个数组保存,报告中用的密码“080874”和“OK”确认信息可以用如下数组保存:Unsigned char D[ ]={0,8,0,8,7,4,11};在主程序接收到数字和信息后,通过逐位对比的方法进行判断。
输入的数字经对比正确时,程序才会继续顺序执行,否则,程序拒绝继续执行。
(4)执行预期功能。
如果输入密码正确,执行预期功能,报告设计为点亮P3.0口引脚LED。
三、电路图设计(Proteus绘制)四、程序设计(C语言)矩阵式键盘实现的电子密码锁程序#include<reg51.h> //包含51单片机寄存器定义的头文件sbit P14=P1^4; //将P14位定义为P1.4引脚sbit P15=P1^5; //将P15位定义为P1.5引脚sbit P16=P1^6; //将P16位定义为P1.6引脚sbit P17=P1^7; //将P17位定义为P1.7引脚sbit sound=P3^7; //将sound位定义为P3.7unsigned char keyval; //储存按键值/************************************************************** 函数功能:延时输出音频**************************************************************/ void delay(void){unsigned char i;for(i=0;i<200;i++);}/************************************************************** 函数功能:软件延时子程序**************************************************************/ void delay20ms(void){unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<60;j++);}/************************************************************** 函数功能:主函数**************************************************************/ void main(void){unsigned char D[ ]={0,8,0,8,7,4,11}; //设定密码EA=1; //开总中断ET0=1; //定时器T0中断允许TMOD=0x01; //使用定时器T0的模式1TH0=(65536-500)/256; //定时器T0的高8位赋初值TL0=(65536-500)%256; //定时器T0的高8位赋初值TR0=1; //启动定时器T0keyval=0xff; //按键值初始化while(keyval!=D[0]) //第一位密码输入不正确,等待;while(keyval!=D[1]) //第二位密码输入不正确,等待;while(keyval!=D[2]) //第三位密码输入不正确,等待;while(keyval!=D[3]) //第四位密码输入不正确,等待;while(keyval!=D[4]) //第五位密码输入不正确,等待;while(keyval!=D[5]) //第六位密码输入不正确,等待;while(keyval!=D[6]) //没有输入“OK”,等待;P3=0xfe; //P3.0引脚输出低电平,点亮LED}/**************************************************************函数功能:定时器0的中断服务子程序,进行键盘扫描,判断键位**************************************************************/void time0_interserve(void) interrupt 1 using 1 //定时器T0的中断编号为1,使用第一组寄存器{unsigned char i;TR0=0; //关闭定时器T0P1=0xf0; //所有行线置为低电平“0”,所有列线置为高电平“1”if((P1&0xf0)!=0xf0) //列线中有一位为低电平“0”,说明有键按下delay20ms(); //延时一段时间、软件消抖if((P1&0xf0)!=0xf0) //确实有键按下{P1=0xfe; //第一行置为低电平“0”(P1.0输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=1; //可判断是S1键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=2; //可判断是S2键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=3; //可判断是S3键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=4; //可判断是S4键被按下P1=0xfd; //第二行置为低电平“0”(P1.1输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=5; //可判断是S5键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=6; //可判断是S6键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=7; //可判断是S7键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=8; //可判断是S8键被按下P1=0xfb; //第三行置为低电平“0”(P1.2输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=9; //可判断是S9键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=0; //可判断是S10键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=11; //可判断是S11键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=12; //可判断是S12键被按下P1=0xf7; //第四行置为低电平“0”(P1.3输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=13; //可判断是S13键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=14; //可判断是S14键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=15; //可判断是S15键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=16; //可判断是S16键被按下for(i=0;i<200;i++) //让P3.7引脚电平不断取反输出音频{sound=0;delay();sound=1;delay();}}TR0=1; //开启定时器T0TH0=(65536-500)/256; //定时器T0的高8位赋初值TL0=(65536-500)%256; //定时器T0的高8位赋初值}五、用Proteus软件进行仿真利用Keil软件进行编译通过后,生成hex文件。
单片机课程设计报告电子密码锁完整版
单片机课程设计报告电子密码锁HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】山东交通学院单片机原理与应用课程设计院(部):轨道交通学院班级:自动化121学生姓名:学号:指导教师:时间:—课程设计任务书题目电子密码锁设计系 (部) 轨道交通学院专业班级自动化121学生姓名学号06 月 01 日至 06 月 12 日共 2 周指导教师(签字)系主任(签字)年月日目录3.总体设计 (2)4密码比较模块 (6) (6) (8) (9)附录 (10)摘要设计运用了ATMEL公司的AT89S52芯片系统,将微处理器、总线、蜂鸣器、矩阵键盘、存储器和I/O口等硬件集中一块电路板上,通过读取键盘输入的数据(密码)并储存到ATMEL912 24C08存储器中,然后判断之后键盘输入的数据与已存储的数据是否相同来决定打开密码箱或锁键盘或报警。
在keil4软件中编程,系统可实现6位密码的处理,并通过控制步进电机控制密码箱门的电子锁,同时还可以修改改密码。
利用单片机系统制作的密码箱安全性能更高,更易操作且体积小。
关键词:单片机、密码锁、修改密码1.设计要求本实验将实现六位数的电子密码锁。
要求使用4X4 行列式键盘作为输入,并用LCD 实时显示。
具体要求如下:1. 开机时LCD显示“welcome to use”,初始化密码为“123456”,密码可以更改。
2. 按下“10”,开始则显示“Enter Please:”。
3. 随时可以输入数值,并在LCD上实时显示‘*’。
当键入数值时,为了保密按从左到右依次显示‘*’,可键入值为0~9。
4. 按下“13”键,则表示确定键按下,进行密码对比。
如相符则在LCD第一行显示“Open the door!”,同时指示灯亮起并且步进电机旋转一定的角度;如不符,则LCD第一行显示“Wrong password!”,并且蜂鸣器同时提示一下。
基于51单片机的电子密码锁
电子密码锁一、工作原理本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O 线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N ×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
利用51单片机设计一个用16个按键输入,6位数字输出显示的电子时钟。
如图1-1所示。
图1-1按键分布图具体要求和按键功能介绍如下:1. 上电后,6 位数码管显示“—”;2. 设置6 位密码,密码通过键盘输入,按“确定”键确认,如密码正确,将锁打开;3. 密码由用户自己设定,若密码正确即锁被打开,则指示灯被点亮;4. 若密码1 次输入错误,则报警;5. 按Set 键,修改密码;6. 按Cle 键可清除已输入的密码,重新进行输二、系统硬件组成本次设计的主要有键盘,数码管,STC89C52芯片,以及LED灯。
基于51单片机的密码锁设计报告
基于51单片机的密码锁设计报告课程:单片机原理学院:电子与信息工程学院专业:班级:姓名:学号:指导老师:完成日期:目录一、矩阵按键 (1)(1)按键接口 (1)(2)按键开关的抖动问题 (1)二、LCD1602液晶 (2)(1)1602 液晶的介绍 (2)(2)液晶的读写时序介绍 (4)(3)1602 液晶的指令介绍 (6)三、设计 (7)(1)输出密码后,显示LCD1602 (7)(2)输出密码后,交替亮灭显示LED (7)四、程序设计 (7)(1)主程序 (7)(二)LCD1602程序 (9)(3)矩阵键盘程序 (10)五、仿真截图 (12)(1)输出密码后,显示LCD1602 (12)(2)输出密码后,交替亮灭显示LED (15)基于51单片机的密码锁设计一、矩阵按键(1)按键接口键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向单片机输入指令、地址和数据。
一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。
(2)按键开关的抖动问题组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。
在下图1、图2中,当按键被按下时,P1.0输入为高电平;当按键按下后,P1.0输入为低电平。
由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1.0输入端的波形如图2所示。
这种抖动对于人来说是感觉不到的,但对单片机来说,则是完全可以感应到的,因为单片机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对单片机而言,这已是一个“漫长”的时间。
图1图2按键抖动波形为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。
单片机中常用软件法,因此,对于硬件方法我们不介绍。
软件法,就是在单片机获得P1.0口为低的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测P1.0口,如果仍为低,说明按键的确按下了,这实际上是避开了按键按下时的抖动时间。
51单片机电子密码锁报告
信息工程学院51单片机的密码锁控制器的设计实验报告专业:电气工程及其自动化班级:10040921基于51单片机的密码锁控制器设计一、设计目的:要求设计的电子密码锁的密码用键盘上的数字按键产生的6位数字码构成的密码。
如果输入密码正确开锁(发光二极管量),如果密码不正确,发出报警信号。
二、实验要求:1、显示位数:6位密码显示2、键盘设置密码三、设计方案:本设计包括矩阵键盘接口电路、密码锁的控制电路和输出显示电路等三部分。
键盘部分包括键盘扫描时序产生电路;键盘扫描;弹跳消除;键盘译码;按键存储。
程序控制包括数字按键的数字输入;存储及清除;功能按键的功能设计;移位寄存器的设计与控制;密码清除、变更、存储;激活开锁电路;密码核对;解除电锁电路。
输出显示电路的设计包括:数据选择;BCD对显示译码;七段显示扫描。
(1)密码数据输入:每按一个数字键,在显示器上显示一个“-”最多可设置6位密码。
(2)密码设置:每按一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,并将先前已经输入的数据依序左移一个数字位置。
注意:密码设置必须是在开锁状态下设置。
(3)数码清除:按下此键可清除前面所有的输入值,清除成为“000000”。
(4)密码更改:按下此键时将目前的数字设定成新的密码。
(5)激活电锁:按下此键可将密码锁上锁。
(6)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。
(7)密码错误:声光报警四、实验电路及连线:1、实验接线2、LED电平显示电路实验仪上装有8只发光二极管及相应驱动电路。
见下图,L0―L7为相应发光二极管驱动信号输入端,该输入端为高电压电平“1”时发光二极管点亮。
我们可以通过P1口对其直接进行控制,点亮或者熄灭发光二极管。
LED电平显示电路3、键盘及LED显示电路键盘和LED显示的地址译码见下图,做键盘和LED实验时,需要将KEY/LED CS接到相应的地址译码上。
位码输出的地址为0X002H,段码输出的地址为0X004H,键盘行码读回的地址为0X001H,此处X是由KEY/LED CS决定,参见地址译码。
51电子密码锁课程设计
51电子密码锁课程设计一、课程目标知识目标:1. 理解电子密码锁的基本原理,掌握相关电子元件的功能与连接方式;2. 学会编写简单的程序控制51单片机实现密码锁功能;3. 了解信息安全的基本概念,认识到密码学在电子密码锁中的应用。
技能目标:1. 能够独立设计并搭建一个51电子密码锁电路;2. 掌握51单片机的编程技巧,通过实践操作完成密码锁程序的编写;3. 学会运用所学知识解决实际问题,具备一定的创新能力和动手能力。
情感态度价值观目标:1. 培养学生对于电子技术、编程技术和信息安全的兴趣,激发学习热情;2. 培养学生的团队协作意识,提高沟通与交流能力;3. 增强学生的信息安全意识,培养良好的信息安全素养。
本课程针对中学生设计,结合学生特点,注重实践操作和创新能力培养。
课程内容与教材紧密关联,旨在帮助学生掌握电子密码锁相关知识,提高实际操作能力,同时培养情感态度价值观,为学生的全面发展奠定基础。
后续教学设计和评估将围绕课程目标进行,确保教学效果。
二、教学内容1. 电子密码锁基本原理:介绍电子密码锁的工作原理,分析锁体结构、密码输入与处理过程;- 教材章节:第二章 电子技术与传感器2. 51单片机及其外围电路:学习51单片机的结构、功能及应用,掌握相关外围电路的连接方法;- 教材章节:第三章 单片机原理与应用3. 编程控制51单片机:学习51单片机的编程语言和编程技巧,编写实现密码锁功能的程序;- 教材章节:第四章 单片机编程与控制4. 电子密码锁电路设计与搭建:根据原理图,设计并搭建51电子密码锁电路;- 教材章节:第五章 电子电路设计与实践5. 信息安全与密码学:介绍信息安全的基本概念,学习密码学在电子密码锁中的应用;- 教材章节:第六章 信息安全与密码学6. 实践操作与创新能力培养:通过实践操作,巩固所学知识,培养学生的创新能力和动手能力;- 教材章节:实践活动教学内容安排和进度:第1周:电子密码锁基本原理学习;第2周:51单片机及其外围电路学习;第3周:编程控制51单片机;第4周:电子密码锁电路设计与搭建;第5周:信息安全与密码学;第6周:实践操作与创新能力培养。
基于51单片机电子密码锁的课程设计_
基于单片机的电子密码锁设计摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要。
本文从经济实用的角度出发,系统由STC89C52与低功耗CMOS型E²PROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD显示、报警、开锁等电路模块。
它能完成以下功能:正确输入密码前提下,开锁;错误输入密码情况下,报警;密码可以根据用户需要更改。
用C语言编写的主控芯片控制程序与EEPROM AT24C02读写程序相结合,并用Keil软件进行编译,设计了一款可以多次更改密码,具有报警功能的电子密码控制系统。
本密码锁具有设计方法合理,简单易行,成本低,安全实用,保密性强,灵活性高等特点,具有一定的推广价值。
关键词:电子密码锁;报警;液晶显示Design of Electric Password Lock Based on MCUAbstractAs people's living standards improve, the question how to achieve home security has become particularly prominent. In science and technology is developing continuously, electronic code lock as a security guard's role is increasingly important.This article from the economical point of view, the system by the STC89C52 with low power CMOS based E ² PROM AT24C02 as the master chip and the data memory unit, combined with the external keyboard, LCD display, alarm, unlock and other circuit modules. It performs the following functions: enter the password correctly under the premise of unlocking; wrong password case the alarm; password can be changed according to user needs. Master in C language control program and EEPROM AT24C02 chip to read and write process are combined and compiled with the Keil software, designed a number you can change the password, the password with an electronic alarm control system.The lock has a reasonable design, simple, low cost, safe and practical, confidentiality, flexibility, and high, with some promotional value.Key Words:Electric Password lock;Alarm; LCD Display目录引言 (8)第1章绪论 (9)1.1 电子密码锁的背景与研究意义 (9)1.2电子密码锁的现状及发展趋势 (9)1.3本章小结 (11)第2章系统整体方案设计 (12)2.1 设计目标 (12)2.2 主控部分的选择 (12)2.3 密码输入方式的选择 (12)2.4 本章小结 (13)第3章硬件系统设计 (14)3.1系统芯片介绍 (14)3.1.1单片机STC89C52功能介绍 (14)3.1.2 LCD1602显示器介绍 (15)3.1.3存储芯片AT24C02介绍 (16)3.1.4 I2C总线介绍 (16)3.2 硬件电路设计 (18)3.2.1 复位电路 (18)3.2.2 晶振电路 (19)3.2.3存储电路 (19)3.2.4 键盘输入电路 (20)3.2.5 显示电路 (21)3.2.6 电源输入电路 (22)3.2.7 报警电路 (22)3.2.8 开锁电路 (23)3.3 本章小结 (24)第4章软件程序设计 (25)4.1 主程序流程图 (25)4.2 按键软件设计 (25)4.2.1 按键功能程序流程图 (25)4.2.2 按键功能子程序 (26)4.3 密码设置软件设计 (27)4.3.1 密码设置程序流程图 (27)4.3.2 密码设置子程序 (28)4.4 开锁软件设计 (28)4.4.1 开锁程序流程图 (28)4.4.2 开锁功能子程序 (29)4.5 本章小结 (30)第 5 章系统仿真、调试及结论 (31)5.1 Proteus软件简介 (31)5.2 进入Proteus ISIS (31)5.3 工作界面 (31)5.4 各模块的电路图及说明 (33)5.4.1 电子密码锁系统主模块AT89C51单片机 (33)5.4.2 电子密码锁系统的键盘模块 (34)5.4.3 电子密码锁系统的显示模块 (34)5.4.4 电子密码锁系统的晶振复位电路 (35)5.4.5电子密码锁系统的掉电存储及报警电路 (35)5.4.6 电子密码锁系统的开锁电路 (35)5.4 本章小结 (36)结论与展望 (37)致谢 (38)参考文献 (39)附录A 密码锁电路原理图 (40)附录B 一篇引用的外文文献及其译文 (41)附录C 主要参考文献的题录及摘要 (47)附录D 主要C语言源程序 (49)插图清单图2- 1系统整体设计框图 (12)图3- 1 STC89C52引脚分布图 (14)图3- 2 AT24C02引脚图 (16)图3- 3开始结束信号图 (17)图3- 4复位电路原理图 (19)图3- 5晶振电路原理图 (19)图3- 6掉电存储电路原理图 (20)图3- 7键盘输入原理图 (21)图3- 8显示电路原理图 (22)图3- 9电源输入电路原理图 (22)图3- 10报警电路原理图 (23)图3- 11密码锁开锁机构示意图 (23)图3- 12开锁电路原理图 (24)图4- 1主程序流程图 (25)图4- 2按键功能流程图 (26)图4- 3密码设置流程图 (27)图4- 4开锁流程图 (29)图5- 1 Proteus启动时的屏幕 (31)图5- 2 Proteus ISIS的工作界面 (32)图5- 3 Proteus运行按键 (32)图5- 4 Proteus仿真图 (33)图5- 5 STC89C52单片机引脚图 (33)图5- 6键盘输入模块 (34)图5- 7密码显示模块 (34)图5- 8晶振及复位电路 (35)图5- 9掉电存储及报警电路 (35)图5- 10开锁电路 (36)表格清单表3-1 LCD1602引脚接口说明表 (8)表3-2 LCD1602基本操作程序 (15)引言在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
基于51单片机的电子密码锁课程设计报告
单片机原理与应用课程设计报告题目基于51单片机地电子密码锁设计系别物理与电子工程学院专业电子信息科学与技术学生姓名学号班级2013年 12月26日摘要电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关地闭合,完成开锁、闭锁任务地电子产品.在保密性、操作地方便性、密码地可变性、和一些自动化地功能上已经远远超过了机械密码锁.因此其应用非常广泛.而且由于其使用微型计算机地特质,导致其可以灵活地挂载电子化设备,比如界面友好地显示设备,方便快捷地输入设备等.本文简要介绍了一种基于A T89C51单片机地电子密码锁设计,主要采用汇编程序完成整个软件地设计,可以实现简易地电子密码锁功能.关键词:4×4矩阵键盘;AT89C51;密码锁;单片机目录一、绪论 (3)二、系统所要完成地功能 (3)三、系统总体方案设计 (4)四、硬件电路设计 (6)4.1单片机最小系统 (6)4.2 键盘电路设计 (6)4.3 LCD显示电路 (8)4.4 开锁电路 (8)五、软件设计 (9)六、系统调试 (13)七、心得体会 (13)参考文献 (14)附录 (15)源程序清单 (15)实物图 (23)一、绪论在日常地生活和工作中, 住宅与部门地安全防范、单位地文件档案、财务报表以及一些个人资料地保存多以加锁地办法来解决.若使用传统地机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣.随着科学技术地不断发展,人们对日常生活中地安全保险器件地要求越来越高.为满足人们对锁地使用要求,增加其安全性,用密码代替钥匙地密码锁应运而生.密码锁具有安全性高、成本低、功耗低、易操作等优点.在安全技术防范领域,具有防盗报警功能地电子密码锁逐渐代替传统地机械式密码锁,克服了机械式密码锁密码量少、安全性能差地缺点,使密码锁无论在技术上还是在性能上都大大提高一步.随着大规模集成电路技术地发展,特别是单片机地问世,出现了带微处理器地智能密码锁,它除具有电子密码锁地功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高地安全性、可靠性,应用日益广泛.随着人们对安全地重视和科技地发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世.但是这些产品地特点是针对特定地指纹和有效卡,只能适用于保密要求地箱、柜、门等.而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点.加上其成本较高,一定程度上限制了这类产品地普及和推广.鉴于目前地技术水平与市场地接收程度,电子密码锁是这类电子防盗产品地主流. 二、系统所要完成地功能基于以上思路,本文主要介绍一种使用STC公司地STC11F16XE单片机电子密码锁地设计,其主要具有如下功能:1、密码确认功能:密码通过矩阵键盘输入,若密码输入正确,则将通过驱动口发出高电平信号作为机械制动开锁地依据完成开锁功能.同时在主界面上显示:“The keywords is ok!”2、密码设置功能:单片机刚刚上电复位后会通过LCD1602界面提示设置密码:“Please set the keywords!”而且设置地密码是可重复地,程序运行中可再次通过输入相应密码然后修改.3、在密码输入错误时系统会通过LCD1602界面提示密码输入错误字符:“The keywords i sfalse!”同时不做开锁动作.4、本次设计中利用一只LED代替机械制动系统,灯亮表示开锁,灯灭表示闭锁.在本次地设计中,具体实现系统设计地过程如下:1、完成硬件地设计.通过PROTEL99SE绘制单片机最小系统板和矩阵键盘地原理图和PCB版图,然后通过实验室地腐蚀液腐蚀出来,焊上元件,下载测试程序调试.完成软件地设计.通过Keil uVision3软件,编辑好源汇编程序,然后编译和修改直到编译器通过为止.把编译好地HEX文件下载到单片机内部运行,通过查找系统功能上地不足和可修改地地方,然后回过去修改源文件,最终成型.三、系统总体方案设计方案一:采用数字电路控制.利用数字电路地逻辑运算功能,然后设计成电子密码锁,也可以完成系统地设计,甚至直接用FPGA完成设计就更加方便了.但是如果用FPGA完成则显得非常地浪费,因为,FPGA一方面价格昂贵,另一方面用功能如此强大地芯片制作功能如此简单地系统是一种耗费资源地行为,极不可取,故这里不采用此方案.方案二:采用DSP芯片TMS320F2812完成电子密码锁地设计.由于DSP芯片在逻辑运算和数学运算上地强大,完成电子密码锁地设计非常容易,而且容易实现.但是DSP芯片TMS320F2812地价格昂贵,故此处不采用此方案.方案三:采用51系列单片机STC11F16XE为核心来完成控制方案,然后实现电子密码锁地设计.我们可以利用单片机灵活地编程设计和丰富地IO端口,及其控制地准确性,不但能实现基本地密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能.其原理如图3-1所示.图3-1单片机控制方案通过比较以上三种方案,单片机方案有较大地活动空间,不但能实现所要求地功能而且能在很大地程度上扩展功能,而且还可以方便地对系统进行升级,所以我们采用第三种方案.设计地效果场景如下:1、输入密码用矩形键盘,包括数字键、字母键和功能键.2、用液晶显示屏LCD1602显示字符和操作界面.3、用发光二极管代替开锁地电路,发光表示开锁,熄灭表示闭锁.4、打开电源后,显示器显示“Please set the keywords !”提示用户设置密码,用户可以在此时输入一个8位地密码.输入至8位后系统自动跳转到另一界面,显示字符“The keywords set ok !”5、在完成上面地步骤后,系统再次跳换到另一个界面:“Please input the keywords !”此时系统提示用户输入正确地密码以完成开锁地功能.用户此时可以通过矩阵键盘来完成输入密码地功能.输入位数为8位数.6、若输入密码正确则系统会显示:“The keywords is ok !” ,同时点亮LED 灯完成开锁.否则系统将显示“The keywords is false!”并且不做任何动作.在本次设计中,硬件主要完成单片机最小系统和矩阵键盘地设计,软件主要由矩阵键盘子程序、显示初始化程序、显示字符子程序、数据比较子程序、数据寄存子程序和子程序调度主程序等组成.四、硬件电路设计4.1、单片机最小系统设计单片机地最小系统中包括外接晶振、复位电路和P0口地上拉电阻.其原理图如图4.1所示:图4.1 单片机最小系统4.2、键盘电路设计本设计中使用矩阵键盘作为输入设备,它最大地优点就是可以减少单片机I/O总线地占用,节省资源,而且可以产大量地不同组输入数据.在按键比较多地时候,通常采用这样方法.其原理如图4.2所示:.图4.2 矩阵键盘原理图每一条水平(行线)与垂直线(列线)地交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键地键盘.在这种行列式矩阵键盘非键盘编码地单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下地程序段.当确认有按键按下后,下一步就要识别哪一个按键按下.对键地识别通常有两种方法:一种是常用地逐行扫描查询法;另一种是速度较快地线反转法.对照图4.2所示地4×4键盘,说明线反转地工作原理.首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断.方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线地电平状态读入累加器A中.如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1.判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现地.方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下地键不在此列;如果不全为1,则所按下地键必在此列,而且是在与零电平行线相交地交点上地那个键.本次电路地设计中,矩阵键盘地具体地功能设计如表3.1:表4.1 按键功能按键键名功能说明1-9键数字键输入密码A--F键字母键输入密码4.3、LCD显示电路由于LCD1602地引脚中有一个对比调整电压,因此电路设计中主要就是对它串联可调电阻和对背光灯串联可调电阻地设计.这里我们采用P0口地并口总线和LCD1602数据总线相对应.控制线采用P2.2、P2.3、P2.4三个位组成,分别控制RS、RW和E.在程序中用指令EQU定义.由于显示电路比较简单,故不截图单独说明.4.4、开锁电路在本次设计中,基于节省材料地原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁.电路图如3.3所示.当P2.0口输出低电平时,二极管发光,表示开锁.图4.3 开锁电路五、软件设计5.1、软件设计思路电子密码锁工作地主要过程是LCD1602液晶显示器提示开始输入密码,通过矩阵键盘输入密码,同时由液晶显示器显示输入地情况,到输入完成后系统自动作出判断,作出开锁或闭锁处理.密码地设定,在本设计中地程序中输入地密码是保存在30H—46H中地.在输入过程中,首先输入密码地长度,接着根据密码地长度输入密码地位数,直到所有长度地密码都已经输入完毕;或者输入确认功能键之后,才能完成密码地输入过程.进入密码地判断比较处理状态并给出相应地处理过程.5.2 各个子程序地设计1、键盘扫描子程序键盘扫描流程图如图4.2.1图5.1 键盘扫描流程图键盘扫描子程序如下:KEY1: MOV A,P1 //键盘程序入口ORL A,#0F0HCPL AJZ KEY1ACALL DELAY10MSMOV A,P1ORL A,#0F0HCPL AJZ KEY1MOV P1,#7FH // 确认有键按下 MOV P1,#7FHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI1 // 开始各种相应处理MOV P1,#0BFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI2MOV P1,#0DFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI3MOV P1,#0EFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI42、液晶显示初始化程序初始化程序主要完成各种显示功能地配置:MOV P0,#01H //显示程序入口初始化ACALL ENABLEMOV P0,#38HACALL ENABLEMOV P0,#0FHACALL ENABLEMOV P0,#06HACALL ENABLEMOV P0,80H3、液晶显示部分程序液晶显示程序主要完成读时序和写时序地功能:ENABLE: CLR RSCLR RWCLR EACALL DELAY10MSSETB ERETDAT1: SETB RSCLR RWCLR EACALL DELAY10MSSETB ERET其中,ENABLE子程序主要完成对LCD1602地写控制地功能,DAT1子程序主要完成对其地写数据地功能.4、数据比较判断子程序BIJIAO: ACALL DELAYMOV P0,#01HACALL ENABLEACALL PLEASEACALL INPUTACALL PASSWORD MOV R3,#8MOV R1,#2AHACALL MAINCLR CMOV A,20HSUBB A,2AHJNZ ZHONGZHIMOV A,21HSUBB A,2BHJNZ ZHONGZHIMOV A,22HSUBB A,2CHJNZ ZHONGZHIMOV A,23HSUBB A,2DHJNZ ZHONGZHIMOV A,24HSUBB A,2EHJNZ ZHONGZHIMOV A,25HSUBB A,2FHJNZ ZHONGZHIMOV A,26HSUBB A,30HJNZ ZHONGZHIMOV A,27HSUBB A,31HJNZ ZHONGZHI此子程序根据输入地密码自动和设置地密码进行比对,并且依据其是否相等作出判断而跳转至不同地其他地子程序中去做相应地操作.六、系统调试本次调试采用实物调试.首先设计电子密码锁地源程序,源程序经过汇编后,生成地目标文件下载到单片机内部,运行并做操作后查看和预期结果是否一样.经过不断地修改,效果见附页.其中主要包括了开机界面地显示,输入密码正确后地显示,提示输入密码地界面显示和开锁后地效果.七、心得体会实践是检验真理地唯一标准,当然也是检验学习成果地标准.在经过一段时间地学习之后,我们需要了解自己地所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学地知识在实践中来检验.这次课程设计终于顺利完成了,由于我们对于单片机地应用并不熟悉,因此,我们请了硕勋励志班地优秀同学给我们进行指导.虽然老师并不要求做出实物,但硕勋班地那位同学认为要在实践中我们才能学到更多,理解地更全面.因此,我们在那位同学地指导下做出了实物,虽然并不完美,但却比理论学习地更多,实践是检验真理地唯一标准.当然我们在设计中也遇到了很多问题,仿真软件不熟悉,指令指针应用不熟悉,实务操作就更是困难,真正体现出书到用时方恨少,我们女生在实践方面地劣势也严重地凸显出来.开始地时候,几乎是寸步难行,编程,操作什么地都要靠硕勋班同学细心地解释指导,慢慢地才生疏地上手了,在这里要诚挚地感谢硕勋励志班地同学,耐心地指导我们.其实一直到最后作品出来了,我们也没有真正地理解了所有地东西,只是明白了许多零零散散地概念,这也证明了没有什么是可以轻易学到地.这次我们最大地心得就是要想真正地学习某一方面地东西,就必须全心全意心无旁骛地朝着这个方向走下去..在做设计期间,在励志班同学地指导下,通过自身地不断努力,无论是思想上,学习上,都取得了长足地发展和巨大地收获.顾起此次单片机课程设计,至今我们感慨颇多,地确,从选题到定稿,从理论到实践,在整整两星期地日子里,可以说得是苦多于甜,但是可以学到很多很多地地东西,同时不仅可以巩固了以前所学过地知识,而且学到了很多在书本上所没有学到过地知识.通过这次课程设计使我们懂得了理论与实际相结合是很重要地,只有理论知识是远远不够地,只有把所学地理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己地实际动手能力和独立思考地能力.在设计地过程中遇到问题,可以说得是困难重重,这毕竟第一次做地,难免会遇到过各种各样地问题,同时在设计地过程中发现了自己地不足之处,对以前所学过地知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过地知识重新温故.参考文献[1] 李朝青.单片机原理及接口技术(简明修订版)[M].北京:北京航空航天大学出版社,1998[2] 李全利.单片机原理及接口技术[M].高等教育出版社,2003[3] PROTEL99 SE电路设计与制板[M].机械工业出版社,2007[4] 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)[J].电子工业出版社,2006[7] 黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社, 2005附录源程序清单ORG 0000HRS EQU P2.2RW EQU P2.3E EQU P2.4AJMP STARTORG 2000HDB 30H,31H,32H,33H,34H,35H,36H,37HDB 38H,39H,41H,42H,43H,44H,45H,46HORG 0030HSTART: MOV DPTR,#2000H //系统初始化MOV SP,#60HMOV R3,#8MOV R1,#20HSETB P2.0MOV P0,#01H //显示程序入口初始化ACALL ENABLEMOV P0,#38HACALL ENABLEMOV P0,#0FHACALL ENABLEMOV P0,#06HACALL ENABLEMOV P0,80HACALL ENABLEACALL PLEASEACALL SEETACALL PASSWORDACALL MAINACALL XIANSHI1ACALL BIJIAOAJMP $MAIN: MOV P1,#0FHKEY1: MOV A,P1 //键盘程序入口ORL A,#0F0HCPL AJZ KEY1ACALL DELAY10MSMOV A,P1ORL A,#0F0HCPL AJZ KEY1MOV P1,#7FH // 确认有键按下 MOV P1,#7FHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI1 // 开始各种相应处理MOV P1,#0BFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI2MOV P1,#0DFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI3MOV P1,#0EFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI4CHULI1: MOV P1,#07FH //键值生成程序部分 MOV A,P1JNB ACC.0,C1Z1JNB ACC.1,C1Z2JNB ACC.2,C1Z3JNB ACC.3,C1Z4C1Z1: MOV A,#3AJMP WANCC1Z2: MOV A,#7AJMP WANCC1Z3: MOV A,#11AJMP WANCC1Z4: MOV A,#15AJMP WANCCHULI2: MOV P1,#0BFHMOV A,P1JNB ACC.0,C2Z1JNB ACC.1,C2Z2JNB ACC.2,C2Z3JNB ACC.3,C2Z4C2Z1: MOV A,#2AJMP W ANCC2Z2: MOV A,#6AJMP W ANCC2Z3: MOV A,#10AJMP W ANCC2Z4: MOV A,#14AJMP W ANCCHULI3: MOV P1,#0DFHMOV A,P1JNB ACC.0,C3Z1JNB ACC.1,C3Z2JNB ACC.2,C3Z3JNB ACC.3,C3Z4C3Z1: MOV A,#1AJMP W ANCC3Z2: MOV A,#5AJMP W ANCC3Z3: MOV A,#9AJMP W ANCC3Z4: MOV A,#13AJMP W ANCCHULI4: MOV P1,#0EFHMOV A,P1JNB ACC.0,C4Z1JNB ACC.1,C4Z2JNB ACC.2,C4Z3JNB ACC.3,C4Z4C4Z1: MOV A,#0AJMP W ANCC4Z2: MOV A,#4AJMP W ANCC4Z3: MOV A,#8AJMP W ANCC4Z4: MOV A,#12AJMP W ANCWANC: MOV @R1,A //键值显示程序 INC R1MOVC A,@A+DPTRMOV P0,AACALL DAT1DJNZ R3,MM1MM0: AJMP ZUIHOUMM1: AJMP MAINZUIHOU: RETXIANSHI1: MOV P0,#01HACALL ENABLE //清屏MOV P0,#50H //PACALL DAT1MOV P0,#41H //AACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#57H // WACALL DAT1MOV P0,#4FH //OACALL DAT1MOV P0,#52H //RACALL DAT1MOV P0,#44H //DACALL DAT1MOV P0,#2DH //-ACALL DAT1ACALL SEETMOV P0,#2DHACALL DAT1 //-MOV P0,#4FHACALL DAT1 //OMOV P0,#4BHACALL DAT1 //KMOV P0,#21HACALL DAT1 //!ACALL DELAYMOV P0,#01H //清屏ACALL ENABLERETDELAY10MS:MOV R0,#5DEL1: MOV R4,#192DEL2: MOV R2,#255DJNZ R2,$DJNZ R4,DEL2DJNZ R0,DEL1RETDELAY: MOV 30H,#50DY1: MOV 31H,#200DY2: MOV 32H,#200DJNZ 32H,$DJNZ 31H,DY2DJNZ 30H,DY1RETBIJIAO: ACALL DELAYMOV P0,#01HACALL ENABLEACALL PLEASEACALL INPUTACALL PASSWORDMOV R3,#8MOV R1,#2AHACALL MAINCLR CMOV A,20HSUBB A,2AHJNZ ZHONGZHIMOV A,21HSUBB A,2BHJNZ ZHONGZHIMOV A,22HSUBB A,2CHJNZ ZHONGZHIMOV A,23HSUBB A,2DHJNZ ZHONGZHIMOV A,24HSUBB A,2EHJNZ ZHONGZHIMOV A,25HSUBB A,2FHJNZ ZHONGZHIMOV A,26HSUBB A,30HJNZ ZHONGZHIMOV A,27HSUBB A,31HJNZ ZHONGZHITRUE: MOV P0,#01HACALL ENABLE //清屏MOV P0,#50H //PACALL DAT1MOV P0,#41H //AACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#57H // WACALL DAT1MOV P0,#4FH //OACALL DAT1MOV P0,#52H //RACALL DAT1MOV P0,#44H //DACALL DAT1MOV P0,#2DH //-ACALL DAT1MOV P0,#49H //IACALL DAT1MOV P0,#53HACALL DAT1 //SMOV P0,#2DHACALL DAT1 //-MOV P0,#4FHACALL DAT1 //OMOV P0,#4BHACALL DAT1 //KMOV P0,#21HACALL DAT1 //!CLR P2.0// LCALL DELAYAJMP EDDZHONGZHI: MOV P0,#01HACALL ENABLE //清屏MOV P0,#50H //PACALL DAT1MOV P0,#41H //AACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#57H // WACALL DAT1MOV P0,#4FH //OACALL DAT1MOV P0,#52H //RACALL DAT1MOV P0,#44H //DACALL DAT1MOV P0,#2DH //-ACALL DAT1MOV P0,#49H //IACALL DAT1MOV P0,#53HACALL DAT1 //SMOV P0,#2DHACALL DAT1 //-MOV P0,#46HACALL DAT1MOV P0,#61HACALL DAT1MOV P0,#6CHACALL DAT1MOV P0,#53HACALL DAT1MOV P0,#65HACALL DAT1SETB P2.0EDD: AJMP BIJIAORETPLEASE: MOV P0,#50H //P ACALL DAT1MOV P0,#6CH //LACALL DAT1MOV P0,#65H //eACALL DAT1MOV P0,#61H //aACALL DAT1MOV P0,#73H //sACALL DAT1MOV P0,#65H //eACALL DAT1MOV P0,#2DH //-ACALL DAT1RETINPUT: MOV P0,#69H // iACALL DAT1MOV P0,#6EH //nACALL DAT1MOV P0,#70H //pACALL DAT1MOV P0,#75H //uACALL DAT1MOV P0,#74H //tACALL DAT1MOV P0,#2DH //-ACALL DAT1RETPASSWORD: MOV P0,#50H //P ACALL DAT1MOV P0,#41H //AACALL DAT1MOV P0,#53H //SACALL DAT1MOV P0,#0C0HACALL ENABLEMOV P0,#53H //SACALL DAT1MOV P0,#57H // WACALL DAT1MOV P0,#4FH //OACALL DAT1MOV P0,#52H //RACALL DAT1MOV P0,#44H //DACALL DAT1MOV P0,#21HACALL DAT1RETSEET: MOV P0,#73HACALL DAT1MOV P0,#65HACALL DAT1MOV P0,#74HACALL DAT1RETCHU: ACALL PLEASEACALL INPUTACALL PASSWORDRETENABLE: CLR RSCLR RWCLR EACALL DELAY10MSSETB ERETDA T1: SETB RSCLR RWCLR EACALL DELAY10MSSETB ERET硬件实物图。
基于51单片机的电子密码锁的设计课程设计报告
西安文理学院机械电子工程系专业课程设计报告专业班级 2011级测控技术与仪器1班课程单片机课程设计题目基于51单片机的电子密码锁的设计学号 0703110121 学生姓名党晓英指导教师陈琦2014年 5月西安文理学院物理与机械电子工程学院课程设计任务书学0703110121学生姓名党晓英专业班级2011级测控技术与仪器1班号教研指导教师陈琦职称讲师C0409室课程单片机课程设计题目基于51单片机的电子密码锁的设计任务与要求设计任务:以51单片机为核心,设计带有密码输入键盘、电磁阀等部件的单片机应用系统,实现电子锁的锁闭和打开。
设计要求:1、完成系统的硬件电路设计与软件设计;2、采用汇编或C语言编程;3、采用Proteus、KeilC等软件实现系统的仿真调试。
4、论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。
开始日期 2014年 5月12日完成日期 2014年5月25日2014年 5 月 28日基于51单片机的电子密码锁的设计摘要:在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
本系统由AT89C51单片机系统(主要是AT89C51单片机最小系统)、4×4矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能(本设计由P0口控制LCD显示,密码正确显示password ok!密码错误显示password error!超过三次输入错误自动锁定。
基于51单片机的密码锁设计报告
基于51单片机的密码锁设计报告一、引言随着科技的不断发展,安全问题越来越受到人们的关注。
密码锁作为一种常见的安全防护设备,在保护个人财产和隐私方面发挥着重要作用。
本设计报告介绍了一种基于 51 单片机的密码锁系统,该系统具有成本低、可靠性高、操作简单等优点,适用于家庭、办公室等场所。
二、系统总体设计(一)设计目标设计一个基于 51 单片机的密码锁系统,实现以下功能:1、密码输入与验证功能。
2、密码修改功能。
3、错误输入次数限制及报警功能。
4、开锁状态指示功能。
(二)系统组成本系统主要由 51 单片机、矩阵键盘、液晶显示屏(LCD)、电磁锁驱动电路、报警电路等组成。
1、 51 单片机作为核心控制器,负责处理密码输入、验证、修改等操作,并控制其他模块的工作。
2、矩阵键盘用于输入密码和执行相关操作。
3、 LCD 显示屏用于显示系统状态和提示信息。
4、电磁锁驱动电路用于控制电磁锁的开关。
5、报警电路在密码输入错误次数超过限制时发出报警信号。
三、硬件设计(一)51 单片机选型本设计选用 STC89C52 单片机,该单片机具有丰富的 I/O 口资源、较高的性价比和良好的稳定性。
(二)矩阵键盘设计矩阵键盘采用 4×4 行列式结构,通过扫描的方式获取按键值。
(三)LCD 显示屏接口设计选用 1602 液晶显示屏,通过并行接口与单片机连接,实现数据的传输和显示。
(四)电磁锁驱动电路设计电磁锁采用直流电源供电,通过三极管驱动电路控制其开关。
(五)报警电路设计报警电路采用蜂鸣器实现,当密码输入错误次数超过限制时,单片机输出高电平驱动蜂鸣器发声报警。
四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、LCD 初始化等。
然后进入密码输入状态,等待用户输入密码。
用户输入密码后,进行密码验证,如果密码正确,则打开电磁锁,并显示开锁成功信息;如果密码错误,则记录错误次数,并显示错误提示信息。
51单片机密码锁课程设计
51单片机密码锁课程设计一、课程目标知识目标:1. 掌握51单片机的基本原理与编程方法;2. 了解密码锁的工作原理,理解51单片机在密码锁中的应用;3. 学会使用相关电路元件,如按键、显示屏等,实现与51单片机的交互;4. 掌握密码锁程序的设计与调试,学会使用开发工具进行编程。
技能目标:1. 能够运用C语言编写51单片机程序,实现密码锁的基本功能;2. 能够独立设计电路图,连接相关元件,搭建51单片机密码锁的硬件系统;3. 学会使用调试工具,对密码锁程序进行调试,找出并解决问题;4. 提高动手实践能力,培养团队协作和问题解决能力。
情感态度价值观目标:1. 培养学生对电子制作的兴趣和热情,激发创新意识;2. 培养学生严谨、细心的科学态度,提高学生对工程实践的认识;3. 增强学生的自信心和成就感,鼓励学生积极参与科技竞赛和实践活动;4. 培养学生的团队协作精神,提高沟通与表达能力。
课程性质:本课程为实践性课程,结合理论知识,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生具备一定的电子基础知识,对单片机编程有一定了解,但实践经验不足。
教学要求:教师需引导学生从理论到实践,注重培养学生的创新意识和实际操作能力,关注个体差异,因材施教。
通过课程学习,使学生能够独立完成51单片机密码锁的设计与制作。
二、教学内容1. 理论部分:a. 51单片机原理及结构介绍;b. C语言编程基础,重点讲解与51单片机相关的语法和编程技巧;c. 密码锁工作原理及其在51单片机中的应用;d. 介绍相关电路元件的原理及使用方法。
2. 实践部分:a. 搭建51单片机密码锁硬件系统,包括按键输入、显示输出等;b. 编写密码锁程序,实现密码设置、修改、验证等功能;c. 使用调试工具进行程序调试,分析并解决可能出现的问题;d. 优化程序,提高密码锁的稳定性和安全性。
教学大纲:1. 第一周:51单片机原理介绍,C语言编程基础;2. 第二周:密码锁工作原理,电路元件介绍;3. 第三周:搭建硬件系统,编写基础程序;4. 第四周:调试与优化程序,完善密码锁功能;5. 第五周:总结与展示,课程评价。
基于单片机的电子密码锁课程设计报告
单片机课程设计题目基于单片机的电子密码锁设计郑州科技学院单片机课程设计任务书一、设计题目基于单片机的电子密码锁设计二、设计任务与要求(1)本设计为防止密码被窃取在输入密码时屏幕上显示8。
(2)设计开锁密码位为六位密码的电子密码锁。
(3)能够在密码正确时显示“1HELLO”,密码错误时显示“2ERROR”,输入密码的位数时显示为8的个数。
(4)4×4的矩阵键盘中包括0-9的数字键确认键和消除键的功能键。
(5)本产品具备报警功能,当输入密码错误时蜂鸣器响(6)在密码输入过程中,若输入错误,可以利用“C”键删除刚才输入的错误的数字。
在输入密码的过程中可以随时对输入的密码进行修改。
三、主要参考文献[1] 何宏主编.单片机原理与接口技术.[M]北京:国防工业出版社. 2006.07[2] 赵益、徐晓林、周振峰. 电子密码锁的系统原理. [M]北京:清华大学出版社. 2003.[3] 张培仁.基于C语言编程MCS- 51单片机原理与应用.北京:清华大学出版社. 2002. 12四、设计时间2015 年01月16日至2015 年01月16 日指导教师签名:年月日目录1 电子密码锁的背景 (1)2 总体设计方案的确定 (2)2.1 电子密码锁设计要求 (2)2.2 总体设计方案选定 (2)3 系统硬件设计 (3)3.1 设计原理 (3)3.2 单片机STC89C52简介 (3)3.4七段数码管显示器部分 (7)3.5 键盘设计 (8)3.6 蜂鸣器模块 (8)4 系统软件设计 (9)4.1 主程序模块 (9)5 系统制作及调试 (11)5.1 焊接注意事项 (11)5.2 硬件调试问题及解决方法 (11)6 结论 (12)参考文献 (13)附录1:实物图 (14)附录2:元件清单 (15)附录3:电路原理图 (16)附录4:程序 (17)1 电子密码锁的背景随着社会物质财富的日益增长,如何实现家庭防盗这一问题也变的尤其的突出,而锁自古以来就是把守门户的铁将军,人们对它要求甚高,即要安全可靠地防盗,又要使用方便。
基于51单片机电子密码锁设计_毕业设计
基于51单片机密码锁课程设计摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出。
在科学技术不断进展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要。
本设计以单片机AT89C51作为密码锁监控装置的检测和操纵核心,分为主机操纵和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
依照51单片机之间的串行通信原理,这便于对密码信息的随机加密和爱惜。
而且采纳键盘输入的电子密码锁具有较高的优势。
采纳数字信号编码和二次调制方式,不仅能够实现多路信息的操纵,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反映速度快、传输效率高、工作稳固靠得住等。
软件设计采纳自上而下的模块化设计思想,以使系统朝着散布式、小型化方向进展,增强系统的可扩展性和运行的稳固性。
测试结果说明,本系统各项功能已达到本设计的所有要求。
关键词:单片机;密码锁;单片机设计,电子锁。
目录一.绪论 (1)引言 (1)电子密码锁的背景 (1)电子密码锁设计的意义和本设计特点 (2)二.系统设计 (3)系统总设计结构图 (3).开锁机构设计 (3)主控芯片AT89C51单片机的简介 (4)三.系统硬件设计 (7)键盘设计 (7)系统电路设计: (8)晶振时钟电路 (8)复位电路设计 (9)串口引脚功能介绍 (9)其它引脚 (9)电路图的绘制 (9)元器件采购 (11)四.软件设计 (12)系统软件设计整体思路 (12)系统软件设计流程图 (13)五.程序调试 (14)程序调试用到的软件及工具 (14)KEIL C51简介 (14)调试进程 (15)六.总结与展望 (17)致谢 (18)参考文献 (19)附录 (20)一.绪论引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件不足为奇,电子锁由于其保密性高,利用灵活性好,平安系数高,受到了广大用户的喜爱。
基于51单片机的密码锁设计报告
基于51单片机的密码锁设计报告基于51单片机的密码锁设计报告一、引言随着人们对个人财产安全的关注日益加深,密码锁作为一种智能识别系统,能够提供比传统机械锁更高的安全性和便利性。
51单片机作为一种常见的微控制器,具有体积小、价格低廉、易于编程和扩展等优点,因此被广泛应用于各种控制系统。
在本设计中,我们将基于51单片机构建一个密码锁系统。
二、系统总体设计本系统主要由51单片机、液晶显示屏(LCD)、矩阵键盘、报警模块和电源模块组成。
其中,51单片机作为主控芯片,负责处理用户输入的密码、控制LCD显示和报警模块。
LCD用于显示用户输入的密码和操作提示信息。
矩阵键盘用于用户输入密码。
报警模块在密码错误时发出警报。
电源模块为系统提供稳定的工作电压。
三、硬件设计1、51单片机:采用AT89C51或STC89C52等常见的51单片机。
2、液晶显示屏:选用1602 LCD,显示效果清晰,操作简单。
3、矩阵键盘:采用4×4键盘,按键布局可根据实际需求调整。
4、报警模块:使用蜂鸣器和LED进行声音和灯光提示。
5、电源模块:为系统提供+5V稳定电压。
四、软件设计本系统的软件设计主要分为以下几个模块:1、密码管理:包括密码设置、密码修改和密码重置等功能。
2、密码验证:在用户输入密码后,系统通过与预设的密码进行比对,判断密码是否正确。
3、系统提示:通过LCD显示操作步骤和提示信息,引导用户正确使用密码锁。
4、报警处理:在密码错误时,启动报警模块,发出警报声音和灯光提示。
五、系统调试与结果在完成硬件设计和软件编程后,我们对系统进行了调试和测试。
结果表明,基于51单片机的密码锁系统能够实现预设的功能,包括密码输入、密码验证、错误提示和报警等。
同时,系统运行稳定,具有良好的可靠性和安全性。
六、结论本设计基于51单片机的密码锁系统,实现了对密码的存储、输入和验证等功能,具有较高的安全性和便利性。
通过扩展报警模块,系统能够有效地应对非法入侵等情况。
单片机课程设计报告电子密码锁
单片机课程设计报告电子密码锁This manuscript was revised on November 28, 2020山东交通学院单片机原理与应用课程设计院(部):轨道交通学院班级:自动化121学生姓名:学号:指导教师:时间: 2015.6.1—2015.6.12课程设计任务书题目电子密码锁设计系 (部) 轨道交通学院专业班级自动化121学生姓名学号06 月 01 日至 06 月 12 日共 2 周指导教师(签字)系主任(签字)年月日目录3.总体设计 (2)44.5密码比较模块 (6) (6) (8) (9)附录 (10)摘要设计运用了ATMEL公司的AT89S52芯片系统,将微处理器、总线、蜂鸣器、矩阵键盘、存储器和I/O口等硬件集中一块电路板上,通过读取键盘输入的数据(密码)并储存到ATMEL912 24C08存储器中,然后判断之后键盘输入的数据与已存储的数据是否相同来决定打开密码箱或锁键盘或报警。
在keil4软件中编程,系统可实现6位密码的处理,并通过控制步进电机控制密码箱门的电子锁,同时还可以修改改密码。
利用单片机系统制作的密码箱安全性能更高,更易操作且体积小。
关键词:单片机、密码锁、修改密码1.设计要求本实验将实现六位数的电子密码锁。
要求使用4X4 行列式键盘作为输入,并用LCD 实时显示。
具体要求如下:1. 开机时LCD显示“welcome to use”,初始化密码为“123456”,密码可以更改。
2. 按下“10”,开始则显示“Enter Please:”。
3. 随时可以输入数值,并在LCD上实时显示‘*’。
当键入数值时,为了保密按从左到右依次显示‘*’,可键入值为0~9。
4. 按下“13”键,则表示确定键按下,进行密码对比。
如相符则在LCD第一行显示“Open the door!”,同时指示灯亮起并且步进电机旋转一定的角度;如不符,则LCD第一行显示“Wrong password!”,并且蜂鸣器同时提示一下。
基于C51单片机的电子密码锁课程设计
10/11学年第二学期《单片机控制系统设计与调试》课程设计任务书指导教师:班级:地点:机房、单片机实验室课程设计题目:密码锁的设计一、课程设计目的1.灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。
2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。
3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。
二、课程设计内容(包括技术指标)1. 主要设计内容:使用数码管显示器来显示密码输入的相关信息,通过10位数字按键(0~9)设置4位数字(0~9)密码,2位功能按键A(输入校验密码并验证密码)和B (设置新密码),利用继电器模拟电子门锁作出是否开门以及报警等反应。
2. 具体设计内容:上电时内定初始密码为“0000”,红色发光二极管点亮,绿色发光二极管熄灭,数码管显示器显示“初始状态”,“初始状态”由设计者自行设计,但不可省略。
功能按键A:实现设置新密码功能,存储新密码并显示,一旦设定新密码,则初始密码失效。
功能按键B:实现输入校验密码并验证密码功能,显示校验密码并进行密码比较。
密码输入正确则继电器启动,并使红色发光二极管熄灭,绿色发光二极管点亮,数码管显示器提示“密码正确”,“密码正确”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后继电器关闭,绿色发光二极管熄灭,红色发光二极管点亮;●密码输入错误则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码错误”,“密码错误”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警;●校验密码连续输入错误3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码连续错误3次”,“密码连续错误3次”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警,新密码失效,恢复初始密码使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与应用课程设计报告题目基于51单片机的电子密码锁设计系别物理与电子工程学院专业电子信息科学与技术学生姓名学号班级2013年 12月26日摘要电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
在保密性、操作的方便性、密码的可变性、和一些自动化的功能上已经远远超过了机械密码锁。
因此其应用非常广泛。
而且由于其使用微型计算机的特质,导致其可以灵活的挂载电子化设备,比如界面友好的显示设备,方便快捷的输入设备等。
本文简要介绍了一种基于AT89C51单片机的电子密码锁设计,主要采用汇编程序完成整个软件的设计,可以实现简易的电子密码锁功能。
关键词:4×4矩阵键盘;AT89C51;密码锁;单片机目录一、绪论 (3)二、系统所要完成的功能 (3)三、系统总体方案设计 (4)四、硬件电路设计 (6)4.1单片机最小系统 (6)4.2 键盘电路设计 (6)4.3 LCD显示电路 (8)4.4 开锁电路 (8)五、软件设计 (9)六、系统调试 (13)七、心得体会 (13)参考文献 (14)附录 (15)源程序清单 (15)实物图 (23)一、绪论在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
二、系统所要完成的功能基于以上思路,本文主要介绍一种使用 STC公司的 STC11F16XE单片机电子密码锁的设计,其主要具有如下功能:1、密码确认功能:密码通过矩阵键盘输入,若密码输入正确,则将通过驱动口发出高电平信号作为机械制动开锁的依据完成开锁功能。
同时在主界面上显示:“The keywords is ok!”2、密码设置功能:单片机刚刚上电复位后会通过LCD1602界面提示设置密码:“Please set the keywords!”而且设置的密码是可重复的,程序运行中可再次通过输入相应密码然后修改。
3、在密码输入错误时系统会通过LCD1602界面提示密码输入错误字符:“Thekeywords is false!”同时不做开锁动作。
4、本次设计中利用一只LED代替机械制动系统,灯亮表示开锁,灯灭表示闭锁。
在本次的设计中,具体实现系统设计的过程如下:1、完成硬件的设计。
通过PROTEL99SE绘制单片机最小系统板和矩阵键盘的原理图和PCB版图,然后通过实验室的腐蚀液腐蚀出来,焊上元件,下载测试程序调试。
1、完成软件的设计。
通过Keil uVision3软件,编辑好源汇编程序,然后编译和修改直到编译器通过为止。
2、把编译好的HEX文件下载到单片机内部运行,通过查找系统功能上的不足和可修改的地方,然后回过去修改源文件,最终成型。
三、系统总体方案设计方案一:采用数字电路控制。
利用数字电路的逻辑运算功能,然后设计成电子密码锁,也可以完成系统的设计,甚至直接用FPGA完成设计就更加方便了。
但是如果用FPGA 完成则显得非常的浪费,因为,FPGA一方面价格昂贵,另一方面用功能如此强大的芯片制作功能如此简单的系统是一种耗费资源的行为,极不可取,故这里不采用此方案。
方案二:采用DSP芯片TMS320F2812完成电子密码锁的设计。
由于DSP芯片在逻辑运算和数学运算上的强大,完成电子密码锁的设计非常容易,而且容易实现。
但是DSP 芯片TMS320F2812的价格昂贵,故此处不采用此方案。
方案三:采用51系列单片机STC11F16XE为核心来完成控制方案,然后实现电子密码锁的设计。
我们可以利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图3-1所示。
图3-1单片机控制方案通过比较以上三种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用第三种方案。
设计的效果场景如下:1、输入密码用矩形键盘,包括数字键、字母键和功能键。
2、用液晶显示屏LCD1602显示字符和操作界面。
3、用发光二极管代替开锁的电路,发光表示开锁,熄灭表示闭锁。
4、打开电源后,显示器显示“Please set the keywords!”提示用户设置密码,用户可以在此时输入一个8位的密码。
输入至8位后系统自动跳转到另一界面,显示字符“The keywords set ok!”5、在完成上面的步骤后,系统再次跳换到另一个界面:“Please input the keywords!”此时系统提示用户输入正确的密码以完成开锁的功能。
用户此时可以通过矩阵键盘来完成输入密码的功能。
输入位数为8位数。
6、若输入密码正确则系统会显示:“The keywords is ok!”,同时点亮LED灯完成开锁。
否则系统将显示“The keywords is false!”并且不做任何动作。
在本次设计中,硬件主要完成单片机最小系统和矩阵键盘的设计,软件主要由矩阵键盘子程序、显示初始化程序、显示字符子程序、数据比较子程序、数据寄存子程序和子程序调度主程序等组成。
四、硬件电路设计4.1、单片机最小系统设计单片机的最小系统中包括外接晶振、复位电路和P0口的上拉电阻。
其原理图如图4.1所示:图4.1 单片机最小系统4.2、键盘电路设计本设计中使用矩阵键盘作为输入设备,它最大的优点就是可以减少单片机I/O总线的占用,节省资源,而且可以产大量的不同组输入数据。
在按键比较多的时候,通常采用这样方法。
其原理如图4.2所示:。
图4.2 矩阵键盘原理图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图4.2所示的4×4键盘,说明线反转的工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
本次电路的设计中,矩阵键盘的具体的功能设计如表3.1:表4.1 按键功能按键键名功能说明1-9键数字键输入密码A--F键字母键输入密码4.3、LCD显示电路由于LCD1602的引脚中有一个对比调整电压,因此电路设计中主要就是对它串联可调电阻和对背光灯串联可调电阻的设计。
这里我们采用P0口的并口总线和LCD1602数据总线相对应。
控制线采用P2.2、P2.3、P2.4三个位组成,分别控制RS、RW和E。
在程序中用指令EQU定义。
由于显示电路比较简单,故不截图单独说明。
4.4、开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
电路图如3.3所示。
当P2.0口输出低电平时,二极管发光,表示开锁。
图4.3 开锁电路五、软件设计5.1、软件设计思路电子密码锁工作的主要过程是LCD1602液晶显示器提示开始输入密码,通过矩阵键盘输入密码,同时由液晶显示器显示输入的情况,到输入完成后系统自动作出判断,作出开锁或闭锁处理。
密码的设定,在本设计中的程序中输入的密码是保存在30H—46H中的。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
5.2 各个子程序的设计1、键盘扫描子程序键盘扫描流程图如图4.2.1图5.1 键盘扫描流程图键盘扫描子程序如下:KEY1: MOV A,P1 //键盘程序入口 ORL A,#0F0HCPL AJZ KEY1ACALL DELAY10MSMOV A,P1ORL A,#0F0HCPL AJZ KEY1MOV P1,#7FH // 确认有键按下 MOV P1,#7FHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI1 // 开始各种相应处理 MOV P1,#0BFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI2MOV P1,#0DFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI3MOV P1,#0EFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI42、液晶显示初始化程序初始化程序主要完成各种显示功能的配置:MOV P0,#01H //显示程序入口初始化 ACALL ENABLEMOV P0,#38HACALL ENABLEMOV P0,#0FHACALL ENABLEMOV P0,#06HACALL ENABLEMOV P0,80H3、液晶显示部分程序液晶显示程序主要完成读时序和写时序的功能:ENABLE: CLR RSCLR RWCLR EACALL DELAY10MSSETB ERETDAT1: SETB RSCLR RWCLR EACALL DELAY10MSSETB ERET其中,ENABLE子程序主要完成对LCD1602的写控制的功能,DAT1子程序主要完成对其的写数据的功能。