機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
簡單的電子密碼鎖
簡單的電子密碼鎖
 更新時間:2008-7-26 17:09:46  點(diǎn)擊數(shù):4
【字體: 字體顏色
    這并不是一個真正的電子密碼鎖,僅供學(xué)習(xí)單片機(jī)用。
   
    電路所完成的功能是等待密碼的輸入,通過數(shù)碼管滾動顯示輸入的文本。輸入密碼的方
法是:電路中有一個撥碼開關(guān)(看實(shí)物圖)用前3位來輸入密碼,第4位先撥到上,再撥到下
(相當(dāng)于按了一下“回車”鍵)以確認(rèn)。重復(fù)以上動作可輸入一個6位的密碼。 單片機(jī)將把
輸入的密碼與單片機(jī)內(nèi)部的密碼相比較,如果一致,比較后顯示“ACCEPTED”則意味著密碼
正確,鎖被打開,然后電路返回初始狀態(tài)。如果比較的結(jié)果是不一致,顯示“DENIED”表示
密碼不正確。

;***** VARIABLE DEFINITIONStempEQU     0x0C        ; temp variablepincodeEQU     0x0D        ; the PINdelaytemp1EQU0x0Edelaytemp2EQU0x0Fdelaytemp3EQU0x010countEQU0x011entryEQU0x012;**********************************************************************                ORG     0x000             ; processor reset vector                goto    main              ; go to beginning of program                ORG     0x004             ; interrupt vector location                retfie                    ; return from interrupt;table1ADDWFPCL, F; JumpRETLW0x086; ERETLW0x0AB; nRETLW0x087; tRETLW0x086; E
RETLW0x0AF; rRETLW0x0FF; spaceRETLW0x08C; PRETLW0x0F9; IRETLW0x0AB; nRETLW0x07F; dpRETLW0x00; null char;table2ADDWFPCL, FRETLW0x088; ARETLW0x0C6; CRETLW0x0C6; CRETLW0x086; ERETLW0x08C; PRETLW0x087; tRETLW0x086; ERETLW0x0A1; dRETLW0x00; \0;table3ADDWFPCL, FRETLW0x0A1; dRETLW0x086; ERETLW0x0AB; nRETLW0x0F9; IRETLW0x086; ERETLW0x0A1; dRETLW0x00; \0;main            bsfSTATUS, RP0; Set page bitclrfTRISB; All outputsbcfSTATUS, RP0; Clear page bit; 7-seg on PORTB, dp on                         ; bit 7 seg a on bit 0MOVLWb'00111111'MOVWFpincode; Main loop, while PIN is wrong say ENTER PINCLRFcount; char countMOVLWb'10000000'MOVWFentry; first entry flag setmain_loopMOVFcount, WCALLtable1ANDLW0x0FF;test if at end of messageBTFSCSTATUS, ZGOTOdisp_doneMOVWFPORTB; Display charCALLdel500ms; delayINCFcount, FBTFSCPORTA, 0; Enter key, switch 5GOTOmain_loop;MOVFPORTA, WMOVWFtempMOVLW0x03A; Debounce switchCALLdel_xW; delay of ~ 30 msBTFSCentry, 7; first or second press                                 ;of enter ?GOTOfirstMOVLWb'00001110'ANDWFtemp, F; maskRLFtemp, F; shift left 1 bitRLFtemp, W; shift left 1 bitIORWFentry, FMOVFentry, WCLRFcountSUBWFpincode, WBTFSSSTATUS, ZGOTOdenied;acceptedMOVFcount, WCALLtable2ANDLW0x0FF;test if at end of messageBTFSCSTATUS, ZGOTOcode_doneMOVWFPORTB; Display charCALLdel500ms; delayINCFcount, FGOTOaccepted; Do all chars;deniedMOVFcount, WCALLtable3ANDLW0x0FF;test if at end of messageBTFSCSTATUS, ZGOTOcode_doneMOVWFPORTB; Display charCALLdel500ms; delayINCFcount, FGOTOdenied; Do all chars;code_doneCALLdel500msCLRFcountMOVLWb'10000000'MOVWFentry; first entry flag setGOTOmain_loop;firstMOVLWb'00001110'ANDWFtemp, F; maskRRFtemp, W; shift right 1 bitMOVWFentry; clears first flag bitGOTOmain_loop; Keep displaying message;disp_doneCLRFcountGOTOmain_loop;del_xWmovwfdelaytemp2; delay 256 cycles * Wclrfdelaytemp1; min delay ~ 512us                                 ;max ~ 131072us = 0.131 sdel_loopdecfszdelaytemp1, f;delay time = gotodel_loop;msd * ((3 * 256) + 3) * tcydecfszdelaytemp2, f;gotodel_loop;Actual delay time is 925 usreturn;del500msMOVLW0x03MOVWFdelaytemp3; 4 loopsdel_loop2MOVLW0x0C3; 195 loops ~ 100ms * 5 = ~500msCALLdel_xW; Delay routineDECFSZdelaytemp3, FGOTOdel_loop2RETURN; Return from routine                END; directive 'end of program'
 
  • 上一篇: LCD驅(qū)動HT1621的PIC單片機(jī)源代碼
  • 下一篇: PIC選型簡單介紹
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

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

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1