今天给各位分享电子密码锁安装、调试、维护教学任务的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
1、了解单片机的特点和结构。
2、阅读MCS-51的各个引脚,掌握其工作原理。
3、理解并按要求编写基本的单片机指令。
4、电子密码锁部件特点。
5、了解电子密码锁原理图。
6、了解电子密码锁安装图。
7、了解电子密码锁的操作流程。
8、电子密码锁的安装、调试和维护。
学习内容:
1、单片机的特点和结构。
2、阅读MCS-51的各个引脚,掌握其工作原理。
3. 认识指令的结构、类型和书写方式
4、电子锁电子元件的特点。
5、电子锁的工作原理、特点及类型。
6、电子锁电子元件测试。
7、设计电子锁程序。
本次学习情况有3,336,044课时
本课题的教学步骤可分为:
1. 发布使命宣言
2. 学习过程
3.指导问题
4. 相关表格
5、自测题(评价标准、测试题)
使命宣言
随着生活水平的提高,人们对环境安全的要求越来越高。本设计主要基于单片智能锁的软硬件设计与实现。本电路设计具有有效按键提示、输入错误提示、开锁级别控制、报警电路控制、密码修改等多种功能,可在意外情况下使用。万一泄露,可以随时更改密码。 4 位密码有10,000 种不重复的组合。其保密性强,灵活性高。特别适用于家庭、办公室、学生宿舍、酒店等公共场所。
通过本课题的学习,您可以独立完成密码锁的组装并进行其他类型密码锁的维护;下图是密码锁的电气原理图。
图1 电子密码锁原理图
图2 实景图
总体方案设计
设计理念
共有9个用户输入键,其中只有4个是有效密码键,其余都是干扰键。如果按下干扰键,则键盘输入电路自动清除,原来输入的密码无效,需要重新输入;如果用户输入密码超过40秒(一般情况下用户不会超过40秒,如果用户觉得不方便,可以修改)电路将报警80秒。如果电路连续报警3次,电路将锁定键盘5分钟,防止他人输入密码。非法经营。
它采用AT89S51作为核心单片机控制方案。利用单片机灵活的编程设计和丰富的IO口,以及其控制的准确性,不仅可以实现基本的密码锁功能,还可以增加功率调节存储、声光提示,甚至远程控制功能。原理如图2-2所示。
图2-2 单片机控制方案
解锁机构
单片机发送到开锁执行机构,电路驱动电磁锁关闭,从而达到开锁的目的。原理如图2-3所示。
图2-3 密码锁解锁机构示意图
当用户输入的密码正确时,单片机输出开门信号,送至开锁驱动电路,驱动电磁锁开门。实际电路如图2-4所示。
该电路由驱动和解锁两个阶段组成。驱动电路由D5、R1、T10组成。 T10可选用9014、9018等普通小功率晶体管即可满足要求。 D5为解锁指示灯;由D6、C24、T11组成,用于开门。其中D6和C24是为了消除电磁锁可能产生的反向高压以及可能产生的电磁干扰。 T11可采用8050等中功率晶体管。电磁锁的选择视情况而定,但吸力必须足够,并有一定的余量。
注:设计中暂时用发光二极管代替电磁锁。如果发光二极管亮,则表示锁已解锁;如果熄灭,则表示锁未解锁。
图2-4 密码锁解锁机构电路图
按键电路设计
由于本设计需要使用矩阵键盘,因此本设计采用矩阵键盘,也可以减少键盘与单片机接口时占用的I/O线数量。这种方法通常在key较多的情况下使用。原理如图2-5所示。
图2-5 矩阵键盘电路原理图
每条水平线(行线)和垂直线(列线)的交点并不相连,而是通过按钮相连。采用这种行列式矩阵结构,只需要N行线和M列线即可组成具有NM个按键的A键盘。
首先判断键盘上是否有按键按下。单片机的I/O口向键盘发送全扫描字,然后读取线路状态进行判断。方法是:输出全扫描字00H到行线,将所有列线置为低电平,然后将列线的电平状态读入累加器A。如果按下按钮,则总是有一条行线拉低电平,使得行线不全部为1。通过逐列将列线设置为低电平,然后检查行输入状态来确定按下键盘上的哪个键。方法是:依次向列线发送低电平,然后检查所有行线的状态。如果全部为1,则按下的键不在本列中;如果不是全部为1,则按下的键一定在这一列中。就是与零电平行线交点处的键。
按钮操作面板如图2-6所示。共有10个数字键和2个功能键。
图2-6 按键操作面板示意图
10个数字键用于输入密码,另外2个功能键是:解锁和锁定。加锁和解锁过程在1-2中已经详细介绍,这里不再赘述。
面板上还有一个蜂鸣器。其功能之一是指示操作按钮是否按下成功。另一个功能是当用户输入错误密码超过3次时发出警报。
显示电路设计
本系统设计的显示电路采用串行显示,以节省单片机的接口资源。只需要使用单片机的两个串口即可完成单片机的显示功能。显示电路原理图如图2-7所示。展示。
电路设置:当程序检测到5分钟内没有按键操作时,显示屏将关闭。该功能是通过程序来实现的。一旦没有按键动作,计时器就会启动。当5分钟内没有按键动作时,启动程序并关闭显示屏。这样就可以达到省电的目的。
单片机串口输出的信号首先送入左移位寄存器(74HC164)。由于移位脉冲的作用,数据向右移位,达到显示的目的。移位寄存器74HC164还充当数码管的驱动器。插头1(header1)连接到电源,插头2(header2)连接到数据和脉冲输出端子。电路中三个整流器D1~D3的作用是降低数码管的工作电压,增加其使用寿命。
图2-7 显示示意图
程序
程序:
;======================定义参数============================
LED_ON 位00H;数码管明暗标记(1表示亮,0表示暗)
钥匙卡位01H;关键标记
PWD_右位02H;密码是否正确(1表示正确,0表示错误)
KEY_LOCK 位03H;键盘锁(1表示锁定,0表示打开)
声音钻头P1.4;蜂鸣器
绿色位P1.5;绿灯
红色位P1.6;红灯
LED1 EQU 50H;数码管自动调光时间数1
钥匙EQU 53H;关键值
KEY1 EQU 54H;键行值
PWD1 EQU 56H;保存密码1
PWD2 EQU 57H;保存密码2
PWD3 EQU 58H;保存密码3
PWD4 EQU 59H;保存密码4
显示1 EQU 5AH;显示1
显示2 EQU 5BH;显示2
SHOW3 EQU 5CH;显示3
显示4 EQU 5DH;显示4
显示0 EQU 5EH;临时使用
;====================程序开始================================
组织0000H
AJMP初始化
;======================初始化================================
组织0030H
初始化:
MOV P0,#40H
MOV P2,#0FH
MOV P3,#00H
MOV LED1,#3FH
移动键,#00H
移动键1,#00H
MOV SHOW0,#00H
MOV SHOW1,#00H
MOV SHOW2,#10H
MOV SHOW3,#20H
MOV SHOW4,#30H
LCALL PWD_INIT
设置LED_ON
CLR PWD_RIGHT
塞特·桑德
塞特布雷德
设置绿色
清除键锁
CLR钥匙卡
主程序
;===============================================================主程序========================================================
主控:
MOV P2,#0FH
MOV P3,#00H
LCALL KEY_FIRST;调用键盘程序
JNB 钥匙卡,主;当KEYCARD=0时,不按键会跳回MAIN
LCALL KEY_MAIN ;当KEYCARD=0时,调用键盘处理程序
JNB 钥匙卡,主
LJMP MKEY_FUNCTION;跳转到主程序键盘按键处理程序
;===============================================================结束=========================================================
;======================检测第一个按键=========================
KEY_FIRST:
JNB LED_ON,KEY_LOOP
MOV A、P2;数码管亮时扫描
ANL A, #0FH ;屏幕将丢弃高4位
CJNE A,#0FH,KEY_SECOND;判断某个键是否被按下
CLR 钥匙卡;如果没有钥匙,KEYCARD 设置为0
LCALL LED_DISPLAY ;调用显示子程序
DJNZ LED1,电调
清除LED_ON
MOV LED1,#03FH
电调:
视网膜色素变性
KEY_LOOP:数码管暗时扫描
MOV A、P2
ANL A,#0FH
CJNE A,#0FH,KEY_SECOND
CLR钥匙卡
视网膜色素变性
;========================检测第二次按键==================
KEY_SECOND:
LCALL BEEP1 ;按键音
JNB LED_ON,KEY_EXIT1;如果LED 是暗的,则将LED_ON 设置为1
MOV LED1,#03FH
LCall延迟10MS;去抖,延迟10ms
MOV A, P2 ;重新扫描键盘
ANL A,#0FH
CJNE A,#0FH,KEY_EN;当按下某个键时,将KEYCARD 设置为1
CLR 钥匙卡;如果没有按下任何键,则将KEYCARD 设置为0
视网膜色素变性
KEY_EXIT1:
LALL KEY_RELEASE
设置LED_ON
视网膜色素变性
KEY_EN:
SETB KEYCARD ;将KEYCARD 设置为1
视网膜色素变性
;==================================================KEY_MAIN===================================================
KEY_MAIN:
莫夫R3,#0EH
MOV R4,#04H ;循环次数
KEY_ROW:
MOV P3,R3
MOV A,P2
ANL A,#0FH
MOV KEY1,R3 ;保存行信息到KEY1
CJNE A,#0FH,KEY_WORD;如果这一行是,跳转到键值计算程序
MOV A,R3
SETB C
RLC A;带进位左旋转
ANL A,#0FH
MOV R3,A
DJNZ R4,KEY_ROW
CLR钥匙卡
视网膜色素变性
;================键值计算========================
KEY_WORD:
交换A
ORL A,KEY1;列+行=键值
MOV KEYS,A ;键值存储在KEYS中
视网膜色素变性
;====================================主程序中各按键功能=========================================
MKEY_FUNCTION:
移动键,A;将键值赋给A
MK0:
CJNE A,#0EEH,MK1
CLR钥匙卡
MOV SHOW1,#0BH
MOV SHOW2,#1BH
MOV SHOW3,#2BH
MOV SHOW4,#3BH
LCALL KEY_RELEASE;钥匙释放程序
莫夫R5,#05H
MOV R6,#03H
清除键锁
LOGIN_MAIN:输入密码主程序
MOV P2,#0FH
MOV P3,#00H
LCALL KEY_FIRST ;调用键盘扫描仪
JNB 钥匙卡,LOGIN_MAIN
LCALL KEY_MAIN ;调用键盘处理程序
LJMP LKEY_FUNCTION;输入密码时跳转到每个按键功能处理程序
MK1:
LALL KEY_RELEASE
LJMP主
;===================================================结束=====================================
;==========================工厂密码==============================
PWD_INIT:
MOV PWD1,#01H
MOV PWD2,#02H
莫夫PWD3,#03H
MOV PWD4,#04H
视网膜色素变性
;========================================输入密码时各键的作用======================================
LKEY_FUNCTION:
MOV A,按键
;==================无效密钥==============================
LK0:
CJNE A,#0EEH,LK1
LCALL LAMP_RED ;红灯闪烁
LALL KEY_RELEASE
LJMP 登录_主;返回输入密码主程序
LK1:
CJNE A,#0EDH,LK2
L呼叫灯_红色
LALL KEY_RELEASE
LJMP 登录_MAIN
LK2:
CJNE A,#0EBH,LK3
L呼叫灯_红色
LALL KEY_RELEASE
LJMP 登录_MAIN
;==================退出键==================
LK3:
CJNE A,#0E7H,LK4
MOV SHOW1,#00H
MOV SHOW2,#10H
MOV SHOW3,#20H
MOV SHOW4,#30H
清除键锁
LJMP MAIN ;返回主程序
;================清除键============================
LK4:
CJNE A,#07BH,LK5
MOV SHOW1,#0BH
MOV SHOW2,#1BH
MOV SHOW3,#2BH
MOV SHOW4,#3BH
莫夫R5,#05H
LALL KEY_RELEASE
LJMP 登录_MAIN
;================确定键==========================
LK5:
CJNE A,#077H,LK6
LCALL PWD_COMPARE ;调用密码检测子程序
LALL KEY_RELEASE
JB PWD_RIGHT,SYS_LOGIN;当PWD_RIGHT为1时,表示密码正确,跳转到SYS_LOGIN
DJNZ R6,LK5_退出;否则,将输入数R6减1
INC R6;如果输入数量已经是3,则保持R6为1
SETB KEY_LOCK ;将KEY_LOCK 设置为1
LK5_EXIT:
MOV SHOW1,#0BH
MOV SHOW2,#1BH
MOV SHOW3,#2BH
MOV SHOW4,#3BH
莫夫R5,#05H
LK5_ESC:
LALL KEY_RELEASE
LJMP 登录_主;返回输入密码主程序
;==============0-9数字键========================
LK6:
MOV R0,#00H
JB KEY_LOCK,LK6_EXIT;将KEY_LOCK 设置为1 时锁定数字键
DJNZ R5,LKEY_NUM;如果输入的数字达到4,数字键将被锁定,否则R5将减1
INC R5;如果输入数量已经是4,则保持R5为1
LK6_EXIT:
L呼叫蜂鸣2;键盘操作不正确时发出声音
AJMP LK6_ESC
LKEY_NUM:
MOV A,R0
INC R0
MOV DPTR,#KEY_VALUE
MOVC A,@A+DPTR
CJNE A,KEYS,LKEY_NUM
十月R0
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
移动键,A
奥尔拉A,#30H
MOV SHOW0,A
LCALL LED_MOVE ;调用左移函数
移动显示4,显示0
LK6_ESC:
AALL KEY_RELEASE
LJMP 登录_MAIN
;==========================================结束===================================================
;==================================登录系统========================================
SYS_LOGIN:
MOV SHOW1,#01H
MOV SHOW2,#11H
MOV SHOW3,#21H
MOV SHOW4,#31H
CLR 绿色;绿灯亮表示解锁成功。
SYS_MAIN:解锁状态主程序
MOV P2,#0FH
MOV P3,#00H
LCALL KEY_FIRST ;调用键盘扫描仪
JNB 钥匙卡,SYS_MAIN
LCALL KEY_MAIN ;调用键盘处理程序
LJMP SYSKEY_FUNCTION
;====================================登录系统后各按键的功能======================================
SYSKEY_FUNCTION:
MOV A,按键
;================更改密码密钥================
SYSK1:
CJNE A,#0EDH,SYSK2
SET_PWD:
莫夫R5,#05H
清除键锁
MOV SHOW1,#0AH
MOV SHOW2,#1AH
MOV SHOW3,#2AH
MOV SHOW4,#3AH
SETPWD_MAIN:修改密码主程序
MOV P2,#0FH
MOV P3,#00H
LCALL KEY_FIRST ;调用键盘扫描仪
JNB 钥匙卡,SETPWD_MAIN
LCALL KEY_MAIN ;调用键盘处理程序
LJMP SKEY_FUNCTION
;================恢复出厂设置============
SYSK2:
CJNE A,#0EBH,SYSK3
LCALL PWD_INIT
LALL KEY_RELEASE
LJMP 系统_主
;==================退出键==================
SYSK3:
CJNE A,#0E7H,SYSK4
MOV SHOW1,#00H
MOV SHOW2,#10H
MOV SHOW3,#20H
MOV SHOW4,#30H
清除键锁
SETB 绿色;关掉绿灯
LJMP 主;跳回主程序
;==================无效密钥==================
SYSK4:
来电蜂鸣2
LALL KEY_RELEASE
LJMP 系统_主
;====================================结束===================================================
;====================================各按键修改密码功能============================================
SKEY_FUNCTION:
MOV A,按键
;==================无效密钥======================
SK0:
CJNE A,#0EEH,SK1
L呼叫灯_红色
LALL KEY_RELEASE
LJMP SETPWD_MAIN
SK1:
CJNE A,#0EDH,SK2
L呼叫灯_红色
LALL KEY_RELEASE
LJMP SETPWD_MAIN
SK2:
CJNE A,#0EBH,SK3
L呼叫灯_红色
LALL KEY_RELEASE
LJMPSETPWD_MAIN
;==================退出并更改密码================
SK3:
CJNE A,#0E7H,SK4
MOV SHOW1,#01H
MOV SHOW2,#11H
MOV SHOW3,#21H
MOV SHOW4,#31H
LALL KEY_RELEASE
LJMP 系统_主
;==================清除键======================
SK4:
CJNE A,#07BH,SK5
MOV SHOW1,#0AH
MOV SHOW2,#1AH
MOV SHOW3,#2AH
MOV SHOW4,#3AH
莫夫R5,#05H
LALL KEY_RELEASE
LJMPSETPWD_MAIN
;================确认键======================
SK5:
CJNE A,#077H,SK6
LALL KEY_RELEASE
CJNE R5,#01H,SETPWD_FAIL;当输入的数字小于4时,密码修改不成功。
LCALL SETPWD_SUCCESS;成功调用SETPWD_SUCCESS
LJMP 系统_主
;================0-9数字键==================
SK6:
MOV R0,#00H
DJNZ R5,SKEY_NUM
INC R5
来电蜂鸣2
AJMPSK6_ESC
SKEY_NUM:
MOV A,R0
INC R0
MOV DPTR,#KEY_VALUE
MOVC A,@A+DPTR
CJNE A,KEYS,SKEY_NUM
十月R0
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
移动键,A
奥尔拉A,#30H
MOV SHOW0,A
LALL LED_MOVE
移动显示4,显示0
SK6_ESC:
AALL KEY_RELEASE
LJMPSETPWD_MAIN
;==============================================END===============================================
;======================================更改密码失败===========================
======== SETPWD_FAIL: LJMP SET_PWD ;====================================修改密码成功================================== SETPWD_SUCCESS: ANL SHOW1,#0FH ANL SHOW2,#0FH ANL SHOW3,#0FH ANL SHOW4,#0FH MOV PWD1,SHOW1 MOV PWD2,SHOW2 MOV PWD3,SHOW3 MOV PWD4,SHOW4 MOV SHOW1,#01H MOV SHOW2,#11H MOV SHOW3,#21H MOV SHOW4,#31H LCALL LAMP_GREEN ;闪绿灯 RET ;=====================================左移功能============================================== LED_MOVE: CLR C MOV A, SHOW2 SUBB A,#10H MOV SHOW1,A CLR C MOV A, SHOW3 SUBB A,#10H MOV SHOW2,A CLR C MOV A, SHOW4 SUBB A,#10H MOV SHOW3,A RET ;======================================密码检测======================================== PWD_COMPARE: MOV A, SHOW1 ANL A, #0FH CJNE A, PWD1,PWD_EXIT MOV A, SHOW2 ANL A, #0FH CJNE A, PWD2,PWD_EXIT MOV A, SHOW3 ANL A, #0FH CJNE A, PWD3,PWD_EXIT MOV A, SHOW4 ANL A, #0FH CJNE A, PWD4,PWD_EXIT SETB PWD_RIGHT AJMP PWD_ESC PWD_EXIT: CLR PWD_RIGHT PWD_ESC: RET ;======================================判断键是否释放==================================== KEY_RELEASE: MOV P3,#00H KEY_LOSEN: MOV A,P2 ANL A,#0FH LCALL LED_DISPLAY CJNE A,#0FH,KEY_LOSEN RET ;=======================================LED显示================================ LED_DISPLAY: JNB LED_ON,LED_OFF MOV P0, SHOW1 LCALL DELAY10MS MOV P0, SHOW2 LCALL DELAY10MS MOV P0, SHOW3 LCALL DELAY10MS MOV P0, SHOW4 LCALL DELAY10MS LED_OFF: MOV P0, #4FH RET ;========================正常按键响声=========================== BEEP1: CLR SOND LCALL DELAY1 SETB SOND RET ;========================非法按键响声============================ BEEP2: CLR SOND LCALL DELAY100MS LCALL DELAY100MS SETB SOND RET ;=========================操作有误闪红灯================================= LAMP_RED: MOV R2,#06H MOV R1,#0FFH LAMP_LOOP: DJNZ R1,LAMP_LOOP CPL RED MOV R1,#0FFH DJNZ R2,LAMP_LOOP SETB RED RET ;==========================修改密码成功闪绿灯========================================== LAMP_GREEN: MOV R2,#06H MOV R1,#0FFH LAMP_LOOP1: DJNZ R1,LAMP_LOOP1 CPL GREEN MOV R1,#0FFH DJNZ R2,LAMP_LOOP1 CLR GREEN RET ;========================10MS延时=========================== DELAY10MS: MOV R2,#04H LOOP3:
用户评论
终于找到关于电子密码锁的详细教程了!以前想自己动手安装都犹豫不决,你这篇文章写的真好,图文清晰易懂,这下信心满满可以开始实践了!
有18位网友表示赞同!
学习一下DIY電子密码锁,感觉还是挺有必要的。家里里的那些老旧的机械锁确实容易出问题,电子密码锁使用起来更方便,安全性也强一些。
有5位网友表示赞同!
这篇教程真不错啊!安装和调试的过程都介绍得很清楚,对于像我这种新手来说太贴心了。维修部分我还能理解一下原理,以后遇到问题也可以自己解决!
有13位网友表示赞同!
密码锁真是越来越智能化了,以前买的时候店家也没说怎么维护,这篇文章刚好解决了我的疑问,原来修补起来这么简单,以后就能省去开 locksmith 的钱了。
有9位网友表示赞同!
电子密码锁安装确实有点技术含量,调试更是考验经验,像我这种学渣还不如直接找师傅来弄好,毕竟安全性问题没法开玩笑啊...
有5位网友表示赞同!
我觉得这篇文章还是针对有一定基础的人写的吧?很多专业术语我都看不懂,新手的话还得查好多资料才能明白其中的意思。建议能给一些更详细的解释就更好!
有16位网友表示赞同!
讲真,我有点不太相信教程里面的说辞,电子密码锁那复杂的电路设计,自己动手维修风险太大了,不如找专业人士靠谱一点吧。
有7位网友表示赞同!
看了这篇,我对电子密码锁有了更多的了解,原来还有很多种类型的,每个都有不同的结构和功能。安装调试确实需要一定的技巧,但是学习起来也挺有趣!
有17位网友表示赞同!
文章写的很不错,图解清晰易懂,可是维修部分感觉还是太简单了,对于一些更复杂的故障,教程中几乎没有提到,希望以后能更新更多更全面的内容!
有18位网友表示赞同!
之前自己试着安装电子密码锁结果搞砸了.....还好现在找到了这篇教程,学习一下正确的步骤,下次一定能够成功!
有15位网友表示赞同!
我觉得学习一些基本的电子知识对DIY很有帮助,这篇 tutorials 可以让我进一步了解电子密码锁的原理,受益匪浅啊!
有5位网友表示赞同!
太赞了!终于可以不用再去烦扰房东更换老旧的钥匙了,自己安装电子密码锁更安全也更自由。 以后一定要来尝试一下这篇文章中的方法。
有18位网友表示赞同!
对于我们没有专业技能的人来说,动手维修电子密码锁还是有点难度大,建议在练习之前做好充分准备工作,以免造成不必要的损失!
有18位网友表示赞同!
说实话,我觉得电子密码锁的安全性还不如传统的机械锁稳定可靠,毕竟电子设备容易被黑客入侵,万一发生数据泄露岂不是很糟糕?
有10位网友表示赞同!
我感觉这种教学教程越来越常见了,大家似乎都想自己动手做一些事情,这真是一个时代的进步呀!鼓励更多人尝试学习这些新的技能。
有15位网友表示赞同!
电子密码锁的安装确实有点技术性,希望以后能有更详细的视频教程,这样更容易上手和理解。 而且也建议添加一些常见故障的解决方法,提高教程的实用性!
有20位网友表示赞同!
其实我一直想自己动手去弄一个智能化的家居系统,学习电子密码锁算是迈出第一步了,感觉这将开启一段全新的探索之旅!
有17位网友表示赞同!
这篇笔记写的很全面,涵盖了从安装到调试再到维修的一整套流程,确实很有参考价值。不过每个人的实际操作状况可能有所不同,建议在开始操作前,反复阅读并理解教程中的注意事项!
有19位网友表示赞同!