一种简单的基于51单片机的电子密码锁设计
1 单片机电子密码锁的背景和设计特点
在高科技迅速发展的今天,人们已经发明了密码锁、电子锁和激光锁等多种形式。这些锁在传统钥匙的基础上,利用磁场、声波和光束等多种方式来控制锁的开启和关闭,从而有效地增强了锁的安全性,保护了人们的生命财产和安全,有效地防止盗贼的光顾。
单片机又称为单片微电脑或者单片微型计算机,它有效的集合了中央处理器、只读存储器、随机存取存储器和输入输出端口等计算机功能部件。计算机体积庞大,不易携带,导致单片机的应运而生,电子密码锁就是在单片机的外部接上简单的电路,人为的写入程序来完成其核心部分,这样不仅能够缩小锁的体积还能够降低成本,保持精度,并且能够有效的升级和改善电子密码锁。
2 单片机密码锁的系统设计
2.1 单片机密码锁系统的总设计结构图
2.2 单片机开锁机构的设计
单片机开锁机构的设计是将单片机送入开锁执行的机构,促使电路驱动和电磁锁吸合,进而开锁。本文设计的电子锁通过P3.0 来接入三极管进而驱动继电器来打开电磁阀线圈进而实现开门和关门。
根据上面的图形可知,当用户在规定的时间和输入次数内输入的密码正确时,单片密码锁便输出开门的信号,将信号传送到驱动开锁的电路,进而驱动电磁锁,实现开门。
2.3 单片机密码锁系统硬件的设计
本文设计的电子锁的密码锁选用了简单容易操作并且不为众人所熟悉的摩期码当做电路的密码输入,该键盘的硬件设备只要用一个按键就可以实现此密码锁密码的输入和改变。摩斯密码的命名来源是来自上世纪中期美国一位名叫摩尔斯的发明家,他发明了在电报传输使用中所运用的编码,因此摩斯密码有时也称作为摩尔斯密码,它是由一个输入按键在输入时按住时间间隔的长短来决定的:其中短促的电信号“.”读作“DI”,而长时间保持按键不动的“-”读作“DA”,具体而言,“滴”的间隔时间为1T,“嗒”的间隔时间为3T,“嘀嗒”的间隔时间为1T ;字母之间的间隔时间为3T,字与字之间的间隔时间为5T,下面具体列出各个字符和摩斯密码的对照表。
2.4 电路焊接
首先电路焊接所需要的工具,如下图所示
本电子密码锁的系统电路的主芯片是AT89C51, 其中包括时钟脉冲、电阻、电解电容以及由一个按键构成的复位电路,还有一个由八段数码管组成的密码显示器以及一个蜂鸣器和五个LED灯管,一个NPN 三极管和一个继电器,结合上面所述的驱动电路构成了此电子密码锁的系统电路。
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 主程
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)