新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機的LCD1602液晶屏密碼鎖匯編程序

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

        作者: 時間:2016-11-28 來源:網絡 收藏
        ;========== 液晶工作方式設置 ============
        SELLCD: MOV A,#01H ;清屏,光標復位
        ACALL ENABLE
        MOV A,#38H ;設置顯示模式,8位兩行,5*7點陣
        ACALL ENABLE
        MOV A,#0DH ;顯示器開,允許內爍
        ACALL ENABLE
        MOV A,#06H ;文字不動,光標右移
        ACALL ENABLE
        RET
        ;========== 液晶執行指令 ============
        ENABLE: CLR RS
        CLR RW ;RS,RW同為低電平時寫入指令
        MOV P0,A
        CLR E ;E由高變低時執行指令
        ACALL WAIT
        SETB E
        RET
        ;========== WAIT ============
        ;判斷液晶是否忙的子程序
        WAIT: MOV P0,#0FFH
        CLR RS
        SETB RW ;RW為高,RS為低時可讀忙信號
        CLR E
        NOP
        SETB E
        JB P0.7,WAIT
        RET
        ;========== 顯示的起始地址 ============
        ;在第一行
        LINE1: MOV A,#80H
        ACALL ENABLE
        RET
        ;在第二行
        LINE2: MOV A,#0C0H
        ACALL ENABLE
        RET
        ;=========== 顯示程序 ============
        DISPLAY:MOV R7,#00H
        NEXT: MOV A,R7
        MOVC A,@A+DPTR
        CJNE A,#10H,DSP
        RET
        DSP: ACALL WRDATA
        INC R7
        AJMP NEXT
        ;========== 將A里面的數據寫入液晶 ============
        WRDATA: SETB RS
        CLR RW
        MOV P0,A
        CLR E
        ACALL WAIT
        SETB E
        RET
        ;=========== 報警程序 ============
        WRANING: SETB TR0
        ACALL BACK
        MOV R4,#00H
        ACALL D2
        JNB 20H, WRANING
        RET
        ;=========== 發聲程序 ============
        BACK: MOV R0,#100
        KK1: CPL SPEAK
        LCALL DELAY2MS
        DJNZ R0,KK1 ;不斷取反P2.0使其產生一定頻率的方波推動揚聲器
        RET ;延時的長短可以改變輸出的頻率
        ;=========== INTT0 ============
        ;報警時間設定
        INTT0: PUSH ACC
        PUSH PSW
        MOV TH0,#3CH
        MOV TL0,#0BH
        INC 45H
        MOV A,45H
        CJNE A,42H,INTT0OUT
        MOV 45H,#00H
        SETB 20H ;置標志位
        CLR TR0 ;關閉定時器
        INTT0OUT:POP PSW
        POP ACC
        RETI
        ;=========== INTT1 ============
        ;輸入超時
        INTT1: PUSH ACC
        PUSH PSW
        INC 46H
        MOV A,46H
        CJNE A,47H,INTT1OUT
        CLR TR1 ;關閉定時器
        SETB 21H ;時間到置標志位
        MOV 47H,#00H ;中斷次數清零
        INTT1OUT:POP PSW
        POP ACC
        RETI
        ;=========== 延時程序 ============
        DELAY: MOV R4,#38H
        D1: MOV R5,#0F9H
        DJNZ R5,$
        DJNZ R4,D1
        DJNZ R6,DELAY ;14R6毫秒
        RET
        DELAY2MS: MOV R4,#02H
        D2: MOV R5,#0F0H
        DJNZ R5,$
        DJNZ R4,D2
        RET
        DELAY10ms: MOV R4,#20
        D3: MOV R5,#248
        DJNZ R5,$
        DJNZ R4,D3
        RET
        PASS: DB "1314520"
        MES_P: DB "Password?",10H
        MES_C: DB " welcome!",10H
        MES_E: DB "Error!",10H
        TAB_1: DB "xiao_fa office",10h
        END

        上一頁 1 2 下一頁

        關鍵詞: 51單片機LCD1602液晶屏密碼鎖匯編程

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宜丰县| 望都县| 庆元县| 屏东县| 阳春市| 清徐县| 江安县| 清河县| 普兰县| 渭源县| 安图县| 吕梁市| 绍兴县| 新郑市| 莲花县| 浮梁县| 定安县| 六安市| 宁德市| 体育| 临洮县| 博白县| 永春县| 泰来县| 汉阴县| 定远县| 察哈| 随州市| 东阳市| 九龙坡区| 宜都市| 平安县| 交城县| 莲花县| 邻水| 蒙山县| 民勤县| 隆尧县| 崇文区| 南开区| 天镇县|