精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
單片機應用之摩斯密碼電子鎖
單片機應用之摩斯密碼電子鎖
 更新時間:2009-11-13 14:12:40  點擊數:0
【字體: 字體顏色

摩斯密碼相信學習無線電和電子的都非常熟耳,可能這東西已經過時的緣故吧,可能大家不太了解這東西。本著多學一點知識的原則,而且這東西熟悉以后可能再緊要關頭可以救命的東東。!本人就對這東西解釋一下:

電報最早是由美國的摩爾斯在1844年發(fā)明的,故也被叫做摩爾斯電碼。它由兩種基本信號和不同的間隔時間組成:短促的點信號" ",讀" "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 _ _ _ _ _  

 

 

基本上摩斯電碼就是由一個短音的“嘀”,和長音的“嗒”構成,如果換成數字電路就是01。而且由單個鍵控制其接奏長短通過其組合來待表不同的字母和數字。本人設計的密碼鎖就是基于這種概念來設計的。電路圖(如圖一)

 

 

 

電路特色:本電路只有兩個按鍵,一個為復位鍵(修改密碼鍵),一個為密碼鍵,密碼鍵根據其按下的長短來實現“滴”“嗒”。1t為滴,3t為嗒(t約為500ms)。若按鍵s1小于1t,或大于1t小于3t ,或大于5t則被認為無效按法,則重新輸入。本電路只取0~9數字摩斯值為有效值。其余的英文字母和其它的按值均被認作無效值。(有興趣的可把英文碼都寫進去增強其密碼廣泛性)。由于設置有后備電源,所以無須增加存儲器降低編程難度。八段數碼管顯示你的摩斯按鍵是否正確對應你要輸入的數字密碼。由于采取上電設置密碼的編程方法復位鍵即密碼修改鍵設置在門后,要打開門才能修改密碼。設置密碼后若輸入密碼不對的前兩次5秒報警,最后一次10分鐘報警,摩斯按發(fā)錯誤除外(但有兩秒報警,并且須全部密碼重新輸入)。本電路設置四位密碼,由于每位數字鍵均由五位摩斯碼構成則要輸入20次摩斯碼鍵。p0.0(綠色)“滴”顯示,p0.2(黃色)“嗒”音顯示,p0.4(紅色)摩斯碼按法錯誤或密碼錯誤,p0.6(藍色)表示該電路已設置了密碼,等待輸入密碼進行比較。

Ls1為報警器。

   本電路優(yōu)點:電路簡單可靠,保密性強。就算密碼泄露但不懂摩斯密碼輸入法則則是徒勞。

本電路缺點:用戶須一段時間掌握摩斯輸入技巧。經本人使用一段時間掌握了一些技巧現拿來分享,摩斯輸入技巧:按鍵之后燈亮則松,燈滅則按。

 

以下是電路實物圖:(由于特殊原因,不能提供實樣板實物圖,只能提供實驗板實物圖區(qū)別在于實驗板的用led代替了繼電器,用USB代替電源方便調試。但電路均能正常工作,程序一樣,不便之處敬請原諒)

本實物圖狀態(tài)為等待輸入密碼進行比較開鎖

對本電路有任何疑問請與本人聯系!

 

 

程序如下:

 

hc0 equ 4ah    ;延時緩存區(qū)

hc1 equ 4bh

hc2 equ 4ch

hc3 equ 4dh

hc4 equ 4eh

 

xs_0 equ 50h   ;顯示緩存區(qū)

xs_1 equ 51h

xs_2 equ 52h

xs_3 equ 53h

xs_4 equ 54h

xs_5 equ 55h

xs_6 equ 56h

xs_7 equ 57h

xs_8 equ 58h

xs_9 equ 59h

 

ps1 equ 5ah    ;設置密碼緩存區(qū)

ps2 equ 5bh

ps3 equ 5ch

ps4 equ 5dh

 

mmbz equ 5fh   ;密碼輸入次數

 

at1 equ 60h    ;輸入密碼緩存區(qū)

at2 equ 61h

at3 equ 62h

at4 equ 63h

 

;初始化

org 00h

ajmp main1

 

org 30h

 

main1:

 

mov ps1 ,#00h

mov ps2 ,#00h

mov ps3 ,#00h

mov ps4 ,#00h

 

mov at1 ,#00h

mov at2 ,#00h

mov at3 ,#00h

mov at4 ,#00h

 

main:

mov xs_0 ,#1fh     ;顯示0的摩斯值

mov xs_1 ,#0fh     ;顯示1的摩斯值

mov xs_2 ,#07h     ;顯示2的摩斯值

mov xs_3 ,#03h     ;顯示3的摩斯值

mov xs_4 ,#01h     ;顯示4的摩斯值

mov xs_5 ,#00h     ;顯示5的摩斯值

mov xs_6 ,#10h     ;顯示6的摩斯值

mov xs_7 ,#18h     ;顯示7的摩斯值

mov xs_8 ,#1ch     ;顯示8的摩斯值

mov xs_9 ,#1eh     ;顯示9的摩斯值

clr p3.0

mov a  ,#00h   ;密碼緩存

mov r2 ,#04h   ;四位密碼

mov r1 ,#00h

mov r0 ,#ps1

mov r7 ,#05h  ;摩斯次數,由于數字為5

clr p2.7

 

start:

mov p0 ,#0ffh

mov p1 ,#0ffh

setb p2.4 ;按鍵位

 

jb p2.4 ,start

lcall delay500ms

jb p2.4 ,start

 

ok:             ;嘀的音

clr p0.0

lcall delay500ms

jnb p2.4 ,daa   ;是否去嗒音

 

cun:            ;

setb p0.2

setb p0.0

rl a

add a ,r1       ;存入一位摩斯碼

djnz r7 ,yanshi ;是否夠五位摩斯碼

ajmp xianshi

 

yanshi:          ;輸入一位摩斯碼停頓1t

lcall delay500ms

jb p2.4 ,main

ajmp ok

 

daa:             ;嗒的音

lcall delay500ms

jb p2.4 ,stop

setb p0.0

clr p0.2

lcall delay500ms

setb p0.2

jnb p2.4 ,stop

mov r1 ,#01h

ajmp cun

 

stop:             ;摩斯輸入錯誤    

clr p0.4

lcall delay2s

setb p0.4

ajmp main

 

cunchu:

mov @r0 ,a

inc r0

mov a ,#00h

mov r1 ,#00h

mov r7 ,#05h

djnz r2 ,yanshi

clr p0.6

lcall delay2s

setb p0.6

ajmp shuru

 

xianshi:

cjne a ,xs_0 ,next1   ;夠五位摩斯碼顯示0

mov p1 ,#0c0h

clr p3.2    ;報警器

lcall delay1s

setb p3.2    ;報警器

mov p1 ,#0ffh

ajmp cunchu

 

next1:

cjne a ,xs_1 ,next2   ;夠五位摩斯碼顯示1

mov p1 ,#0f9h

clr p3.2

lcall delay1s

setb p3.2

mov p0 ,#0ffh

ajmp cunchu

 

next2:

cjne a ,xs_2 ,next3  ;夠五位摩斯碼顯示2

mov p1 ,#0a4h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

 

next3:

cjne a ,xs_3 ,next4  ;夠五位摩斯碼顯示3

mov p1 ,#0b0h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

next4:

cjne a ,xs_4 ,next5  ;夠五位摩斯碼顯示4

mov p1 ,#99h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

 

next5:

cjne a ,xs_5 ,next6  ;夠五位摩斯碼顯示5

mov p1 ,#92h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

next6:

cjne a ,xs_6 ,next7  ;夠五位摩斯碼顯示6

mov p1 ,#7dh

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

next7:

cjne a ,xs_7 ,next8  ;夠五位摩斯碼顯示7

mov p1 ,#0f8h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

next8:

cjne a ,xs_8 ,next9   ;夠五位摩斯碼顯示8

mov p1 ,#080h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

next9:

cjne a ,xs_9 ,cw     ;夠五位摩斯碼顯示9

mov p1 ,#90h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu

 

cw:

clr p3.2

clr p0.4

lcall delay5s

clr p0.4

setb p3.2

ajmp main1

 

 

 

 

shuru:           ;開門復位

mov mmbz ,#03   ;錯誤密碼次數

mov at1 ,#00h  

mov at2 ,#00h

mov at3 ,#00h

mov at4 ,#00h

shuru2:

clr p0.6

mov a  ,#00h    ;密碼緩存

mov r2 ,#04h    ;四位密碼

mov r1 ,#00h

mov r0 ,#at1

mov r7 ,#05h

 

start1:

 

jb p2.4 ,start1

lcall delay500ms

jb p2.4 ,start1

 

ok1:             ;滴音

setb p3.0        ;開門后再按鍵1t以上關門

setb p0.6

clr p0.0

lcall delay500ms

jnb p2.4 ,daaa

 

cun1:

setb p0.2

setb p0.0

rl a

add a ,r1

djnz r7 ,yanshi1

ajmp xianshi1

 

yanshi1:            ;每個摩斯碼之間延時1t

lcall delay500ms

jb p2.4 ,stop1

ajmp ok1

 

daaa:              ;嗒音

lcall delay500ms

jb p2.4 ,stop1

setb p0.0

clr p0.2

lcall delay500ms

setb p0.2

jnb p2.4 ,stop1

mov r1 ,#01h

ajmp cun1

 

stop1:            ;摩斯碼錯誤處理

clr p0.4

lcall delay2s

setb p0.4

ajmp shuru2

 

cunchu2:

mov @r0 ,a

inc r0

mov a ,#00h

mov r1 ,#00h

mov r7 ,#05h

djnz r2 ,yanshi1

 

ajmp bijiao

 

 

 

 

xianshi1:    ;顯示處理

cjne a ,xs_0 ,next1_1

mov p1 ,#0c0h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next1_1:

cjne a ,xs_1 ,next2_2

mov p1 ,#0f9h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next2_2:

cjne a ,xs_2 ,next3_3

mov p1 ,#0a4h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

 

next3_3:

cjne a ,xs_3 ,next4_4

mov p1 ,#0b0h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next4_4:

cjne a ,xs_4 ,next5_5

mov p1 ,#99h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

 

next5_5:

cjne a ,xs_5 ,next6_6

mov p1 ,#92h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next6_6:

cjne a ,xs_6 ,next7_7

mov p1 ,#82h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next7_7:

cjne a ,xs_7 ,next8_8

mov p1 ,#0f8h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next8_8:

cjne a ,xs_8 ,next9_9

mov p1 ,#80h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

next9_9:

cjne a ,xs_9 ,cw2

mov p1 ,#90h

clr p3.2

lcall delay1s

setb p3.2

mov p1 ,#0ffh

ajmp cunchu2

 

 

bijiao: ;比較密碼

mov r6 ,#04

mov r1 ,#ps1

mov r0 ,#at1

bj2:

clr c

mov a ,@r0

subb a ,@r1

cjne a ,#00h ,cw2

inc r1

inc r0

djnz r6 ,bj2

clr p3.2     ;密碼正確

clr p3.0

lcall delay5s

setb p3.2

ajmp shuru

 

cw2:         ;密碼錯誤處理

djnz mmbz ,bjd

mov p0 ,#00h

clr p3.2

lcall delay5min

setb p3.2

mov p0 ,#0ffh

ajmp shuru2

bjd:

mov p0 ,#00h

clr p3.2

lcall delay5s

setb p3.2

mov p0 ,#0ffh

ajmp shuru2

 

 

delay500ms:

mov hc0 ,#05

ff1:

mov hc1 ,#200

fff1:

mov hc2,#250

djnz hc2 ,$

djnz hc1 ,fff1

djnz hc0 ,ff1

ret

 

delay1s:

mov hc0 ,#10

ff2:

mov hc1 ,#200

ff3:

mov hc2 ,#250

djnz hc2 ,$

djnz hc1 ,ff3

djnz hc0 ,ff2

ret

 

delay2s:

mov hc0 ,#20

ff4:

mov hc1 ,#200

ff5:

mov hc2 ,#250

djnz hc2 ,$

djnz hc1 ,ff5

djnz hc0 ,ff4

ret

 

delay5s:

mov hc0 ,#50

ff6:

mov hc1 ,#200

ff7:

mov hc2 ,#250

djnz hc2 ,$

djnz hc1 ,ff7

djnz hc0 ,ff6

ret

 

delay5min:

mov hc0 ,#12

qq1:

mov hc1 ,#200

qq2:

mov hc2 ,#250

qq3:

mov hc3 ,#250

djnz hc3 ,$

djnz hc2,qq3

djnz hc1 ,qq2

djnz hc0 ,qq1

ret

end

  • 上一篇: 基于視覺暫留原理的搖動顯示裝置探討
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    仙居县| 金溪县| 嘉善县| 巴林左旗| 宝兴县| 佛山市| 乐业县| 达尔| 伊宁县| 淳安县| 博罗县| 天全县| 隆化县| 淄博市| 长岭县| 三门县| 于都县| 桃江县| 百色市| 霍林郭勒市| 九龙坡区| 读书| 扎兰屯市| 青河县| 洱源县| 易门县| 车险| 陇西县| 沿河| 汨罗市| 金溪县| 江口县| 怀宁县| 宜川县| 翁牛特旗| 万安县| 江安县| 顺平县| 文昌市| 凤山县| 深水埗区|