在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用AT89C2051設(shè)計的多功能密碼鎖

            用AT89C2051設(shè)計的多功能密碼鎖

            作者: 時間:2011-01-27 來源:網(wǎng)絡(luò) 收藏
            本站介紹一種由AT89C2051編程實現(xiàn)的控制電路,具有按鍵有效指示、輸入錯誤、解碼有效指示、控制開鎖、定時中斷、錯誤報警、密碼修改等功能;8位10進(jìn)制密碼,保密好使用范圍廣,特適用家庭、賓館等場所。

            一、硬件電路:


            AT89C2051是與MCS-51系列兼容的一種高性能,具有2KB片內(nèi)ROM、256字節(jié)片內(nèi)RAM,可以不需擴(kuò)展外程序、數(shù)據(jù)存儲器,可滿足一般的程序需求,從硬件組成可以看出該密碼鎖有一個3X4陣列的鍵盤,只需7條I/O引腳就可以了余下的I/O引腳可以開發(fā)其他控制功能,如:控制空調(diào)、電燈、風(fēng)扇等。

            二、功能實現(xiàn)

            鍵盤掃描所用引腳P1.0-P1.6,其中P1.4-P1.6這3條引腳用于輸出掃描信號,P1.0-P1.3這4條引腳用于檢測按鍵的狀態(tài)。P1.0-P1.6的狀態(tài)組成的鍵碼以及對應(yīng)按鍵如表1所列。


            在程序執(zhí)行中,是先從P1.6送出“0”,再判別P1.3-P1.0的輸入。所以,實質(zhì)是在P1.6-P1.4送出“011”,接收P1.3-P1.0的輸入狀態(tài),這時判別8,9,A這4個鍵。接著,在P1.6-P1.4送出“101”,接收P1.3-P1.0的輸入,這時判別4,5,6,7這4個鍵。再而,在P1.6-P1.4送出“110”,接收P1.3-P1.0的輸入,這時判別0,1,2,3這4個鍵的狀態(tài)。
            開鎖電平UNLOCK的輸出腳P3.0,當(dāng)輸入的鍵正確時則在P3.0輸出開鎖電平UNLOCK。
            報警電平DANG輸出腳P3.1。在6次誤碼輸入的條件下,進(jìn)行報警。
            LOCK控制引腳P3.2,90S之后停止輸入。
            有效按鍵提示EFFI引腳P3.3。
            錯誤輸入警告WARN引腳P3.4。
            另外,還有引腳5,4接石英振蕩器的XTAL2,XTAL1端,組成石英振蕩器電路,在圖1中沒有畫出。引腳1用于復(fù)位。

            三、密碼鎖的控制程序

            密碼鎖的控制程序由延時子程序、修改密碼子程序、掃描輸入子程序、時鐘中斷子程序及主程序組成。程序框圖如圖2所示。它對輸入的8位十進(jìn)制密碼進(jìn)行判別,如果輸入密碼正確,則可以直接開鎖或修改密碼之后開鎖。如果不正確,并且6次以上輸入不正確,則報警并封鎖輸入口。

            1.主程序:
            ORG 0H
            SJMP START
            ORG 0BH
            SJMP INT
            START ;初始化
            MOV SP.#70H
            SETB P3.0
            SETB P3.1
            SETB P3.2
            SETB P3.3
            MOV TMOD,#01H
            MOV TL0,#00H
            MOV TH0,#00H
            SETB TR0
            SETB ET0
            SETB EA
            MOV R2,#0FFH
            MOV 3AH,#03H
            MOV R3,#06H

            PASSWORD:MOV R4,#08H ;設(shè)置初始密碼
            MOV R0,#40H
            MOV A,#07H
            MOV @R0,A
            INC R0
            INC A
            DJNZ R4,PASSWORD

            DETPW: MOV R4,#08H ;輸入密碼
            MOV R0,#30H

            AGAIN: ACALL INPUT
            MOV A,R7
            CJ R7,#08H,IN
            ACALL CHPSW ;修改密碼子程序
            JMP GETPW

            IN: MOV @R0,A
            CLR P3.3 ;按鍵有效顯示
            ACALL DELAY
            SETB P3.3

            COMP: MOV R4,#08H ;比較密碼
            MOV R0,#30H

            AGAI: MOV 50H,@R0
            ADD R0,#010H
            MOV A,@R0
            SUB R0,#010H
            CJNE A,50H,ONCEMORE
            INC R0
            DJNZ R4,AGA1
            CLR P3.0

            HERE: AJMP HERE

            ONCEMORE:CLR P3.4 ;錯誤輸入警告
            ACALL DELAY
            SETB P3.4
            DJNZ R3,GETPW
            CLR P3.1 ;6次錯誤輸入報警
            THERE: AJMP THERE

            2.延時子程序
            DELAY: MOV R5,#30H

            DELAY1: MOV A,#0FFH

            LOOOP: DEC A
            JNZ LOOP
            DJNZ R5,DELAY1
            RET

            3.修改密碼子程序
            CHPSW: MOV R0,#40H

            ANOTHER: ACALL INPUT
            MOV A,R7
            MOV @R0,A
            INC R0
            CLR P3.3 ;按鍵有效提示
            ACALL DELAY
            SETB P3.3
            DJNZ R4,ANOTHER
            RET

            4.掃描鍵盤輸入子程序
            INPUT: MOV R6,#02H
            MOV R1,#40H

            LOP: ACALL DELAY
            MOV P1,#0FFH ;掃描碼
            CLR P1.6
            MOV A,P1
            ANL A,#0FH ;檢驗有否按鍵
            CJNE A,#0FH,INKEY
            MOV P1,#0FFH
            CLR P1.5
            MOV A,P1
            ANL A,#0FH
            CJNE AA,#0FH,INKEY
            MOV P1,#0FFH
            CLR P1,4
            MOV A,P1
            ANL A,#0FH
            CJNE A,#0FH,INKEY
            SJMP LOP

            INKEY: MOV @R1,P1
            INC R1
            DJNZ R6,LOP
            DEC R1
            MOV A,@R1
            DEC R1
            CJNE A,40H,INPUT
            RET

            5.時鐘中斷子程序
            INT: PUSH ACC
            MOV TMOD,#01H
            MOV TL0,#00H
            MOV TH0,#00H
            SETB TR0
            SETB ET0
            SETB EA
            DJNZ R2,CONT
            CONTINUE
            DJNA 3AH,CONT
            CLR P3.2 ;時鐘中斷控制

            STOP: AJMP STOP

            CONT: POP ACC
            RET1



            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉