2,输入一位密码,为0—3之间的数字,分别对应P0.0—P0.3,密码输入正确LED数码管显示字符“P”约3秒钟,并通过P3.0端口将锁打开;否则LED数码管显示字符“E”约3秒钟,锁继续保持锁定的状态,等待再次输入密码。
3,锁的开和关用P3.0控制一个发光二极管代替,发光二极管亮表示锁打开,灭表示锁定。
编出来程序就行了。
5 个解决方案
#1
刚做过这个数电实验!!!!!!!!!!1
#2
#3
这个不难吧。
PASSWORD EQU 2
ORG 0000H
LJMP MAIN
ORG 0100H
// LED = 0 ON, LED = 1 OFF
MAIN: SETB P3.0
MOV P2,#0
MOV A,P0
ANL A,#0FH
JZ MAIN
MOV 21H,A // Save the key to 21H
MOV A,#PASSWORD
MOV DPTR,#PASS
MOVC A,@A+DPTR
CJNE A,21H,ERROR
PASSED: CLR P3.0
MOV R2,#8CH // Display 'P'
MOV R7,#10
LCALL DELAY
LJMP MAIN
ERROR: SETB P3.0
MOV P2,#86H // Display 'E'
MOV R7,#3
LCALL DELAY
LJMP MAIN
// Delay 'R7' second(s)
DELAY: MOV R6,#40
D0: MOV R5,#100
D1: MOV R4,#250
DJNZ R4,$
DJNZ R5,D1
DJNZ R6,D0
DJNZ R7,DELAY
RET
PASS: DB 00000001B,00000010B,00000100B,00001000B
END
#4
顶……!!!!!!!!!!!!!!!!
#5
标记学习
#1
刚做过这个数电实验!!!!!!!!!!1
#2
#3
这个不难吧。
PASSWORD EQU 2
ORG 0000H
LJMP MAIN
ORG 0100H
// LED = 0 ON, LED = 1 OFF
MAIN: SETB P3.0
MOV P2,#0
MOV A,P0
ANL A,#0FH
JZ MAIN
MOV 21H,A // Save the key to 21H
MOV A,#PASSWORD
MOV DPTR,#PASS
MOVC A,@A+DPTR
CJNE A,21H,ERROR
PASSED: CLR P3.0
MOV R2,#8CH // Display 'P'
MOV R7,#10
LCALL DELAY
LJMP MAIN
ERROR: SETB P3.0
MOV P2,#86H // Display 'E'
MOV R7,#3
LCALL DELAY
LJMP MAIN
// Delay 'R7' second(s)
DELAY: MOV R6,#40
D0: MOV R5,#100
D1: MOV R4,#250
DJNZ R4,$
DJNZ R5,D1
DJNZ R6,D0
DJNZ R7,DELAY
RET
PASS: DB 00000001B,00000010B,00000100B,00001000B
END
#4
顶……!!!!!!!!!!!!!!!!
#5
标记学习