这是对应的汇编程序,求修改、、、仿真时候在电机模块那里出现问题。。。。如果接P3.0到3.3口,电机就转动不了了。。。求改!!!
KEY_ADD BIT P3.0
KEY_DEC BIT P3.1
ORG 0000H
BEGIN: LJMP INIT
ORG 0003H ;INT0
ORG 000BH ;T0 INT
ORG 0013H ;1NT1
ORG 001BH ;T1 INT
ORG 0023H ;S PORT INT
ORG 002BH ;T2 INT
ORG 0030H
;============================================
INIT: MOV SP,#60H
MOV P0,#0FFH
MOV P2,#00H
MOV P1,#00H
MOV 4AH,#15
;============================================
MAIN: LCALL GET_TEMPER
LCALL DISP
// LCALL KEYSCAN
// LCALL OUT
SJMP MAIN
;============================================
GET_TEMPER:
SETB P3.4
LCALL RST18B20
JB 00H,DSS2
RET
DSS2: MOV A,#0CCH
LCALL WR18B20
MOV A,#44H
LCALL WR18B20
LCALL RST18B20
MOV A, #0CCH
LCALL WR18B20
MOV A,#0BEH
LCALL WR18B20
LCALL RE18B20
RET
RST18B20:
SETB P3.4
NOP
CLR P3.4
MOV R0,#06BH
MOV R1,#03H
DSR1: DJNZ R0,DSR1
MOV R0,#6BH
DJNZ R1,DSR1
SETB P3.4
NOP
NOP
NOP
MOV R0,#25H
DSR2: JNB P3.4,DSR3
DJNZ R0,DSR2
LJMP DSR4
DSR3: SETB 00H
LJMP DSR5
DSR4: CLR 00H
LJMP DSR7
DSR5: MOV R0,#06BH
DSR6: DJNZ R0,DSR6
DSR7: SETB P3.4
RET
;----------------------------
WR18B20:
MOV R2,#8
CLR C
WR1: CLR P3.4
MOV R3,#6
DJNZ R3,$
RRC A
MOV P3.4,C
MOV R3,#23
DJNZ R3,$
SETB P3.4
NOP
DJNZ R2,WR1
SETB P3.4
RET
;-------------------------
RE18B20: SETB RS0
MOV R4,#2
MOV R0,#36H
RE00: MOV R5,#8
RE01: CLR C
SETB P3.4
NOP
NOP
CLR P3.4
NOP
NOP
NOP
SETB P3.4
MOV R6,#07
RE10: DJNZ R6,RE10
MOV C,P3.4
MOV R6,#20
RE20: DJNZ R6,RE20
RRC A
DJNZ R5,RE01
MOV @R0,A
DEC R0
DJNZ R4,RE00
CLR RS0
NOP
RET
;-----------------------------
DISP: MOV A,35H
ANL A,#0FH
MOV 45H,A
MOV A,36H
SWAP A
ANL A,#0FH
MOV 46H,A
MOV A,45H
SWAP A
ORL A,46H
MOV 46H,A
MOV B,#10
DIV AB
MOV 50H,A
MOV 51H,B
MOV A,4AH
MOV B,#10
DIV AB
MOV 52H,A
MOV 53H,B
MOV DPTR,#TAB
MOV A,50H
MOVC A,@A+DPTR
CPL A
MOV P1,#00H
MOV P2,A
LCALL DELAY
MOV A,51H
MOVC A,@A+DPTR
CPL A
MOV P1,#20H
MOV P2,A
LCALL DELAY
MOV A,52H
MOVC A,@A+DPTR
CPL A
MOV P1,#40H
MOV P2,A
LCALL DELAY
MOV A,53H
MOVC A,@A+DPTR
CPL A
MOV P1,#60H
MOV P2,A
LCALL DELAY
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DELAY: MOV R5,#30
D1: MOV R6,#123
NOP
D2: DJNZ R6,D2
DJNZ R5,D1
RET
//KEYSCAN: JB 7DH,SCAN1
JB KEY_ADD,SCAN2
DJNZ R0,$
JB KEY_ADD,SCAN2
SETB 7DH
INC 4AH
SCAN1: JNB KEY_ADD,SCAN12
CLR 7DH
SCAN2: JB 7CH,SCAN11
JB KEY_DEC,SCAN12
DJNZ R0,$
JB KEY_DEC,SCAN12
SETB 7CH
DEC 4AH
SCAN11: JNB KEY_DEC,SCAN12
CLR 7CH
SCAN12: NOP
RET
//OUT: MOV A,46H
CJNE A,4AH ,OUT1
SJMP OUT3
OUT1: SUBB A, 4AH
MOV B,#2
DIV AB
LP1: MOV P1,#03H
ACALL DEL
DEC A
JZ OUT3
MOV P1,#02H
ACALL DEL
DEC A
JZ OUT3
MOV P1,#06H
ACALL DEL
DEC A
JZ OUT3
MOV P1,#04H
ACALL DEL
DEC A
JZ OUT3
MOV P1,#0CH
ACALL DEL
DEC A
JZ OUT3
MOV P1,#08H
ACALL DEL
DEC A
JZ OUT3
MOV P1,#09H
ACALL DEL
DEC A
JZ OUT3
MOV P1,#01H
ACALL DEL
DEC A
// JNZ LP1
AJMP OUT3
OUT3: NOP
RET
DEL: MOV R6,#10
DD1: MOV R5,#80H
DD2: MOV R7,#0
DD3: DJNZ R7,DD3
DJNZ R5,DD2
DJNZ R6,DD1
RET
END