在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)的LCD1602液晶屏密碼鎖匯編程序

            51單片機(jī)的LCD1602液晶屏密碼鎖匯編程序

            作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
            ;說(shuō) 明:首先顯示器提示輸入密碼,密碼在12.5S內(nèi)輸入有效,
            ; 輸入次三次錯(cuò)誤報(bào)警10S,輸入正確開門,7秒后返回初態(tài)
            ; 以上參數(shù)均可在主程序里設(shè)定,修改系統(tǒng)密碼在程序的結(jié)尾
            RS BIT P2.7
            RW BIT P2.6
            E BIT P2.5
            ENTER BIT 22H.0
            OPEN BIT P3.6
            SPEAK BIT P3.7
            PASSBUF EQU 40H
            KEYNUMBER EQU 41H ;存放識(shí)別后的按鍵號(hào)
            ORG 0000H
            AJMP MAIN
            ORG 0003H
            JMP KEY_INT
            ORG 000BH
            AJMP INTT0
            ORG 001BH
            AJMP INTT1
            ORG 0030H
            ;========== 主程序開始 ==============
            MAIN: MOV 30H,#07H ;輸入密碼為7位 最高只可設(shè)15位
            MOV 42H,#200 ;設(shè)定報(bào)警的時(shí)間,42H單元里的數(shù)*50MS
            MOV 43H,#250 ;設(shè)定開門時(shí)間 14的倍數(shù)(實(shí)際上液晶顯示器執(zhí)行指令占用了時(shí)間,開門時(shí)間會(huì)比14*250MS大)
            ;44H號(hào)單元存放輸入錯(cuò)誤的次數(shù)
            ;45H為定時(shí)器0中斷次數(shù)
            ;46H為定時(shí)器1中斷次數(shù)
            MOV 47H,#250 ;輸入密碼時(shí)間設(shè)定,50MS倍數(shù)
            MOV SP,#60H
            CLR OPEN
            CLR SPEAK ;初始化輸出設(shè)備
            CLR ENTER ;標(biāo)志位初始化
            MOV TMOD,#11H ;定時(shí)器工作方式2
            MOV TH0,#3CH ;初值50MS
            MOV TL0,#0BH
            MOV TH1,#3CH
            MOV TL1,#0BH
            SETB EA
            SETB ET0
            SETB ET1
            MOV TCON,#00000000B ;電平觸發(fā)
            START: MOV R0,30H
            MOV R1,#31H
            SS1: MOV @R1,#00H
            INC R1
            DJNZ R0,SS1 ;將輸入密碼緩沖單元清零
            MOV P1,#0FH ;初始化按鍵口
            MOV R1,#31H ;從31號(hào)單元開始存放按建輸入的密碼
            CLR 20H ;報(bào)警標(biāo)志清零
            CLR 21H ;密碼超時(shí)標(biāo)志
            MOV 46H,#00H ;超時(shí)后對(duì)定時(shí)器中斷次數(shù)清零,便于下一輪重新計(jì)時(shí)
            INIT: ACALL SELLCD ;設(shè)定液晶工作方式
            ACALL LINE1 ;在第一行顯示
            MOV DPTR,#MES_P ;顯示請(qǐng)輸入密碼
            ACALL DISPLAY
            setb EX0 ;開中斷,允許鍵盤輸入
            KEYIN: JB 21H,ERR ;超時(shí)轉(zhuǎn)到錯(cuò)誤程序
            JNB ENTER,KEYIN ;等待ENTER按下
            CLR ENTER
            clr EX0 ;密碼輸入完后鎖定鍵盤
            ;當(dāng)使用邊沿觸發(fā)時(shí)用上面的指令為什么禁止不了中斷???
            ;========== 密碼判斷程序 ============
            COMP:
            MOV DPTR,#PASS
            MOV R4,30H ;密碼的長(zhǎng)度
            MOV A,#0
            MOV R1,#31H
            LOOP: MOV R5,A
            MOVC A,@A+DPTR
            MOV PASSBUF,A ;取出系統(tǒng)設(shè)定的密碼
            MOV A,@R1 ;從31號(hào)單元開始取出輸入的密碼
            CJNE A,PASSBUF,ERR ;比較
            MOV A,R5
            INC A
            INC R1 ;取下一位
            DJNZ R4,LOOP
            ;正確
            MATCH: MOV A,#01H
            ACALL ENABLE ;清屏,光標(biāo)復(fù)位
            ACALL LINE1 ;從第一行開始顯示
            MOV DPTR,#MES_C
            ACALL DISPLAY ;顯示"請(qǐng)進(jìn)"
            ACALL LINE2
            MOV DPTR,#TAB_1
            ACALL DISPLAY
            SETB OPEN ;開門
            MOV 44H,#00H ;輸入錯(cuò)誤次數(shù)清零
            MOV R6,43H
            ACALL DELAY
            CLR OPEN ;復(fù)位
            JMP START
            ;錯(cuò)誤
            ERR: ACALL BACK
            MOV R6,#03H
            ACALL DELAY
            ACALL BACK ;輸錯(cuò)提示音,鳴兩下
            MOV A,#01H
            ACALL ENABLE
            ACALL LINE1
            MOV DPTR,#MES_E
            ACALL DISPLAY ;顯示錯(cuò)誤
            MOV R6,#40H
            ACALL DELAY
            INC 44H
            MOV A,44H
            CJNE A,#03H,EE0
            EE0: JC ERROUT ;輸錯(cuò)不到三次返回
            MOV 44H,#00H ;清零
            ACALL WRANING ;報(bào)警
            ERROUT: JMP START
            ;=========== 按鍵中斷服務(wù)程序 ==========
            KEY_INT:push acc
            push psw
            clr ex0
            acall delay10ms ;延時(shí)消抖
            SETB TR1 ;啟動(dòng)定時(shí)器
            ACALL SMKEY ;按鍵識(shí)別
            MOV A,KEYNUMBER ;返回按鍵號(hào)
            ACALL BACK ;按鍵發(fā)聲
            MOV R3,A
            CJNE R3,#0BH,K1 ;ENTER是否按下
            SETB ENTER
            clr tr1 ;按下確認(rèn)后關(guān)畢定時(shí)器
            mov 46h,#00h ;對(duì)中斷次數(shù)清零
            AJMP KEY_RTN
            K1: ADD A,#30H ;將按鍵號(hào)轉(zhuǎn)換為ASCⅡ碼
            MOV @R1,A ;將輸入的密碼存入緩沖單元
            INC R1 ;修改地址
            ACALL WRDATA ;輸入一位顯示一個(gè)"*"
            KEY_RTN:pop psw
            pop acc
            setb ex0
            RETI
            ;=========== 按鍵識(shí)別程序 ==========
            SMKEY:
            MOV A,P1
            ANL A,#0FH
            WKEY: MOV B,A ;反轉(zhuǎn)法查詢
            MOV P1,#0F0H
            NOP
            MOV A,P1
            ANL A,#0F0H
            ORL A,B
            MOV P1,#0FH ;還原P1口初態(tài)
            CJNE A,#0EEH,WKEY1
            MOV KEYNUMBER,#00H
            AJMP RETURN
            WKEY1: CJNE A,#0EDH,WKEY2
            MOV KEYNUMBER,#01H
            AJMP RETURN
            WKEY2: CJNE A,#0EBH,WKEY3
            MOV KEYNUMBER,#02H
            AJMP RETURN
            WKEY3: CJNE A,#0E7H,WKEY4
            MOV KEYNUMBER,#03H
            AJMP RETURN
            WKEY4: CJNE A,#0DEH,WKEY5
            MOV KEYNUMBER,#04H
            AJMP RETURN
            WKEY5: CJNE A,#0DDH,WKEY6
            MOV KEYNUMBER,#05H
            AJMP RETURN
            WKEY6: CJNE A,#0DBH,WKEY7
            MOV KEYNUMBER,#06H
            AJMP RETURN
            WKEY7: CJNE A,#0D7H,WKEY8
            MOV KEYNUMBER,#07H
            AJMP RETURN
            WKEY8: CJNE A,#0BEH,WKEY9
            MOV KEYNUMBER,#08H
            AJMP RETURN
            WKEY9: CJNE A,#0BdH,WKEY10
            MOV KEYNUMBER,#09H
            AJMP RETURN
            WKEY10: CJNE A,#0BbH,WKEY11
            MOV KEYNUMBER,#0AH
            AJMP RETURN
            WKEY11: CJNE A,#0B7H,RETURN
            MOV KEYNUMBER,#0BH ;判斷哪個(gè)鍵按下,返回相應(yīng)按鍵號(hào)碼
            RETURN: MOV P1,#0FH
            NOP
            NOP
            MOV A,P1
            CPL A
            ANL A,#0FH
            JNZ RETURN ;等待按鍵松開
            RET

            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


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

            關(guān)閉