整理单片机应用之摩斯密码电子锁.docx

上传人:b****2 文档编号:1864963 上传时间:2023-05-01 格式:DOCX 页数:33 大小:87.47KB
下载 相关 举报
整理单片机应用之摩斯密码电子锁.docx_第1页
第1页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第2页
第2页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第3页
第3页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第4页
第4页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第5页
第5页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第6页
第6页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第7页
第7页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第8页
第8页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第9页
第9页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第10页
第10页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第11页
第11页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第12页
第12页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第13页
第13页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第14页
第14页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第15页
第15页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第16页
第16页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第17页
第17页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第18页
第18页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第19页
第19页 / 共33页
整理单片机应用之摩斯密码电子锁.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

整理单片机应用之摩斯密码电子锁.docx

《整理单片机应用之摩斯密码电子锁.docx》由会员分享,可在线阅读,更多相关《整理单片机应用之摩斯密码电子锁.docx(33页珍藏版)》请在冰点文库上搜索。

整理单片机应用之摩斯密码电子锁.docx

整理单片机应用之摩斯密码电子锁

单片机应用之摩斯密码电子锁

设计者:

吴志光地址:

广东省顺德

摩斯密码相信学习无线电和电子的都非常熟耳,可能这东西已经过时的缘故吧,可能大家不太了解这东西。

本着多学一点知识的原则,而且这东西熟悉以后可能再紧要关头可以救命的东东啊!

本人就对这东西解释一下:

电报最早是由美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。

它由两种基本信号和不同的间隔时间组成:

短促的点信号".",读"嘀"(Di);保持一定时间的长信号"—",读"嗒"(Da)。

间隔时间:

"嘀"1t;"嗒"3t;"滴嗒"间1t;字母间3t;字间5t。

摩斯密码表

A._M__Y_.__

B_...N_.Z__..

C_._.O___1.____

D_..P.__.2..___

E.Q__._3...__

F.._.R._.4...._

G__.S...5.....

H....T_6_....

I..U.._7__...

J.___V..._8___..

K_._W.__9____.

L._..X_.._0_____

基本上摩斯电码就是由一个短音的“嘀”,和长音的“嗒”构成,如果换成数字电路就是0和1。

而且由单个键控制其接奏长短通过其组合来待表不同的字母和数字。

本人设计的密码锁就是基于这种概念来设计的。

电路图(如图一)

电路特色:

本电路只有两个按键,一个为复位键(修改密码键),一个为密码键,密码键根据其按下的长短来实现“滴”“嗒”。

1t为滴,3t为嗒(t约为500ms)。

若按键s1小于1t,或大于1t小于3t,或大于5t则被认为无效按法,则重新输入。

本电路只取0~9数字摩斯值为有效值。

其余的英文字母和其它的按值均被认作无效值。

(有兴趣的可把英文码都写进去增强其密码广泛性)。

由于设置有后备电源,所以无须增加存储器降低编程难度。

八段数码管显示你的摩斯按键是否正确对应你要输入的数字密码。

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

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

本电路设置四位密码,由于每位数字键均由五位摩斯码构成则要输入20次摩斯码键!

p0.0(绿色)“滴”显示,p0.2(黄色)“嗒”音显示,p0.4(红色)摩斯码按法错误或密码错误,p0.6(蓝色)表示该电路已设置了密码,等待输入密码进行比较。

Ls1为报警器。

本电路优点:

电路简单可靠,保密性强。

就算密码泄露但不懂摩斯密码输入法则则是徒劳。

本电路缺点:

用户须一段时间掌握摩斯输入技巧。

经本人使用一段时间掌握了一些技巧现拿来分享,摩斯输入技巧:

按键之后灯亮则松,灯灭则按。

以下是电路实物图:

(由于特殊原因,不能提供实样板实物图,只能提供实验板实物图区别在于实验板的用led代替了继电器,用USB代替电源方便调试。

但电路均能正常工作,程序一样,不便之处敬请原谅)

本实物图状态为等待输入密码进行比较开锁

对本电路有任何疑问请与本人联系!

程序如下:

hc0equ4ah;延时缓存区

hc1equ4bh

hc2equ4ch

hc3equ4dh

hc4equ4eh

xs_0equ50h;显示缓存区

xs_1equ51h

xs_2equ52h

xs_3equ53h

xs_4equ54h

xs_5equ55h

xs_6equ56h

xs_7equ57h

xs_8equ58h

xs_9equ59h

ps1equ5ah;设置密码缓存区

ps2equ5bh

ps3equ5ch

ps4equ5dh

mmbzequ5fh;密码输入次数

at1equ60h;输入密码缓存区

at2equ61h

at3equ62h

at4equ63h

;初始化

org00h

ajmpmain1

org30h

main1:

movps1,#00h

movps2,#00h

movps3,#00h

movps4,#00h

movat1,#00h

movat2,#00h

movat3,#00h

movat4,#00h

main:

movxs_0,#1fh;显示0的摩斯值

movxs_1,#0fh;显示1的摩斯值

movxs_2,#07h;显示2的摩斯值

movxs_3,#03h;显示3的摩斯值

movxs_4,#01h;显示4的摩斯值

movxs_5,#00h;显示5的摩斯值

movxs_6,#10h;显示6的摩斯值

movxs_7,#18h;显示7的摩斯值

movxs_8,#1ch;显示8的摩斯值

movxs_9,#1eh;显示9的摩斯值

clrp3.0

mova,#00h;密码缓存

movr2,#04h;四位密码

movr1,#00h

movr0,#ps1

movr7,#05h;摩斯次数,由于数字为5次

clrp2.7

start:

movp0,#0ffh

movp1,#0ffh

setbp2.4;按键位

jbp2.4,start

lcalldelay500ms

jbp2.4,start

ok:

;嘀的音

clrp0.0

lcalldelay500ms

jnbp2.4,daa;是否去嗒音

cun:

setbp0.2

setbp0.0

rla

adda,r1;存入一位摩斯码

djnzr7,yanshi;是否够五位摩斯码

ajmpxianshi

yanshi:

;输入一位摩斯码停顿1t

lcalldelay500ms

jbp2.4,main

ajmpok

daa:

;嗒的音

lcalldelay500ms

jbp2.4,stop

setbp0.0

clrp0.2

lcalldelay500ms

setbp0.2

jnbp2.4,stop

movr1,#01h

ajmpcun

stop:

;摩斯输入错误

clrp0.4

lcalldelay2s

setbp0.4

ajmpmain

cunchu:

mov@r0,a

incr0

mova,#00h

movr1,#00h

movr7,#05h

djnzr2,yanshi

clrp0.6

lcalldelay2s

setbp0.6

ajmpshuru

xianshi:

cjnea,xs_0,next1;够五位摩斯码显示0

movp1,#0c0h

clrp3.2;报警器

lcalldelay1s

setbp3.2;报警器

movp1,#0ffh

ajmpcunchu

next1:

cjnea,xs_1,next2;够五位摩斯码显示1

movp1,#0f9h

clrp3.2

lcalldelay1s

setbp3.2

movp0,#0ffh

ajmpcunchu

next2:

cjnea,xs_2,next3;够五位摩斯码显示2

movp1,#0a4h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next3:

cjnea,xs_3,next4;够五位摩斯码显示3

movp1,#0b0h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next4:

cjnea,xs_4,next5;够五位摩斯码显示4

movp1,#99h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next5:

cjnea,xs_5,next6;够五位摩斯码显示5

movp1,#92h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next6:

cjnea,xs_6,next7;够五位摩斯码显示6

movp1,#7dh

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next7:

cjnea,xs_7,next8;够五位摩斯码显示7

movp1,#0f8h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next8:

cjnea,xs_8,next9;够五位摩斯码显示8

movp1,#080h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next9:

cjnea,xs_9,cw;够五位摩斯码显示9

movp1,#90h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

cw:

clrp3.2

clrp0.4

lcalldelay5s

clrp0.4

setbp3.2

ajmpmain1

shuru:

;开门复位

movmmbz,#03;错误密码次数

movat1,#00h

movat2,#00h

movat3,#00h

movat4,#00h

shuru2:

clrp0.6

mova,#00h;密码缓存

movr2,#04h;四位密码

movr1,#00h

movr0,#at1

movr7,#05h

start1:

jbp2.4,start1

lcalldelay500ms

jbp2.4,start1

ok1:

;滴音

setbp3.0;开门后再按键1t以上关门

setbp0.6

clrp0.0

lcalldelay500ms

jnbp2.4,daaa

cun1:

setbp0.2

setbp0.0

rla

adda,r1

djnzr7,yanshi1

ajmpxianshi1

yanshi1:

;每个摩斯码之间延时1t

lcalldelay500ms

jbp2.4,stop1

ajmpok1

daaa:

;嗒音

lcalldelay500ms

jbp2.4,stop1

setbp0.0

clrp0.2

lcalldelay500ms

setbp0.2

jnbp2.4,stop1

movr1,#01h

ajmpcun1

stop1:

;摩斯码错误处理

clrp0.4

lcalldelay2s

setbp0.4

ajmpshuru2

cunchu2:

mov@r0,a

incr0

mova,#00h

movr1,#00h

movr7,#05h

djnzr2,yanshi1

ajmpbijiao

xianshi1:

;显示处理

cjnea,xs_0,next1_1

movp1,#0c0h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next1_1:

cjnea,xs_1,next2_2

movp1,#0f9h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next2_2:

cjnea,xs_2,next3_3

movp1,#0a4h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next3_3:

cjnea,xs_3,next4_4

movp1,#0b0h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next4_4:

cjnea,xs_4,next5_5

movp1,#99h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next5_5:

cjnea,xs_5,next6_6

movp1,#92h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next6_6:

cjnea,xs_6,next7_7

movp1,#82h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next7_7:

cjnea,xs_7,next8_8

movp1,#0f8h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next8_8:

cjnea,xs_8,next9_9

movp1,#80h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

next9_9:

cjnea,xs_9,cw2

movp1,#90h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu2

bijiao:

;比较密码

movr6,#04

movr1,#ps1

movr0,#at1

bj2:

clrc

mova,@r0

subba,@r1

cjnea,#00h,cw2

incr1

incr0

djnzr6,bj2

clrp3.2;密码正确

clrp3.0

lcalldelay5s

setbp3.2

ajmpshuru

cw2:

;密码错误处理

djnzmmbz,bjd

movp0,#00h

clrp3.2

lcalldelay5min

setbp3.2

movp0,#0ffh

ajmpshuru2

bjd:

movp0,#00h

clrp3.2

lcalldelay5s

setbp3.2

movp0,#0ffh

ajmpshuru2

delay500ms:

movhc0,#05

ff1:

movhc1,#200

fff1:

movhc2,#250

djnzhc2,$

djnzhc1,fff1

djnzhc0,ff1

ret

delay1s:

movhc0,#10

ff2:

movhc1,#200

ff3:

movhc2,#250

djnzhc2,$

djnzhc1,ff3

djnzhc0,ff2

ret

delay2s:

movhc0,#20

ff4:

movhc1,#200

ff5:

movhc2,#250

djnzhc2,$

djnzhc1,ff5

djnzhc0,ff4

ret

delay5s:

movhc0,#50

ff6:

movhc1,#200

ff7:

movhc2,#250

djnzhc2,$

djnzhc1,ff7

djnzhc0,ff6

ret

delay5min:

movhc0,#12

qq1:

movhc1,#200

qq2:

movhc2,#250

qq3:

movhc3,#250

djnzhc3,$

djnzhc2,qq3

djnzhc1,qq2

djnzhc0,qq1

ret

end

电路特色:

本电路只有两个按键,一个为复位键(修改密码键),一个为密码键,密码键根据其按下的长短来实现“滴”“嗒”。

1t为滴,3t为嗒(t约为500ms)。

若按键s1小于1t,或大于1t小于3t,或大于5t则被认为无效按法,则重新输入。

本电路只取0~9数字摩斯值为有效值。

其余的英文字母和其它的按值均被认作无效值。

(有兴趣的可把英文码都写进去增强其密码广泛性)。

由于设置有后备电源,所以无须增加存储器降低编程难度。

八段数码管显示你的摩斯按键是否正确对应你要输入的数字密码。

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

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

本电路设置四位密码,由于每位数字键均由五位摩斯码构成则要输入20次摩斯码键!

p0.0(绿色)“滴”显示,p0.2(黄色)“嗒”音显示,p0.4(红色)摩斯码按法错误或密码错误,p0.6(蓝色)表示该电路已设置了密码,等待输入密码进行比较。

Ls1为报警器。

本电路优点:

电路简单可靠,保密性强。

就算密码泄露但不懂摩斯密码输入法则则是徒劳。

本电路缺点:

用户须一段时间掌握摩斯输入技巧。

经本人使用一段时间掌握了一些技巧现拿来分享,摩斯输入技巧:

按键之后灯亮则松,灯灭则按。

以下是电路实物图:

(由于特殊原因,不能提供实样板实物图,只能提供实验板实物图区别在于实验板的用led代替了继电器,用USB代替电源方便调试。

但电路均能正常工作,程序一样,不便之处敬请原谅)

本实物图状态为等待输入密码进行比较开锁

对本电路有任何疑问请与本人联系!

程序如下:

hc0equ4ah;延时缓存区

hc1equ4bh

hc2equ4ch

hc3equ4dh

hc4equ4eh

xs_0equ50h;显示缓存区

xs_1equ51h

xs_2equ52h

xs_3equ53h

xs_4equ54h

xs_5equ55h

xs_6equ56h

xs_7equ57h

xs_8equ58h

xs_9equ59h

ps1equ5ah;设置密码缓存区

ps2equ5bh

ps3equ5ch

ps4equ5dh

mmbzequ5fh;密码输入次数

at1equ60h;输入密码缓存区

at2equ61h

at3equ62h

at4equ63h

;初始化

org00h

ajmpmain1

org30h

main1:

movps1,#00h

movps2,#00h

movps3,#00h

movps4,#00h

movat1,#00h

movat2,#00h

movat3,#00h

movat4,#00h

main:

movxs_0,#1fh;显示0的摩斯值

movxs_1,#0fh;显示1的摩斯值

movxs_2,#07h;显示2的摩斯值

movxs_3,#03h;显示3的摩斯值

movxs_4,#01h;显示4的摩斯值

movxs_5,#00h;显示5的摩斯值

movxs_6,#10h;显示6的摩斯值

movxs_7,#18h;显示7的摩斯值

movxs_8,#1ch;显示8的摩斯值

movxs_9,#1eh;显示9的摩斯值

clrp3.0

mova,#00h;密码缓存

movr2,#04h;四位密码

movr1,#00h

movr0,#ps1

movr7,#05h;摩斯次数,由于数字为5次

clrp2.7

start:

movp0,#0ffh

movp1,#0ffh

setbp2.4;按键位

jbp2.4,start

lcalldelay500ms

jbp2.4,start

ok:

;嘀的音

clrp0.0

lcalldelay500ms

jnbp2.4,daa;是否去嗒音

cun:

setbp0.2

setbp0.0

rla

adda,r1;存入一位摩斯码

djnzr7,yanshi;是否够五位摩斯码

ajmpxianshi

yanshi:

;输入一位摩斯码停顿1t

lcalldelay500ms

jbp2.4,main

ajmpok

daa:

;嗒的音

lcalldelay500ms

jbp2.4,stop

setbp0.0

clrp0.2

lcalldelay500ms

setbp0.2

jnbp2.4,stop

movr1,#01h

ajmpcun

stop:

;摩斯输入错误

clrp0.4

lcalldelay2s

setbp0.4

ajmpmain

cunchu:

mov@r0,a

incr0

mova,#00h

movr1,#00h

movr7,#05h

djnzr2,yanshi

clrp0.6

lcalldelay2s

setbp0.6

ajmpshuru

xianshi:

cjnea,xs_0,next1;够五位摩斯码显示0

movp1,#0c0h

clrp3.2;报警器

lcalldelay1s

setbp3.2;报警器

movp1,#0ffh

ajmpcunchu

next1:

cjnea,xs_1,next2;够五位摩斯码显示1

movp1,#0f9h

clrp3.2

lcalldelay1s

setbp3.2

movp0,#0ffh

ajmpcunchu

next2:

cjnea,xs_2,next3;够五位摩斯码显示2

movp1,#0a4h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0ffh

ajmpcunchu

next3:

cjnea,xs_3,next4;够五位摩斯码显示3

movp1,#0b0h

clrp3.2

lcalldelay1s

setbp3.2

movp1,#0

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2