磁动力电子网-雕刻机DIY论坛,单片机论坛,CNCDIY,DIYCNC

 找回密码
 加入磁动力

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 16264|回复: 40

给自家的门安装个密码锁

[复制链接]
发表于 2008-1-25 22:42:00 | 显示全部楼层 |阅读模式

快过年了,首先预祝大家新年快乐吧!
关于密码锁的资料随处可见已经很多了!不过像我这样控制开锁的方法我想恐怕不多吧!呵呵!
废话我就不多说了,大家一看也就明白了!

[em07] lTfQ4dgg.rar (236.96 KB, 下载次数: 2805)
回复

使用道具 举报

发表于 2008-1-29 16:29:00 | 显示全部楼层
斑竹是不是能给个原理图和程序,我想做一个,wang221@citiz.net.先谢谢了.
回复 支持 反对

使用道具 举报

发表于 2008-1-28 23:15:00 | 显示全部楼层

原来洗衣机里面还有这种东西啦。

就是说通电,牵引器慢慢转,把那个铁条? 给往门锁那边拉,然后就把锁舌给顶开了,

然后断电以后弹簧会把那个铁条给拉回原位?

那个继电器通电时间是通过实验确定的么?

回复 支持 反对

使用道具 举报

发表于 2008-1-28 23:17:00 | 显示全部楼层

给自己房间也搞个, 输入密码后解除遮断式报警N秒,

爸妈不知道,进来下一跳。。

[em02]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-28 08:31:00 | 显示全部楼层

控制开关锁的机械部分是洗衣机里的排水牵引器,拉力很大,维修配件店里很容易买到!

由于我利用牵引器顶平锁的舌头的开门方式,即使电路或机械损坏也可以用钥匙开门的。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-28 08:36:00 | 显示全部楼层
QUOTE:
以下是引用lovekcx在2008-1-27 15:28:34的发言:

呵呵 很好的创意 不过好像一把螺丝刀就可以搞定你的门了

是啊!不过自从我看了“天下无贼”这部电影以后,就没有顾这么多了,呵呵!

[em07]

回复 支持 反对

使用道具 举报

发表于 2008-1-27 22:45:00 | 显示全部楼层
控制开关锁的机械部分是什么??
回复 支持 反对

使用道具 举报

发表于 2008-1-26 13:17:00 | 显示全部楼层

不错!洗衣机的排水阀都用上了

回复 支持 反对

使用道具 举报

发表于 2008-1-26 17:46:00 | 显示全部楼层
先自拍一砖
当你的开关电源让雷劈了怎么开门?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-25 23:01:00 | 显示全部楼层

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

给自家的门安装个密码锁

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-25 23:23:00 | 显示全部楼层

键盘是很久前在路上捡的,好像是老式电话机上的!现在可以排上用场了。

密码可以从1位到14位任意修改,用2402做密码记忆。

程序如下:

FMQ EQU P3.3;蜂鸣器
SZMM EQU P3.7;重新设置密码指示灯
JDQ EQU P3.2;继电器控制及指示灯
SCL EQU P3.4
SDA EQU P3.5
;==============================================================================
ORG 0000H
AJMP WGQ_MAIN
ORG 0030H
WGQ_MAIN: SETB FMQ
SETB SZMM
SETB JDQ
MOV P1,#0FFH
MOV R2,#50H;
MOV R7,#00H
MOV R5,#00H
MOV 75H,#0FEH
;======================================
CLR FMQ
ACALL DL
SETB FMQ
ACALL DL
CLR FMQ
ACALL DL
SETB FMQ
ACALL DL
;==============================================================================
MOV R1,#50H
MOV 35H,#00H
WGQ_DU: ACALL RD_DATA;读出24C02的数据.
MOV @R1,A
INC 35H
INC R1
CJNE R1,#5FH,WGQ_DU;读出24C02的数据,写入50H到5EH地址里.
;==============================================================================
WGQ_START:MOV R0,#40H
MOV R1,#50H
WGQ_OK: MOV A,75H
ANL P1,#0F0H
ORL P1,A
MOV A,P1
ANL A,#0F0H
XRL A,#0F0H
MOV 76H,A
ADD A,75H; 键值(R4里面的数据)分别是13EH)21EH)30EH)43DH)51DH)
MOV R4,A; 60DH)73BH)81BH)90BH)017H)*:(37H)#:(07H)设置:(7EH)
MOV A,75H
RL A
MOV 75H,A
CJNE A,#0EFH,WGQ_1
MOV 75H,#0FEH
WGQ_1: MOV A,76H
JZ WGQ_OK;无键按下继续循环,有键按下向下执行.
;======================================
CJNE R4,#7EH,WGQ_A;设置密码按键.
AJMP WGQ_SETMM
WGQ_A: CJNE R4,#3EH,WGQ_B;1
AJMP WGQ_OPEN
WGQ_B: CJNE R4,#1EH,WGQ_C;2
AJMP WGQ_OPEN
WGQ_C: CJNE R4,#0EH,WGQ_D;3
AJMP WGQ_OPEN
WGQ_D: CJNE R4,#3DH,WGQ_E;4
AJMP WGQ_OPEN
WGQ_E: CJNE R4,#1DH,WGQ_F;5
AJMP WGQ_OPEN
WGQ_F: CJNE R4,#0DH,WGQ_G;6
AJMP WGQ_OPEN
WGQ_G: CJNE R4,#3BH,WGQ_H;7
AJMP WGQ_OPEN
WGQ_H: CJNE R4,#1BH,WGQ_I;8
AJMP WGQ_OPEN
WGQ_I: CJNE R4,#0BH,WGQ_J;9
AJMP WGQ_OPEN
WGQ_J: CJNE R4,#17H,WGQ_K;0
AJMP WGQ_OPEN
WGQ_K: CJNE R4,#37H,WGQ_L;*清除键
AJMP QU_XIAO
WGQ_L: CJNE R4,#07H,WGQ_M;#确认键
AJMP OK_KEY
WGQ_M: AJMP WGQ_OK
;==============================================================================
WGQ_OPEN: CLR FMQ;按0至9数字键从WGQ_OPEN这里执行.
ACALL DL
SETB FMQ
ACALL DL;发出蜂鸣声.
;======================================
GOOD: MOV P1,#0F0H;在按键一直按着,程序在此循环执行,直到松开按键.
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,GOOD
;======================================
CJNE R7,#0H,WGQ_SZMM1;R7为00H时,正常执行.R7为01H时,进入重设密码状态.
;======================================
ACALL DL
MOV A,R4
MOV @R0,A;将键盘按键密码数输入到40H到4FH地址中,密码最多为15位.
INC R0
CJNE R0,#4FH,WGQ_C1
CLR FMQ;输入密码数位过多,输出长"嘟"报警声.
ACALL DL
ACALL DL
ACALL DL
ACALL DL
ACALL DL
SETB FMQ
ACALL DL
MOV R0,#40H;密码最多为15位,按多了超出15位自动从首地址40H开始.
WGQ_C1: AJMP WGQ_OK
;==============================================================================
WGQ_SZMM1:ACALL DL
MOV A,R4
MOV @R1,A
INC R1
CJNE R1,#5FH,WGQ_C2
CLR FMQ;输入密码数位过多,输出长"嘟"报警声.
ACALL DL
ACALL DL
ACALL DL
ACALL DL
ACALL DL
SETB FMQ
ACALL DL
MOV R1,#50H
WGQ_C2: AJMP WGQ_OK
;==============================================================================
WGQ_SZMM2:MOV @R1,#0FFH;按确认键后,将剩余的寄存器进行0FFH填充.
INC R1
CJNE R1,#5FH,WGQ_SZMM2
MOV R1,#50H
;======================================
MOV 35H,#00H
MOV R1,#50H
WGQ_XIE: MOV A,@R1
MOV 36H,A
ACALL WR_DATA;数据写入24C02.
INC 35H
INC R1
CJNE R1,#5FH,WGQ_XIE
;======================================
SETB SZMM
MOV R7,#00H
AJMP WGQ_START
;======================================
WGQ_IBM: AJMP WGQ_SZMM2
;==============================================================================
OK_KEY: CLR FMQ;按确认键从OK_KEY这里执行.
ACALL DL
SETB FMQ
ACALL DL;发出蜂鸣声.
;======================================
CJNE R7,#0H,WGQ_IBM;R7为00H时,正常执行.R7为01H时,进入重设密码状态.
;======================================
WGQ_XH: MOV @R0,#0FFH;按确认键后,将剩余的寄存器进行0FFH填充.
INC R0
CJNE R0,#4FH,WGQ_XH
;======================================
MOV R0,#40H
MOV R1,#50H
LOOP_1: MOV A,@R0
XRL A,@R1;将输入的数据和内部的数据进行对比.
INC R0
INC R1
CJNE R0,#4FH,LOOP_2
;======================================
CLR JDQ;输入密码正确,启动继电器.
ACALL DL_B;延时5秒.
CLR FMQ
ACALL DL
SETB FMQ
ACALL DL
ACALL DL_B
SETB JDQ;关闭继电器.
MOV R0,#40H
MOV R1,#50H
MOV R5,#00H
CLR FMQ
ACALL DL
SETB FMQ
ACALL DL;发出蜂鸣声.
CLR FMQ
ACALL DL
SETB FMQ
ACALL DL
AJMP WGQ_OK
;======================================
LOOP_2: JZ LOOP_1
INC R5
CJNE R5,#3,WGQ_9;允许输入3次错误密码.
MOV R5,#00H
;======================================
WGQ_FMQ: CLR FMQ;输入密码3次错误,输出报警声!
ACALL DL
ACALL DL
SETB FMQ
ACALL DL
ACALL DL
DJNZ R2,WGQ_123
MOV R2,#50H;报警声在30秒后自动停下来.
MOV R0,#40H
AJMP WGQ_OK
WGQ_123: AJMP WGQ_FMQ
;======================================
WGQ_9: CLR FMQ;输入密码错误输出长"嘟"报警声.
ACALL DL
ACALL DL
ACALL DL
ACALL DL
ACALL DL
SETB FMQ
ACALL DL
MOV R0,#40H
MOV R1,#50H
AJMP WGQ_OK
;==============================================================================
QU_XIAO: CLR FMQ;按取消键从QU_XIAO这里执行.
ACALL DL
SETB FMQ
ACALL DL;发出蜂鸣声.
;======================================
GOOD1: MOV P1,#0F0H;在按键一直按着,程序在此循环执行,直到松开按键.
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,GOOD1
;======================================
MOV R0,#40H
MOV R1,#50H
AJMP WGQ_OK
;==============================================================================
WGQ_SETMM:NOP;按密码设置键从WGQ_SETMM这里执行.
CLR FMQ
ACALL DL
SETB FMQ
ACALL DL
CLR SZMM;启动设置密码LED指示灯.
MOV R7,#01H;R7为00H时,正常执行.R7为01H时,进入重设密码状态.
AJMP WGQ_OK
;==============================================================================
;==============================================================================
WR_DATACALL ST24;写入数据
MOV A,#0A0H
LCALL WBYTE
MOV A,35H
LCALL WBYTE
MOV A,36H
LCALL WBYTE
LCALL STOP24
LCALL DL_A
RET
;======================================
RD_DATACALL ST24;读出数据
MOV A,#0A0H
LCALL WBYTE
MOV A,35H
LCALL WBYTE
LCALL ST24
MOV A,#0A1H
LCALL WBYTE
LCALL RBYTE
LCALL STOP24
LCALL DL_A
RET
;======================================
WBYTE: MOV R3,#8
WBY0: CLR SCL
RLC A
MOV SDA,C
SETB SCL
DJNZ R3,WBY0
CLR SCL
NOP
SETB SCL
NOP
SETB SDA
JB SDA,$
CLR SCL
LCALL DL_A
NOP
RET
;======================================
RBYTE: NOP
MOV R3,#8
RBY0: CLR SCL
NOP
SETB SCL
NOP
MOV C,SDA
RLC A
DJNZ R3,RBY0
CLR SCL
NOP
SETB SDA
NOP
SETB SCL
NOP
RET
;======================================
ST24: NOP
CLR SCL
NOP
SETB SDA
NOP
SETB SCL
NOP
CLR SDA
NOP
RET
;======================================
STOP24: CLR SCL
NOP
CLR SDA
NOP
SETB SCL
NOP
SETB SDA
NOP
CLR SCL
NOP
SETB SCL
NOP
SETB SDA
NOP
CLR SCL
CLR SDA
RET
;==============================================================================
;==============================================================================
DL_B: MOV 30H,#80H
B1: MOV 31H,#80H
B2: MOV 32H,#80H
B3: DJNZ 32H,B3
DJNZ 31H,B2
DJNZ 30H,B1
RET
;======================================
DL_A: MOV 30H,#30H
A1: MOV 31H,#30H
A2: DJNZ 31H,A2
DJNZ 30H,A1
RET;24C02读写用延时子程序
;======================================
DL: MOV 30H,#0AAH
L1: MOV 31H,#0FFH
L2: DJNZ 31H,L2
DJNZ 30H,L1
RET
;==============================================================================
END

回复 支持 反对

使用道具 举报

发表于 2008-1-25 23:36:00 | 显示全部楼层

不错 真有一手。不过这样装在门外不好看,想办法装饰一下。

[em07]
回复 支持 反对

使用道具 举报

发表于 2008-1-27 04:14:00 | 显示全部楼层

纸板结实吗

公安部规定,居民房必需安机械式锁

[em01]
回复 支持 反对

使用道具 举报

发表于 2008-1-26 22:48:00 | 显示全部楼层
如果电路让雷劈了,那么也就只好把门劈了。 [em06]
回复 支持 反对

使用道具 举报

发表于 2008-1-27 15:28:00 | 显示全部楼层

呵呵 很好的创意 不过好像一把螺丝刀就可以搞定你的门了

回复 支持 反对

使用道具 举报

发表于 2008-1-27 15:29:00 | 显示全部楼层
楼主有没有按键板的原理图 我想做一个玩玩  刚学51 俺是超级菜鸟
回复 支持 反对

使用道具 举报

发表于 2008-1-31 08:22:00 | 显示全部楼层
谢谢楼主!我制作成功了!键盘程序算法很特别
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-30 21:54:00 | 显示全部楼层
GT7GwEPs.rar (40.76 KB, 下载次数: 1751)

给自家的门安装个密码锁

给自家的门安装个密码锁
回复 支持 反对

使用道具 举报

发表于 2008-2-13 23:07:00 | 显示全部楼层

那么平时单片机就休眠吧。

自动断电也让单片机来搞好了。

回复 支持 反对

使用道具 举报

发表于 2008-2-12 16:40:00 | 显示全部楼层
真是高手!再搞个单稳延时脱电器,上电30秒内不完成操作,自动断电,否则长期通着电,心里不塌实.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入磁动力

本版积分规则

QQ|小黑屋|手机版|Archiver|www.cdle.net 磁动力电子网 2001-2017 ( 粤ICP备10098153号

粤公网安备 44040402000001号

GMT+8, 2019-6-27 06:02

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.