?? 123.asm
字號:
;電子密碼鎖
ORG 0000H
LJMP START
ORG 0030H
START: MOV 50H,#0 ;初始密碼值012345
MOV 51H,#1
MOV 52H,#2
MOV 53H,#3
MOV 54H,#4
MOV 55H,#5
MOV 30H,#0 ;顯示初值000000
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
MOV 34H,#0
MOV 35H,#0
MOV R0,#30H
MAIN:ACALL DIR4 ;調用鍵盤顯示子程序
ACALL KEY ;轉向按鍵位置確定子程序
CJNE A,#14,FUWEI ;復位鍵
LJMP START
FUWEI:CJNE A,#15,MAIN ;確定鍵
LCALL BIJIAO ;調用比較子程序
LJMP START
;*********************************************
; 鍵盤程序,查詢方式
;*********************************************
KEY:MOV P1,#0F0H ;行線置低點平,列線置輸入態
KEY0:MOV A,P1
CPL A
ANL A,#0F0H
MOV R4,A
JZ GRET ;判斷有無鍵按下,沒有就跳出子程序
KEY1:MOV P1,#0FH
MOV A,P1
CPL A
ANL A,#0FH
MOV R2,A
JZ GRET
JBC F0,WAIT
SETB F0
LCALL DELAY
SJMP KEY
MOV P1,#0FH
WAIT:MOV A,P1
CPL A
ANL A,#0FH
JNZ WAIT
KEY2:MOV A,R4
MOV R4,#03H
MOV R3,#03H
CLR C
KEY3:RLC A
JC KEY4
DEC R4
DJNZ R3,KEY3
KEY4:MOV A,R2
MOV R2,#00H
MOV R3,#03H
CLR C
KEY5:RRC A
JC KEY6
INC R2
DJNZ R3,KEY5
KEY6:MOV A,R2
CLR C
RLC A
RLC A
ADD A,R4
CHUAN:MOV @R0,A ;數據送入緩沖區
INC R0
GRET:RET
;*********************************************
; 密碼比較程序
;*********************************************
BIJIAO:MOV R0,#30H
MOV R1,#50H
MOV 60H,#6
SS:MOV A,@R0
MOV 70H,@R1
CJNE A,70H,BT ;不相等則轉BT蜂鳴器響
INC R0
INC R1
DJNZ 60H,SS ;六次比較
CLR P2.3 ;相等則置燈亮
LCALL DELAY
RET
BT: CLR P2.4
LCALL DELAY
RET
;*********************************************
; LED顯示程序
;*********************************************
DIR4:MOV DPTR,#TAB
ANL P2,#11111000B
MOV R1,#30H
MOV 60H,#6
LOOP0: MOV A,@R1 ;A用來顯示輸入密碼
MOVC A,@A+DPTR ;查密碼的對應字碼段
MOV P0,A
INC R1 ;顯示下一個輸入密碼
LCALL DELAY1
INC P2
DJNZ 60H,LOOP0
RET
;*********************************************
; 延時程序1
;*********************************************
DY10MS:MOV 61H,#10
DY1:MOV 62H,#250
DY2:DJNZ 62H,DY2
DJNZ 61H,DY1
RET
;*********************************************
; 延時程序2
;*********************************************
DELAY:MOV 63H,#250
DE1:MOV 64H,#200
DE2:DJNZ 64H,DE2
DJNZ 63H,DE1
RET
;*********************************************
; 延時程序3
;*********************************************
DELAY1:MOV 65H,#10
DE3:MOV 66H,#10
DE4:DJNZ 66H,DE4
DJNZ 65H,DE3
RET
;********************************************************
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -