[请益] 8051七段显示器密码锁

楼主: D0248013 (阿喜)   2016-04-07 20:50:59
安安各位前辈好
小弟我最近刚学组合语言
目前想用8051做一个简易的密码锁
照著书上的电路以及程式打
但是程式自编译的时候出了问题
不知道有没有人知道问题出在哪
以下是我的电路图,
http://imgur.com/Yb3Osa8
以下是我的程式
ORG 00H
MOV SP,#70H
CLEAR: MOV A,#0F0H
MOV P0,A
MOV R4,#04H
START: MOV R1,#20H
START1: MOV @R1,#00H
INC R1
DJNZ R4,START1
START2: MOV R5,#04H
MOV R0,#00H
MOV R3,#07FH
X1: MOV A,R3
MOV P2,A
RR A
MOV R3,A
MOV A,P2
ANL A,#0F0H
MOV R2,A
SWAP A
CLR C
CPL C
MOV R6,#04H
X2: RLC A
CALL DISP
MOV P0,#0F0H
JNC X3
INC R0
DJNZ R6,X2
DJNZ R5,X1
AJMP START2
X3: CALL DISP
MOV P0,#0F0H
MOV A,P2
ANL A,#0FH
XRL A,R2
JZ X3
MOV A,R0
XRL A,#0EH
JZ COMPARE
MOV A,R0
XRL A,#0FH
JZ CLEAR
MOV A,R0
MOV R1,#20H
MOV R7,#04H
CHANGE: XCH A,@R1
INC R1
DJNZ R7,CHANGE
AJMP START2
COMPARE:CALL DISP
MOV P0,#0F0H
MOV DPTR,#TABLE
MOV R6,#00H
MOV R1,#20H
MOV R4,#04H
I1: MOV A,R6
MOVC A,@A+DPTR
MOV 50H,@R1
CJNE A,50H,CLEAR
INC R6
INC R1
DJNZ R4,I1
MOV R7,#05H
I4: MOV R5,#00H
I2: CLR P1.0
CALL DEL
CALL DEL
DJNZ R5,I2
MOV R5,#00H
I3: SETB P1.0
CALL DEL
CALL DEL
DJNZ R5,I3
DJNZ R7,I4
AJMP CLEAR
DISP: PUSH A
MOV R1,#20H
MOV A,@R1
SWAP A
ORL A,#01H
MOV P0,A
CALL DEL
INC R1
MOV A,@R1
SWAP A
ANL P0,#0FH
ORL A,#02H
MOV P0,A
CALL DEL
INC R1
MOV A,@R1
SWAP A
ANL P0,#0FH
ORL A,#04H
MOV P0,A
CALL DEL
INC R1
MOV A,@R1
SWAP A
ANL P0,#0FH
ORL A,#08H
MOV P0,A
CALL DEL
POP A
RET
DEL: MOV R4,#00H
DEL1: DJNZ R4,DEL1
RET
TABLE DB 04H,08H,03H,01H
END
作者: SonyXperiaX   2016-04-08 00:55:00
编译失败应该有错误码或是哪行编译错误吧
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2016-04-08 13:18:00
你内容应该是X51用的语法,KEIL要修改一下喔不是,是指你的与法是AD2500的X8051组译器语法在KEIL中Code,Data,Segment都要用需指令分开定义的

Links booklink

Contact Us: admin [ a t ] ucptt.com