基于51单片机的电子锁

合集下载

简易电子密码锁(基于51单片机)报告

简易电子密码锁(基于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文件。

基于MSC-51单片机红外线电子密码锁

基于MSC-51单片机红外线电子密码锁

基于MSC-51单片机红外线电子密码锁一、【摘要】电子技术的飞速发展,给古老的锁具生产带来了巨大的变革,古老的机械锁安全性能差,容易被破坏,给管理和使用带来了很多的不便。

而电子技术的发展解决了这个问题。

红外线抗干扰能力强、使用方便、工作可靠等优点,本系统采用AT89C51单片机为核心接收和发送,采用AT24C02可擦除寄存器存储密码,设计了6位密码控制密码锁的开、关。

同时用APR9600语音芯片提示密码存储状态及效果。

该系统可靠性高,成本低,操作方便等特点。

第1节、前言 (2)1.1、单片机的概述 (2)1.2、电子密码锁的概述 (3)1.3、本系统的运用和实际意义 (3)1.4、系统设计任务及要求 (3)1.4.1、设计任务 (3)1.4.2、设计要求 (3)1.4.3、所具备功能 (3)第2节、电子密码锁的硬件设计 (3)1.1、系统的硬件构成及功能 (3)2.1.1、遥控器部分 (3)2.1.2、接收部分 (5)2.2、AT24C02引脚图及其引脚功能 (7)2.3.1、 AT24C02的时序图 (7)2.3.2 、本系统AT24C02 掉电存储单元的设计 (9)2.3、APR9600介绍 (9)2.3.1、 APR9600芯片管脚说明 (9)2.3.2、APR9600操作模式设置功能表 (10)2.3.3、APR9600的控制模式 (11)第3节、系统的软件设计 (11)3..1、系统发射部分软件介绍 (12)3.2、红外线接收部分软件介绍 (13)3.3、AT24C02的读写程序 (14)第4节、系统调试和测试结果分析 (15)4.1 、使用的仪器仪表 (15)4.2 、系统调试及调试预想结果 (15)4.3、测试过程及结果 (16)结束语 (17)致谢语 (17)参考文献 (17)附录 (17)第1节前言本系统采用单片机技术实现红外线遥控设置密码控制锁头,具有性能可靠,电路简单,成本低廉,安全稳定等特点。

51单片机课程设计 电子密码锁

51单片机课程设计 电子密码锁

华中师范大学武汉传媒学院传媒技术学院电子信息工程2011仅发布百度文库,版权所有.基于单片机的密码锁的设计1设计题目:电子密码锁要求采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统2设计框图3方案设计课题设计目标本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改;4.断电存储功能主控部分的选择选用单片机作为系统的核心部件,实现控制与处理的功能。

单片机具有资源丰富、速度快、编程容易等优点。

利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标。

密码输入方式的选择由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。

行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。

通过不断读行线口线,或者中断方式触发键位扫描。

当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。

当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。

每个按键都可通过程序赋予功能,从而完成密码识别。

4 硬件原图设计5程序流程图主程序流程图键功能程序流程图开锁程序流程图6仿真图7制作本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。

其中矩阵键盘用于输入数字密码和进行各种功能的实现。

由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。

毕业设计-基于51单片机电子密码锁设计

毕业设计-基于51单片机电子密码锁设计

基于51单片机电子锁设计摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。

本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。

根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。

而且采用键盘输入的电子密码锁具有较高的优势。

采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。

软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。

测试结果表明,本系统各项功能已达到本设计的所有要求。

关键词:单片机;密码锁;单片机设计,电子锁。

Electronic Lock Design with 51 Serires Single Chip ControllerAbstractAlong with the exaltation of social science and the living level of people, how carry out the family to guard against theft, this problem also change particularly outstanding.Because of the simple construct of traditional machine lock,the affairs of theft is hackneyed.the electronics lock is safer because of its confidentiality, using the vivid good, the safe coefficient is high, being subjected to the large customer close.It can carry out the key information to register in the main on board initial attestation, the password information encrypt etc. Go to correspond by letter the principle according to the string between 51 machines, this is easy to encrypt and protect to the passwords information random. Adopt the numerical signal codes,not only can carry out many controls of the road information, raise the anti- interference that signal deliver, reduce the mistake action,but also the power consume is low, Respond quickly,the efficiency deliver is high, work stable credibility etc. The software design adoption the design thought from top to bottom, to make the system toward wear distribute type,turn to the direction development of small, strengthen the system and can expand the stability and circulate.Test the result enunciation, various functions of this system are already all request of this design.keyword:singlechip;cryptogram lock;singlechip design; electronics lock.目录1 绪论 (1)1.1 引言 (1)1.2 电子密码锁的背景 (1)1.3 电子锁设计的意义的本设计特点 (2)2.系统设计 (3)2.1系统总设计结构图 (3)2.2.开锁机构设计 (3)2.2.1主控芯片AT89C51单片机的简介 (4)3系统硬件设计 (6)3.1键盘设计 (6)3.2系统电路设计: (8)3.2.1 晶振时钟电路 (8)3.2.2复位电路设计 (8)3.2.3串口引脚功能介绍 (8)3.2.4 其它引脚 (9)3.3电路图的绘制 (9)3.3.1 PROTEL 99 SE简介: (12)3.4原器件采购 (14)3.5电路焊接 (14)4.软件设计 (17)4.1 系统软件设计整体思路 (17)4.2系统软件设计流程图 (18)5 程序调试 (19)5.1 程序调试用到的软件及工具 (19)5.2 KEIL C51简介 (19)5.3 调试过程 (19)6 设计总结与展望 (22)致谢 (23)参考文献 (24)附录 (25)1 绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。

基于51单片机的电子密码锁

基于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单片机的电子密码锁—1

基于51单片机的电子密码锁—1

基于51单⽚机的电⼦密码锁—1这个程序是为了实现基于51单⽚机的电⼦密码锁,⽬前,程序解决了最重要之⼀的输⼊的密码和保存的正确密码相⽐较的问题。

通过定义了两个数组:uchar table2[6]; //临时密码保存uchar password[6]="123456"; //进门密码将输⼊的密码写⼊到table2[]中有⼀点需要特别注意:因为我写到table2[]数组内的是ASCII值的0-9,⽽ASCII值的0-9对应的符号却是NUT,SOH... (省略)所以在刚开始调试时,LCD1602屏幕输出的总是奇怪的字符,⽽不是我想要的0-9,通过查询ASCLL码表可以知道字符(0-9)对应的数值是48-57,所以我通过定义了⼀个新的数组,uchar smgduan[10]={48,49,50,51,52,53,54,55,56,57};以及lcd_write_data(smgduan[table2[i]]);的⽅式,实现了在LCD上输出字符0-9的功能。

在最后做两个数组⽐较时,开始同样出现了这个情况,因为数字1和字符1对应的ASCII值不同,所以password[i]不等于table2[i],需要进⾏转换,我的⽅式的是password[i]==smgduan[table2[i]];罗⾥吧嗦这个多,主要还是给未来的⾃⼰看看,当初犯得错误多么低级。

---------------------------------------------------分割线-----------------------------------------------------------------------------------下⼀版改进考虑把重复按键选择数字改成矩阵按键,加进些其他的功能。

---------------------------------------------------分割线-----------------------------------------------------------------------------------程序部分:/*这个⽅案是我写基于51单⽚机的电⼦密码锁过程中,未完成全部功能的程序。

密码时钟(基于51单片机的电子密码锁)

密码时钟(基于51单片机的电子密码锁)

摘要随着社会的发展,人们生活水平的提高,人们对物质上的需求有了进一步的提高,平时的生活用品都要向着更方便,更人性化的方向发展。

时钟作为人们日常生活中的必备用品大家已经很习惯了,但是一个由P89C51rd2单片机控制的带有密码的时钟却可以给您的生活带来不可想象的变化。

本文就密码时钟做了详细的介绍和说明。

重点论述了以PHILIPS 8位单片机P89C51rd2为核心的软件硬件设计原理,并给出了硬件原理图和软件设计流程。

本系统划分为三个功能部分:输入部分(键盘),处理部分(P89C51rd2及驱动电路),显示部分(数码管),其中处理部分为整个系统的核心,通过P89C51rd2接收到键盘输入的信息后经过处理后调用74LS138和74LS47来驱动数码管显示相关的信息,同时本文也给出了相应软件的设计和程序代码。

以及开发调试C51程序的软件Keil的使用方法和调试过程。

该系统在实验室条件下调试成功,证明了设计思想和开发技术的正确。

关键词:密码时钟;键盘;数码管;Keil;单片机;AbstractAlong with society's development,People living standard enhancement.On people's had the further enhancement to material demand, and the usual daily necessities all must turn towards conveniently,the user friendly direction develops. The clock took in the people’s daily life necessary thing ,e verybody was already used to it.But controls by the P89C51rd2 monolithic integrated circuit has the password clock to be possible to give the change actually which your life brings cannot imagines.This article has made the detailed introduction and showing on the password clock. With emphasis elaborated take PHILIPS 8 monolithic integrated circuit P89C51rd2 as the core software hardware principle of design, and has given the hardware schematic diagram and the software design flow.This system division is three function parts: Input part (keyboard),Processing part (P89C51rd2 and actuation electric circuit),Demonstrates the part (nixietube), Processing part for overall system core. Receives the keyboard entry after P89C51rd2 the information process processing to transfer 74LS138 and 74LS47 actuates the nixietube demonstration related information, simultaneously this article has also given the corresponding software design and the procedure code. As well as the development debugs C51 the procedure the software Keil application method and debugs the process.Key words: Password clock Keyboard Nixietube Keil Monolithic integrated circuit;引言 (1)1 系统功能设计 (3)1.1 操作流程设计 (3)1.2键盘规划及编码规划,键盘功能,功能扩展 (4)2系统总体方案设计 (5)2.1工作原理 (5)2.2 开发工具 (6)2.3 系统整体原理框图 (8)3 系统单元模块设计 (9)3.1 单片机核心控制模块 (9)3.2 串口通讯模块 (13)3.3数据存储模块 (15)3.4键盘模块 (16)3.5显示模块 (17)3.6功能扩展 (22)3.7 开锁指示电路 (22)4 软件设计 (23)4.1 主程序模块 (23)5 系统实现 (23)5.1 仿真调试 (23)5.2程序下载 (28)5.3 运行结果 (29)结论 (30)致谢 (31)参考文献 (32)附录A (33)电子密码锁时钟系统软件设计引言单片机,亦称单片微电脑或单片微型计算机。

基于51单片机的电子密码锁设计与应用研究

基于51单片机的电子密码锁设计与应用研究

基于51单片机的电子密码锁设计与应用研究基于51单片机的电子密码锁设计与应用研究摘要:随着科技的不断发展,电子密码锁在我们的日常生活中被广泛应用。

本文以51单片机为核心,对电子密码锁进行了设计与研究。

通过对电子密码锁的原理、组成部分及其在实际应用中的优点进行了探讨,并详细介绍了设计过程和程序实现。

利用51单片机的高性能、低功耗和强大的扩展性,成功实现了电子密码锁的设计与应用。

实验结果表明,该电子密码锁具有良好的安全性和可靠性,可以满足人们对安全性的需求。

关键词:51单片机;电子密码锁;设计;应用;安全性引言随着信息技术和智能化的快速发展,电子密码锁作为一种安全可靠的门禁控制系统,已经在社会生活中得到广泛应用。

相比于传统的钥匙锁而言,电子密码锁具有更高的安全性、更方便的使用特点,成为现代化社会安全管理的重要组成部分。

51单片机作为一种常用的微控制器,具有高性能、低功耗、价格经济等优点,因此被广泛应用于电子密码锁的设计和研究中。

本文旨在通过基于51单片机的电子密码锁的设计与应用研究,探讨电子密码锁的工作原理、设计流程和实现方法,并对其在实际应用中的优势进行分析。

一、电子密码锁的原理与组成部分电子密码锁是一种基于数字电子技术的门禁控制系统,主要由输入模块、控制模块和输出模块组成。

1. 输入模块:输入模块主要用于输入开锁密码。

一般来说,输入模块可以使用按键、密码键盘、触摸屏等方式。

在本设计中,我们选择了密码键盘作为输入模块。

2. 控制模块:控制模块主要负责接收输入的密码并进行处理,判断是否正确并控制锁的开关状态。

51单片机就是一个常用的控制模块。

3. 输出模块:输出模块用于将控制模块的指令转化为实际操作,控制锁的开关或者报警功能。

一般来说,输出模块可以使用电磁铁、继电器、蜂鸣器等设备。

在本设计中,我们采用了电磁铁作为输出模块。

二、电子密码锁的设计过程1. 硬件设计电路连接:将密码键盘的输出与51单片机的输入口相连,将电磁铁与51单片机的输出口相连。

基于51单片机多功能电子密码锁

基于51单片机多功能电子密码锁

#include <reg52.h>#define uint unsigned int#define uchar unsigned char#define KEY P3 //键盘输入端口#define No_key 20 //无按键时的返回值#define lcddata P2 //1602的数据输入端口sbit lcden= P1^2。

sbit lcdrs= P1^0。

sbit lcdrw= P1^1。

sbit light= P1^3。

sbit light1= P1^4。

uchar j 。

//用来统计输入个数的全局变量uchar aa。

//用来在定时器中计数的全局变量uchar code table[]= " Hello!"。

uchar code table1[]=" OK! " 。

uchar code table2[]="Enter please:" 。

uchar code key_table[16] ={1,2,3,10,4,5,6,11,7,8,9,12,0,13,14,15}。

uchar password[]={2,0,1,0,9,3} 。

//设定初始密码uchar save[6]。

//保存输入的数据uchar conflag 。

//确认标志uchar lockflag。

//锁键盘标志uchar startflag。

//开始标志void delay(uint z>。

//延时子函数void wright_com(uchar com>。

//写指令函数void wright_data(uchar date> 。

//写数据函数void init(>。

//初始化void display_OK(>。

// 显示OKvoid delete(>。

//删除输入的最后一个数uchar keyscan(> 。

基于51单片机的电子密码锁---毕业论文

基于51单片机的电子密码锁---毕业论文

目录摘要........................................................... I I Abstract ....................................................... I II1 绪论 (1)2 系统的总体设计和主要元器件介绍 (2)2.1 系统方案论证选择 (2)2.2 系统的总体思路设计 (3)2.3 主要元器件介绍 (3)2.3.1 AT89C51介绍 (3)2.3.2 继电器介绍 (6)2.3.3 LED数码管介绍 (7)2.3.4 矩阵键盘介绍 (7)3、硬件设计 (9)3.1 单片机主控制模块(含晶振、复位基本工作电路) (9)3.2 键盘输入模块 (9)3.3 显示模块 (10)3.4 报警模块 (11)3.5 开锁模块 (11)4、软件设计 (12)4.1 系统程序设计流程图 (12)4.2 系统程序设计 (12)5、系统仿真设计 (17)5.1 Proteus 软件介绍 (17)5.2 Proteus 仿真图 (18)总结 (19)参考文献 (20)附录 (21)致谢 (27)基于单片机的电子密码锁仿真设计摘要电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。

本文以AT89C51单片机为核心器件,结合按键电路、LED数码管显示电路、报警指示电路和开锁机构,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能,其主要具有如下功能:●密码通过键盘输入,若密码正确,则将锁打开●密码输入错误,蜂鸣器将报警提示●用户可以自由设定密码本密码锁具有设计方法合理,简单易行成本低,安全实用等特点,具有一定的推广价值。

毕业设计-基于AT89C51单片机的电子密码锁的设计

毕业设计-基于AT89C51单片机的电子密码锁的设计

毕业设计(论文)题目:电子密码锁的设计学院:电气与信息工程学院专业:电子信息工程姓名:学号: ********* 指导老师:**完成时间: 2013年5月28日摘要随着经济社会发展,人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出。

传统的机械锁,由于其构造简单,安全性能低,无法满足人们的需要。

随着电子产品向智能化和微型化的不断发展,数字密码锁作为防盗卫士的作用显得尤为重要。

而单片机以其实用,功能强大,价格低廉等功能,已成为电子产品研制和开发中首选的控制器。

本文从经济实用的角度出发,阐述一个基于单片机的液晶显示电子密码锁的设计与实现。

系统采用ATMEL公司的AT89C51单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,4*4矩阵键盘作为输入设备,CMOS串行E2PROM存储器AT24C02作为数据存储器,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用C语言编写。

设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值。

关键词:单片机,密码锁,AT89C51,LCD1602,AT24C02AbstractWith the development of our society and the i mprovement of people’s living standard, how to ensure the family security is becoming more and more important in particular. Traditional mechanical lock is unable to meet the need of us because of its simple structure and low security. Nowadays, electronic products become smarter and smaller, electronic password anti-theft lock plays a more important role as the security guards. The MCU with its practical, strong function, low price and other functions , has become the preferred controller in electronic product research and development.This article is written from the economic perspective, elaborates the design and implementation of a LCD electronic password anti-theft lock which is based on MCU. This system is composed of AT89C51 which is designed as the core of this system, LCD1602 as the output device to display the message of this system, 4 * 4 matrix keyboard as the input device, a CMOS serial E2PROM AT24C02 as the data storage, and a buzzer, relay circuit.The software of the system is written in C language. The system displays in a LCD, it can change password easily, and has the function of alarming, locking, and so on. This system has some practical value, and it is simple and easy to use, meets the demand of residential and the need of office lock.Key Words: MCU, Password-Lock, AT89C51, LCD1602, AT24C02目录摘要 (I)Abstract ............................................................................................................................. I I 目录 ................................................................................................................................. I II 1引言 . (1)1.1课题的背景和意义 (1)1.2课题的研究现状 (1)1.3课题研究内容 (2)2 数字密码锁总体设计 (3)2.1 系统方案论证 (3)2.1.1 采用数字电路的设计方案 (3)2.1.2 采用以单片机为核心设计方案 (4)2.2 基于单片机的数字密码锁的设计原理 (5)3 系统硬件设计 (6)3.1 主要元器件介绍 (6)3.1.1 主控芯片AT89C51的的介绍 (6)3.1.2 继电器的介绍 (9)3.1.3 存储芯片AT24C02的介绍 (10)3.1.4 LCD1602显示器的介绍 (10)3.1.5 矩阵键盘模块的介绍 (11)3.2 系统硬件部分 (12)3.2.1 系统电源部分 (12)3.2.2 键盘输入部分 (13)3.2.3 密码存储部分 (14)3.2.4 显示部分 (14)3.2.5 报警部分 (15)3.2.6开锁部分 (16)4 系统软件设计 (17)4.1 系统程序流程图 (17)4.1.1主程序流程图 (17)4.1.2 键功能程序流程图 (18)4.1.3 修改密码程序流程图 (19)4.1.4 开锁程序流程图 (20)4.2 子程序举例 (21)4.2.1 按键扫描子程序 (21)4.2.2 显示子程序 (22)4.2.3 开锁子程序 (22)4.3 系统软件调试及结果 (24)4.3.1 Proteus软件介绍 (24)4.3.2 系统软件调试 (25)4.3.3 仿真结果 (25)5 硬件系统制作及调试 (29)5.1焊接注意事项 (29)5.2硬件调试问题及解决办法 (30)5.3硬件调试效果 (31)总结 (34)致谢 (35)参考文献 (36)附录 (37)附录A 电路原理图 (37)附录B 系统总体程序 (38)1引言1.1课题的背景和意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜。

(完整版)基于51单片机的电子密码锁毕业设计论文

(完整版)基于51单片机的电子密码锁毕业设计论文

(完整版)基于51单⽚机的电⼦密码锁毕业设计论⽂⽬录第1章绪论 (1)1.1电⼦锁的发展状况 (1)1.2设计电⼦密码锁的意义及相关技术指标 (1)第2章总体设计及⽅案论证 (2)2.1单⽚机模块 (2)2.2输⼊键盘模块 (2)2.2.1独⽴式按键 (2)2.2.2矩阵式键盘 (3)2.3数码管显⽰模块 (3)2.3.1 LED静态显⽰⽅式 (3)2.3.2 LED动态显⽰⽅式 (3)2.4电源模块 (3)2.4.1蓄电池供电 (3)2.4.2双路电源供电 (3)2.5开锁电路模块 (4)2.6报警电路模块 (4)2.7最优⽅案 (4)第3章硬件电路设计 (4)3.1输⼊键盘 (4)3.2显⽰数码管 (5)3.3开锁电路 (6)3.4报警电路 (6)3.5电源电路 (7)3.6复位电路 (7)3.7振荡电路 (8)第4章软件设计 (9)4.1主程序流程图及程序 (9)4.2延时⼦程序 (11)4.3修改密码⼦程序 (11)4.4扫描键盘输⼊⼦程序 (11)4.5中断及报警⼦程序 (12)4.6显⽰⼦程序 (13)第5章设计总结 (15)参考⽂献 (16)附录Ⅰ (17)附录Ⅱ (18)第1章绪论1.1电⼦锁的发展状况随着科技的发展,传统的机械锁被破解的概率越来越⾼了,新型的盗贼也学会了与时俱进,通过各种技术⽅法和⼿段即会在短时间内开启结构复杂的机械锁,会不留痕迹的登堂⼊室,给失主和警⽅留下各种不易解惑的疑团。

由此我们想到,要是在机械锁的基础上再装上⼀把电⼦锁,就彻底杜绝了单⼀机械锁易被开启的弊端,从⽽极⼤提⾼门锁的安全防范性能。

当今世界,电⼦锁发展已经到了⾮常⾼的境界,由于电⼦元件特别是单⽚机应⽤在最近⼏年得到空前发展,电⼦锁⽆论是在功能还是在稳定性⽅⾯都有了较⼤的提⾼,在保密性⽅⾯已经做到了密码识别、指纹识别、⼈声识别等。

就整体形势⽽⾔,电⼦锁在国外发展⽐较早,所以应⽤也⽐较⼴泛,主要⽤于家庭门锁,银⾏公司等的财务保险柜锁和政府机关及⾼级宾馆等重要场合的智能控制门锁等。

基于51单片机的密码锁(可改密码)

基于51单片机的密码锁(可改密码)

实习报告实习名称:单片机应用实习院(系)名称:电气与信息工程学院专业班级:xxxxxxxxx学生姓名:xxxxxx学号:xxxxxx指导教师:xxxxxxxxxx黑龙江工程学院教务处制2014年7月目录第1章总体设计方案 (4)1.1总体设计方案 (4)第2章硬件电路设计 (5)2.1单片机最小系统电路设计 (5)2.2液晶显示模块 (6)2.3键盘输入模块 (7)2.4 AT24C02密码存储模块 (8)2.5 系统供电电路设计 (9)2.6 蜂鸣器和继电器模块 (10)第3章系统软件设计 (11)3.1软件总体设计思路 (11)3.2主程序流程设计 (12)总结 (13)参考文献 (14)附录 (15)附录一 (15)附录二 (15)实习任务书学生姓名xxxx 系部电气与信息工程学院专业班级测控12-1指导教师姓名xxx 职称副教授讲师是否外聘□是否题目名称键盘式电子密码锁一、设计的内容、目的和意义本次实习是有关于键盘式电子密码锁的设计。

在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

本次实习的目的是实现电子密码锁的功能,并运用单片机技术设计一个结构简单,并且相对低成本的密码锁。

二、设计的技术指标要求1、研究方法(1)总体按照最优化的方法进行软件设计和硬件设计,走软件实现道路;(2)对软硬件进行模块划分,并对各单元电路结合EDA工具进行论证设计;(3)在查阅文献基础上展开设计,力求创新。

2、技术要求(1)采用6位密码(2)报警、锁定键盘功能。

基于51单片机的智能密码锁设计

基于51单片机的智能密码锁设计

基于51单片机的智能密码锁设计摘要:目前使用的智能密码锁大多数是基于单片机技术,本次设计以AT89C51作为主控芯片与数据存储单元,结合矩阵键盘的输入、LCD液晶显示、报警、开锁等。

用keil软件编写的控制程序,设计了一款具有设定和修改密码,并且具有报警功能的智能密码锁控制系统。

这种密码锁具有设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有比较强的实用性。

关键词:矩阵键盘;LCD;电磁锁;报警The design of the intelligent password lock based on 51 single chip microcomputerAbstract:The intelligent password lock most currently used are based on single chiptechnology, the design takes AT89C51 as the main control chip and the data storage unit, combined with the matrix keyboard input, the LCD liquid crystal display, alarm, lock etc.. Control program is compiled with keil software, designed a set and modify the password, and has intelligent cipher alarm lock control system.The cipher lock has the advantages of simple design, easy development, low cost, safe and reliable, convenient, safe and file cabinets need security can be applied to residential, office space, a relatively strong practical.Keywords: matrix keyboard; LCD; electromagnetic lock; alarm目录1、引言.................................. 错误!未定义书签。

基于51单片机的门禁系统之电子密码锁

基于51单片机的门禁系统之电子密码锁

在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

本文中电子密码锁将实现以下功能:1.通过矩阵键盘来输入密码,如果密码正确则门打开,如果密码不正确提示剩余输入次数,次数为0则锁定2分钟后才能再输入。

2.门打开后等待关门信号(本文中用P3^4接按键模拟),待收到信号后表示门已关闭。

3.可以通过按键来修改密码,修改前需要验证原密码。

4.支持掉电保存功能。

5. 为了防止密码被窃取,本文中的密码采用ASCII存放,并且存放地址无规则(可根据自己需求修改)。

特别说明:1. 由于代码长度过大,请大家用大内存的单片机测试(本文中采用STC90C58RD+ 12T 单片机);2. CPU时钟请用11.0592MHz(液晶画点部分用22.1184MHz测试时失败!估计是速度过高);3. 本文中的EEprom采用的是STC单片机内部EEProm,如果大家要用24Cxx系列或其它存储器请自行修改代码;4. 由于测试最小系统接口限制,请大家测试时自行修改接口定义(液晶接口、矩阵接口、独立按键接口);5. 本文中开、关门控制接口程序中没有引出,只用到“Door”这个逻辑型变量,大家在做实物时请自行定义一个接口,并赋该变量值即可!6. 第一次使用时(用STC自带EEProm)请先写入初始密码(将主程序屏蔽的那7行代码解除屏蔽,写入后再屏蔽掉即可!),程序中的初始密码为“888888”;7. 本文中采用的是12864图形液晶(不带字库的),请大家务必注意8. 本文只简单的实现的密码锁的基础功能,需要更高级功能的朋友请自行添加!9. 由于个人能力有限,程序中难免存在BUG,遇到BUG请大家及时反馈以便在后期加以修正。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机的电子锁设计说明书一、概述:随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。

本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。

根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。

而且采用键盘输入的电子密码锁具有较高的优势。

采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。

软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。

测试结果表明,本系统各项功能已达到本设计的所有要求。

着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。

在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。

(如指纹、眼底视网膜等)来控制锁的开启。

从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。

当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。

二、设计目的和任务:1.熟悉8051单片机的内部结构和功能,合理使用其内部寄存器2.能完成相关软件编程设计工作。

为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。

3.对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。

4.密码由用户自己设定,在开锁状态下,用户可自行修改密码。

5.具有自动报警功能。

自动报警分现场报警和远程报警两种。

现场报警由扬声器发出报警声。

三、方案选择:电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。

大大提高了主人物资的安全性,安全可以代替老式机械锁。

目前使用的密码锁种类繁多,各具特色。

本文从经济实用的角度出发,采用AT89C2051单机,研制了一款具有防盗自动报警功能的电子密码锁。

该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。

1.系统设置4位密码,密码通过键盘输入,若密码正确,则将锁打开。

2. 具有自动报警功能。

自动报警分现场报警和远程报警两种。

现场报警由扬声器发出报警声。

3.两种情况下可报警:一是密码输入错误3次,则报警;二是非正常开门,如破门而入的情况,可通过系统的红外监视装置监测,同时报警,保证了系统的安全性。

系统工作时,用户通过按键输入4位密码,单片机将输入密码与设定密码进行比较,若密码正确,则发出开锁信号,将门打开,系统不报警;若密码不正确,则有相应的指示灯闪动,并要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。

四、主控芯片AT89C51单片机的简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器。

主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

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

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

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

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

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

五、电路设计:1.框图:本设计由主控芯片51单片机,单片机时钟电路,键盘,和开锁电路组成。

单片负责控制整个系统的执行过程。

2.局部电路:a)开锁设计:通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。

本设计通过P3.0接一个3极管驱动继电器打开电磁阀线圈实现开关门。

当用户输入的密码正确而且是在规定的时间及次数输入之内,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。

b)晶振电路设计:单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路c)复位电路设计:d)串接口功能介绍:单片的P1口外接1位8段数码管,作为密码输入显示器;INT0外接蜂鸣器,当INT0被置0时,蜂鸣器发出声音;P0口外接发光二极管用作系统工作状态提示。

e)系统电路设计本系统电路主芯片AT89C51,晶振和两个电容组成的时钟脉冲,一个电阻和一个电解电容和一个按键组成的复位电路,一个8段数码管构成的密码显示器,一个蜂鸣器,5个LED,一个NPN三极管加上一个继电器组成的驱动电路构成了系统电路。

2.整体电路如下:八段数码管显示你的摩斯按键是否正确对应你要输入的数字密码。

由于采取上电设置密码的编程方法复位键即密码修改键设置在门后,要打开门才能修改密码。

设置密码后若输入密码不对的前两次5秒报警,最后一次10分钟报警,摩斯按发错误除外(但有两秒报警,并且须全部密码重新输入)。

本电路设置四位密码,由于每位数字键均由五位摩斯码构成则要输入20次摩斯码键!!p0.0(绿色)“滴”显示,p0.2(黄色)“嗒”音显示,p0.4(红色)摩斯码按法错误或密码错误,p0.6(蓝色)表示该电路已设置了密码,等待输入密码进行比较。

PROTEL绘制的PCB板:六、软件设计:程序设计语言有三种:机器语言、汇编语言和高级语言。

机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。

高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。

原因在于,本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那样占用较多的存储空间,适合于存储容量较小的系统。

系统软件设计流程图主程序如下:main1: mov ps1 ,#00hmov ps2 ,#00hmov ps3 ,#00hmov ps4 ,#00hmov at1 ,#00hmov at2 ,#00hmov at3 ,#00hmov at4 ,#00hmain:mov xs_0 ,#1fh ;显示0的摩斯值mov xs_1 ,#0fh ;显示1的摩斯值mov xs_2 ,#07h ;显示2的摩斯值mov xs_3 ,#03h ;显示3的摩斯值mov xs_4 ,#01h ;显示4的摩斯值mov xs_5 ,#00h ;显示5的摩斯值mov xs_6 ,#10h ;显示6的摩斯值mov xs_7 ,#18h ;显示7的摩斯值mov xs_8 ,#1ch ;显示8的摩斯值mov xs_9 ,#1eh ;显示9的摩斯值clr p3.0 ;RXD置0mov a ,#00h ;密码缓存mov r2 ,#04h ;四位密码mov r1 ,#00hmov r0 ,#ps1mov r7 ,#05h ;摩斯次数,由于数字为5次clr p2.7完整程序如下:mov ps4 ,#00hmov at1 ,#00hmov at2 ,#00hmov at3 ,#00hmov at4 ,#00hmain:mov xs_0 ,#1fh ;显示0的摩斯值mov xs_1 ,#0fh ;显示1的摩斯值mov xs_2 ,#07h ;显示2的摩斯值mov xs_3 ,#03h ;显示3的摩斯值mov xs_4 ,#01h ;显示4的摩斯值mov xs_5 ,#00h ;显示5的摩斯值mov xs_6 ,#10h ;显示6的摩斯值mov xs_7 ,#18h ;显示7的摩斯值mov xs_8 ,#1ch ;显示8的摩斯值mov xs_9 ,#1eh ;显示9的摩斯值clr p3.0 ;RXD置0mov a ,#00h ;密码缓存mov r2 ,#04h ;四位密码mov r1 ,#00hmov r0 ,#ps1mov r7 ,#05h ;摩斯次数,由于数字为5次clr p2.7start:mov p0 ,#0ffhmov p1 ,#0ffhsetb p2.4 ;按键位jb p2.4 ,start ;2.4为1转startlcall delay500msjb p2.4 ,startok: ;嘀的音clr p0.0lcall delay500msjnb p2.4 ,daa ;是否去嗒音cun: ;setb p0.2setb p0.0rl aadd a ,r1 ;存入一位摩斯码djnz r7 ,yanshi ;是否够五位摩斯码ajmp xianshiyanshi: ;输入一位摩斯码停顿1t lcall delay500msjb p2.4 ,mainajmp okdaa: ;嗒的音lcall delay500msjb p2.4 ,stopsetb p0.0clr p0.2lcall delay500mssetb p0.2jnb p2.4 ,stopmov r1 ,#01hajmp cunstop: ;摩斯输入错误clr p0.4lcall delay2ssetb p0.4ajmp maincunchu:mov @r0 ,ainc r0mov a ,#00hmov r1 ,#00hmov r7 ,#05hdjnz r2 ,yanshiclr p0.6lcall delay2ssetb p0.6ajmp shuruxianshi:cjne a ,xs_0 ,next1 ;够五位摩斯码显示0 mov p1 ,#0c0hclr p3.2 ;报警器lcall delay1ssetb p3.2 ;报警器mov p1 ,#0ffhajmp cunchunext1:cjne a ,xs_1 ,next2 ;够五位摩斯码显示1 mov p1 ,#0f9hclr p3.2lcall delay1ssetb p3.2mov p0 ,#0ffhajmp cunchunext2:cjne a ,xs_2 ,next3 ;够五位摩斯码显示2 mov p1 ,#0a4hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext3:cjne a ,xs_3 ,next4 ;够五位摩斯码显示3mov p1 ,#0b0hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext4:cjne a ,xs_4 ,next5 ;够五位摩斯码显示4mov p1 ,#99hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext5:cjne a ,xs_5 ,next6 ;够五位摩斯码显示5mov p1 ,#92hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext6:cjne a ,xs_6 ,next7 ;够五位摩斯码显示6mov p1 ,#7dhclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext7:cjne a ,xs_7 ,next8 ;够五位摩斯码显示7mov p1 ,#0f8hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext8:cjne a ,xs_8 ,next9 ;够五位摩斯码显示8mov p1 ,#080hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchunext9:cjne a ,xs_9 ,cw ;够五位摩斯码显示9mov p1 ,#90hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchucw:clr p3.2clr p0.4lcall delay5sclr p0.4setb p3.2ajmp main1shuru: ;开门复位mov mmbz ,#03 ;错误密码次数mov at1 ,#00hmov at2 ,#00hmov at3 ,#00hmov at4 ,#00hshuru2:clr p0.6mov a ,#00h ;密码缓存mov r2 ,#04h ;四位密码mov r1 ,#00hmov r0 ,#at1mov r7 ,#05hstart1:jb p2.4 ,start1lcall delay500msjb p2.4 ,start1ok1: ;滴音setb p3.0 ;开门后再按键1t以上关门setb p0.6clr p0.0lcall delay500msjnb p2.4 ,daaacun1:setb p0.2setb p0.0rl aadd a ,r1djnz r7 ,yanshi1ajmp xianshi1yanshi1: ;每个摩斯码之间延时1t lcall delay500msjb p2.4 ,stop1ajmp ok1daaa: ;嗒音lcall delay500msjb p2.4 ,stop1setb p0.0clr p0.2lcall delay500mssetb p0.2jnb p2.4 ,stop1mov r1 ,#01hajmp cun1stop1: ;摩斯码错误处理clr p0.4lcall delay2ssetb p0.4ajmp shuru2cunchu2:mov @r0 ,ainc r0mov a ,#00hmov r1 ,#00hmov r7 ,#05hdjnz r2 ,yanshi1ajmp bijiaoxianshi1: ;显示处理cjne a ,xs_0 ,next1_1mov p1 ,#0c0hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next1_1:cjne a ,xs_1 ,next2_2mov p1 ,#0f9hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next2_2:cjne a ,xs_2 ,next3_3mov p1 ,#0a4hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next3_3:cjne a ,xs_3 ,next4_4mov p1 ,#0b0hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next4_4:cjne a ,xs_4 ,next5_5mov p1 ,#99hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next5_5:cjne a ,xs_5 ,next6_6mov p1 ,#92hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next6_6:cjne a ,xs_6 ,next7_7mov p1 ,#82hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next7_7:cjne a ,xs_7 ,next8_8mov p1 ,#0f8hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next8_8:cjne a ,xs_8 ,next9_9mov p1 ,#80hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2next9_9:cjne a ,xs_9 ,cw2mov p1 ,#90hclr p3.2lcall delay1ssetb p3.2mov p1 ,#0ffhajmp cunchu2 bijiao: ;比较密码mov r6 ,#04mov r1 ,#ps1mov r0 ,#at1bj2:clr cmov a ,@r0subb a ,@r1cjne a ,#00h ,cw2inc r1inc r0djnz r6 ,bj2clr p3.2 ;密码正确clr p3.0lcall delay5ssetb p3.2ajmp shurucw2: ;密码错误处理djnz mmbz ,bjdmov p0 ,#00hclr p3.2lcall delay5minsetb p3.2mov p0 ,#0ffhajmp shuru2bjd:mov p0 ,#00hclr p3.2lcall delay5ssetb p3.2mov p0 ,#0ffhajmp shuru2delay500ms:mov hc0 ,#05ff1:mov hc1 ,#200fff1:mov hc2,#250djnz hc2 ,$djnz hc1 ,fff1djnz hc0 ,ff1retdelay1s:mov hc0 ,#10ff2:mov hc1 ,#200ff3:mov hc2 ,#250djnz hc2 ,$djnz hc1 ,ff3djnz hc0 ,ff2retdelay2s:mov hc0 ,#20ff4:mov hc1 ,#200ff5:mov hc2 ,#250djnz hc2 ,$djnz hc1 ,ff5djnz hc0 ,ff4retdelay5s:mov hc0 ,#50ff6:mov hc1 ,#200ff7:mov hc2 ,#250djnz hc2 ,$djnz hc1 ,ff7djnz hc0 ,ff6retdelay5min:mov hc0 ,#12qq1:mov hc1 ,#200qq2:mov hc2 ,#250qq3:mov hc3 ,#250djnz hc3 ,$djnz hc2,qq3djnz hc1 ,qq2djnz hc0 ,qq1retend枯藤老树昏鸦,小桥流水人家,古道西风瘦马。

相关文档
最新文档