1 单片机电子密码锁的背景和设计特点
在高科技迅速发展的今天,人们已经发明了密码锁、电子锁和激光锁等多种形式。这些锁在传统钥匙的基础上,利用磁场、声波和光束等多种方式来控制锁的开启和关闭,从而有效地增强了锁的安全性,保护了人们的生命财产和安全,有效地防止盗贼的光顾。
单片机又称为单片微电脑或者单片微型计算机,它有效的集合了中央处理器、只读存储器、随机存取存储器和输入输出端口等计算机功能部件。计算机体积庞大,不易携带,导致单片机的应运而生,电子密码锁就是在单片机的外部接上简单的电路,人为的写入程序来完成其核心部分,这样不仅能够缩小锁的体积还能够降低成本,保持精度,并且能够有效的升级和改善电子密码锁。
2 单片机密码锁的系统设计
2.1 单片机密码锁系统的总设计结构图
2.2 单片机开锁机构的设计
单片机开锁机构的设计是将单片机送入开锁执行的机构,促使电路驱动和电磁锁吸合,进而开锁。本文设计的电子锁通过P3.0 来接入三极管进而驱动继电器来打开电磁阀线圈进而实现开门和关门。
根据上面的图形可知,当用户在规定的时间和输入次数内输入的密码正确时,单片密码锁便输出开门的信号,将信号传送到驱动开锁的电路,进而驱动电磁锁,实现开门。
2.3 单片机密码锁系统硬件的设计
本文设计的电子锁的密码锁选用了简单容易操作并且不为众人所熟悉的摩期码当做电路的密码输入,该键盘的硬件设备只要用一个按键就可以实现此密码锁密码的输入和改变。摩斯密码的命名来源是来自上世纪中期美国一位名叫摩尔斯的发明家,他发明了在电报传输使用中所运用的编码,因此摩斯密码有时也称作为摩尔斯密码,它是由一个输入按键在输入时按住时间间隔的长短来决定的:其中短促的电信号“.”读作“DI”,而长时间保持按键不动的“-”读作“DA”,具体而言,“滴”的间隔时间为1T,“嗒”的间隔时间为3T,“嘀嗒”的间隔时间为1T ;字母之间的间隔时间为3T,字与字之间的间隔时间为5T,下面具体列出各个字符和摩斯密码的对照表。
2.4 电路焊接
首先电路焊接所需要的工具,如下图所示
本电子密码锁的系统电路的主芯片是AT89C51, 其中包括时钟脉冲、电阻、电解电容以及由一个按键构成的复位电路,还有一个由八段数码管组成的密码显示器以及一个蜂鸣器和五个LED灯管,一个NPN 三极管和一个继电器,结合上面所述的驱动电路构成了此电子密码锁的系统电路。[page]
3 单片电子密码锁的软件设计
3.1 单片电子锁的系统软件设计整体思路
单片电子锁的应用系统如果要完美的完成各项功能,首先必须要有比较完整的硬件当做保证,其次要得到与之想适应的设计比较合理的软件进行支持。这是因为在信息技术飞速发展的今天,软件编程逐渐代替了许多过去用硬件完成的工作,对于一些需要很复杂的硬件电路完成的工作,如果选用软件编程则会简单了许多。针对上述情况,充分采取和利用丰富的软件和硬件资源,采用与C51 系列单片机相适应的51 汇编语言与结构化的程序设计方法进行相应的软件编程。
3.2 单片机电子密码锁系统软件的设计流程图
4 单片电子密码锁的程序调试
本文的单片式密码锁的调试程序需要运用到KEILC51 以及和其配套的下载烧录软件,KEILC51 是美国KEIL 公司生产的能够兼容单片机C 语言的软件开发系统,具有汇编语言无法比拟的优势,具体表现在功能结构和可读性与可维护性上面,并且容易被人们学习和使用。KEILC51 软件拥有非常丰富的库函数和功能比较强大的集成开发调试工具,整个系统都采用全WINDOWS 操作界面,和其它软件不同的是,KEILC51 软件只要看一下经过编译之后生产的汇编代码,就可以领会到KEILC51 比较高的目标代码效率和紧凑容易理解的汇编代码,这是其比较明显的优势。
KEILC51 工具包能够独立的完成编辑。翻译。连接、调试和仿真等一系列的开发流程,其中UVISION 和ISHELL 分别是KEILC51对WINDOWS 与DOS 的集成开发环境。这样就使得开发人员可以通过KEILC51 集成开发环境自身或者采用别的编辑器来编辑C语言或者汇编源的文件,最后再分别由KEILC51 和KEILA51 的编译器来编译已经生产的目标文件。这种目标文件不仅可以再由LIB51 来创建生成库的文件,还可以和库文件结合起来通过连接L51 来具体的定位,最后生成绝对目标的文件-ABS.开发人员将ABS 文件从OH51 文件转变成为HEX 文件,从而能够使调试器DSCOPE51 或者TSCOPE51 的使用进行一系列的源代码级别的调试,当然也可以用仿真器对目标板进行直接的调试,最终写入程序存贮器中。
具体的调试方法是,首先打开KEILC51 主程序,新建一个工程,之后将程序写进新建的文本框内,再保存之后检测一下是否有语法错误,当反复检测发现没有错误之后再进行汇编,此时生成的51 单片机能够执行HEX 文件,最后用与KEILC51 开发板相匹配的烧录软件将HEX 写进单片机里。
5 结束语
科技进步和经济的发展是当今时代的主题,人们生活水平的提高必然要求其对锁这一日常必需品的品质和防盗性能的要求的越发严格。传统的机械锁由于构造简单,已经远远不能满足人们的需求,只有在现实实际运用中加强基于单片机电子密码锁的检测和运用,才能够推动其的进一步使用和推广。电子锁是信息化时代的产物,随着科学技术的不断更新和发展,日后的电子锁一定更加人性化,更加方便和安全
关键字:51单片机 电子密码锁 AT89C51
引用地址:
一种简单的基于51单片机的电子密码锁设计
推荐阅读最新更新时间:2024-03-16 13:30
基于51单片机对两路DS18B20温度传感器的设计
本文提出了基于51单片机两路温度控制器的设计方案,该设计方案采用两个DS18B20温度传感器,采集两个不同地方的温度,通过AT89C51处理进行,由四位LED数码管显示所测量温度,前两位为第一个温度传感器的温度,后两位为第二个温度传感器的温度。采用3个按键实现温度最高和最低的设定,采用蜂鸣器和电动机实现温度过高或过低报警。 1.引言 目前,温度控制器存在的问题是如何缩减成本,减少功耗,温度测量的准确性和多路温度的同时显示。本方案设计的实现基于C51单片机的两路温度控制器,做到成本最低化,精确度高,两路温度的显示和控制,能在温度超出设定的最高温度时启动电风扇进行降温,在温度低于设定的最低温度时启动蜂鸣器报警,能够用户设定最高
[单片机]
大虾谈51单片机入门!
回想起当初学习AT89S52的日子还近在眼前:毕业后的第一年呆在亲戚公司做了10个月设备管理.乏味的工作和繁杂的琐事让我郁闷不已.思考很久后终于辞职.投奔我的同学去了,开始并不曾想到要进入工控行业,知识想找一份电子类技术职业,至于什么职业我根本没有目标可言.经过两个多月的挫折后我静下来思考,并上网查询一些前辈经验,又经过快2周的考虑我决定先自学单片机,毕竟电子信息专业的,有一点基础.于是买来了开发板(我还在这个论坛上发过小程序呢),下来了大量的资料,几乎很多是从本论坛下载的,我还是得感觉这么多的前辈啊,他们的经验让新人少走了很多弯路.我说下我的学习过程,每个人有每个人的学习方法,希望至少能给刚进入的朋友们一点信心吧. 语言选择:
[单片机]
51单片机开发之定时器
4.1 定时器 4.1.1 51时钟周期介绍 时钟周期:时钟周期T是时序中最小的时间单位,具体计算的方法就是 1/时钟源频率,89C51单片机开发板上常用的晶振是11.0592M,对于这个单片机系统来说,时钟周期=1/11059200 秒。 机器周期:是单片机完成一个操作的最短时间。 机器周期主要针对汇编语言而言,在汇编语言下程序的每一条语句执行所使用的时间都是机器周期的整数倍,而且语句占用的时间是可以计算出来的,而 C 语言一条语句的时间是不确定的,受到诸多因素的影响。 51单片机系列,在其标准架构下一个机器周期是 12 个时钟周期,也就是 12/11059200 秒。 现在很多的增强型51单片机,其速度都比较块
[单片机]
51单片机T0做精确时钟
用T0做精确时钟,为了做到尽量精确,必须减少中断的次数,所以选择使用方式1,它最多可以计数65536次。但是,方式1中断后需要重新给定时器赋初值,这样就要耽误几个机器周期,很难保证时钟的精确。 有两个方法可以解决这个问题。 第一个方法:你可以计算出中断处理时重新给定时器赋初值所用的机器周期数,在你计算出的初值里除去这几个机器周期,作为补偿。这个方法,只是在每次定时器中断后,都可以按时得到执行时很精确,但事实上中断什么时候执行谁都说不准,所以这个方法,只能做到尽量精确。 第二个方法:计算出一个凑巧的初值,使TL0正好等于0x00,这样每次中断溢出后,TL0都从0x00开始计数,即使中断没有得到执行,TL0也会继续计数。利用这一点,
[单片机]
51单片机C编程(六、定时器时钟显示时分秒)
六位数码管显示时分秒,通过四个按键进行时间的控制。按下 调时 按键,时间显示停止;按下 选择时分秒 按键,数码管上方的发光二极管会点亮,对应着选中的要修改的时间是小时、分钟还是秒;按下 按下增加 按键,选中的时间将会增加;按下 完成 按键,时间继续显示。 已通过proteus仿真,电路图如下所示,希望大家多多指点,积极留言: //编程:jumpmysoul #include reg51.h #define ulong unsigned long char tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管数字码 char tab_dp ={
[单片机]
基于AT89C51的时间/位移换向控制器设计
引言
在实际生产过程中,常常要用到具有自动换向功能的控制部件,如机械加工中的往返运行(位移),直流电源的正反向输出,电动机的正反转运行等现象,都是当正向(或反向)运行到一定时间或一定位置时,自动换为反向(或正向)运行,周而复始的过程。实现这一过程的自动化,就是设计一套控制电路,再配以位移传感器或时间继电器。目前市场现有的时间继电器虽然可以用多个组合来满足一些使用场合的要求,但仍存在着重复计时误差大,稳定可靠运行性不高,使用不方便灵活等问题。为此,笔者研发了以单片机为核心组成的时间/位移换向控制器SWHX-1,该系统具有成本低等特点,可完全且克服以上不足。
电路组成及工作原理
SWHX-1的内部电路如图1所示。该系统分
[单片机]
MCS51单片机的排序程序(ASM源代码)
MCS51单片机的排序程序(ASM源代码) ;内部RAM数据排序程序(升序) ;入口 :R0(起始地址),N(数据个数) ;占用资源:ACC,B,R5,R6,R7 ;堆栈需求:2字节 ;出口 :R0 ISELSORT :MOV R7,N DEC R7 ISST1 :MOV A,R7 MOV R6,A MOV A,R0 MOV R1,A MOV R2,A MOV B,@R1 ISST2 :INC R1 MOV A,@R1 CLR C SUBB A,B JC ISST3 MOV A,R
[单片机]
51单片机——IIC、EEPROM数据存储 C语言入门编程
IIC: I2C(Inter-Integrated Circuit)总线是由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单, 器件封装形式小,通信速率较高等优点。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。由于其管脚少,硬件实现简单,可扩展性强等特点,因此被广泛的使用在各大集成芯片内。 (1)它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在 一个I2C通讯总线中,可连接多个I2C通讯设备,支持多个通讯主机及多个通 讯从机。 (2)一个I2C总线只使用两条总线
[单片机]