You are on page 1of 20

www.plcworld.

cn

www.plcworld.cn

........................................................................................................................................3
.............................................................................................3
.....................................................................................3

.............................................................4

.............................................................5

.............................................................................5
AT89S51

....................................................................................................6
AT89S51
.................................................................6
AT89S51
.....................................................................6
...............................................................................................................9
.............................................................................................10
...........................................................................10
.......................................................................10
.......................................................................................11
.......................................................................................11
.........................................................................................................................12
.........................................................................................12
.............................................................................12
...........................................................................................13
...................................................................................13
.........................................................................................................................14
.........................................................................................20

www.plcworld.cn

www.plcworld.cn

www.plcworld.cn

0
0

HITACHI

AT89S51
9V

www.plcworld.cn

AT89S51
AT89S51

ATMEL
4KB

8051

AT89S51
1
2
3
4
5
6
7
8
9
10
11
12

8
12MHz
ROM
RAM

32
5
2
1
8751

4KB
128B
64KB
64KB
I/O

16
8752

AT89S51
VCC
AT89S51
VSS

+5V

XTAL1

XTAL2
XTAL1

20PF
RESET
AT89S51

AT89S51
AT89S51
6

XTAL2

www.plcworld.cn

0000H
EA/Vpp
"EA"

"External Access"

EPROM

8031

8032
8751

8751
21V
ALE/PROG
ALE
AT89S51

EA
EPROM

Vpp
"Address Latch Enable"
8
A0

A7

74LS373

AT89S51
ALE

1/6
8751

PSEN
"Program Store Enable"
EA=0
AT89S51

EPROM
OE
RAM
EPROM
64K
P0.0
0
P0.0

PORT0

P0.7
8
0 P0.1

8051
PSEN

Open Drain
1

I/O
P0

LS

TTL
P0

I/O

PORT2

P2.0
2

A0
A15

A7

D0
A0

16

A8

4
AT89S51
A15

LS

P2

I/O

P1.7
I/O

LS TTL
P1.1
PORT3

A7
64K

I/O
2
I/O

P1.0
1

D7

P2.7

TTL
P2

PORT1

8
P1 P2 P3
8

EA
0

A8

RD

1
8052
T2EX
P3.0 P3.7
3

8032

P1.0

I/O

TTL
7

www.plcworld.cn

P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7

RXD
TXD
INT0
INT1
T0
T1
WR
RD

0
1
0
1

www.plcworld.cn

www.plcworld.cn

10

www.plcworld.cn

4V6V

1ms2ms

5ms

20ms

20ms





 5V

TowPro
0.23
60
3.2kgcm
40.4mm19.8mm36mm
37.2g
20ms





0.3ms
2.5ms
1.4ms
11

SG303

www.plcworld.cn

VCD

0s
0s

0s
s

s
s

12

www.plcworld.cn

0s

38KH

32



0
1
5

5



16
SUBB A
8 R2
8 R2
C

0.56ms+
1.68ms+
0.1ms
0.5ms
1.12ms
0
1
R2
R2

RRC

0.56ms
0.56ms
16
SUBB
8
1
0

A
C=1
C=0
A
ASM

13

1.6ms

R0

www.plcworld.cn

;
ASM
;----------------------------------------------------------------------------------------------------------------------------------------HOME
EQU 14
BACK
EQU 3
FOR
EQU 25
; ---------------------------------------------------------------------------------------------------------------------------------------1 6
CODE_K1 EQU 19H
CODE_K2 EQU 18H
CODE_K3 EQU 0AH
CODE_K4 EQU 09H
CODE_K5 EQU 0BH
CODE_K6 EQU 14H
; ---------------------------------------------------------------------------------------------------------------------------------------IRCOM
EQU 30H
COM
EQU 32H
3
; ---------------------------------------------------------------------------------------------------------------------------------------IRIN
EQU P3.2
IR
WLED
EQU P3.7
SPK
EQU P3.4
DJZ
EQU P1.0
DJL
EQU P1.1
DJR
EQU P1.2
; ---------------------------------------------------------------------------------------------------------------------------------------ORG 0H
0
JMP BEGIN
; ---------------------------------------------------------------------------------------------------------------------------------------BEGIN:
CLR DJZ
CLR DJL
CLR DJR
CLR SPK
CALL LED_BL
CALL BZ
CALL GO_HOME
CALL LED_BL
CALL BZ
CALL QD
SETB IRIN
IR
LOOP:
MOV R0,#IRCOM
IR
CALL IR_IN
IR
CALL OP
JMP LOOP
; ---------------------------------------------------------------------------------------------------------------------------------------DELAY: MOV
R6,#50
10ms
D1:
MOV
R7,#99
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,DELAY
RET
; ---------------------------------------------------------------------------------------------------------------------------------------LED_BL: MOV R1,#4
LE1:
CPL WLED
MOV R5,#10
CALL DELAY
100ms
DJNZ R1,LE1
RET
; ---------------------------------------------------------------------------------------------------------------------------------------BZ:
MOV R6,#0
14

www.plcworld.cn

B1:

SETB SPK
DJNZ R6,B1
MOV R5,#5
CALL DELAY
50ms
CLR SPK
RET
; ---------------------------------------------------------------------------------------------------------------------------------------DEL:
0.1ms
MOV R5,#1
DELAY1:
MOV R6,#2
E1:
MOV R7,#22
E2:
DJNZ R7,E2
DJNZ R6,E1
DJNZ R5,DELAY1
RET
; ---------------------------------------------------------------------------------------------------------------------------------------IR_IN:
I1: JNB IRIN,I2
IR
JMP I1
I2: MOV R4,#20
IR
I20: CALL DEL
DJNZ R4,I20
JB IRIN,I1
IR
I21: JB IRIN,I3
IR
CALL DEL
JMP I21
I3: MOV R3,#0
8
0
LL: JNB IRIN,I4
IR
CALL DEL
JMP LL
I4: JB IRIN,I5
IR
CALL DEL
JMP I4
I5: MOV R2,#0
0.1ms
L1: CALL DEL
JB IRIN,N1
IR
MOV A,#8
8
CLR C
C
SUBB A,R2
MOV A,@R0
RRC A
C
A
MOV @R0, A
INC R3
R3+1 R3
CJNE R3,#8, LL
8
MOV R3,#0
R3
0
INC R0
1
R0+1 R0
CJNE R0,#34H, LL
4
JMP OK
N1: INC R2
R2+1 R2
CJNE R2,#30, L1
0.1ms
OK: RET
; ---------------------------------------------------------------------------------------------------------------------------------------OP:
MOV A,COM
CJNE A,#CODE_K5, A1
CALL LED_BL
CALL BZ
CALL GO_HOME
CALL LED_BL
CALL BZ
RET
A1:
15

www.plcworld.cn

MOV
CJNE
CALL
CALL
RET

A,COM
A,#CODE_K1, A2
BZ
GO_FOR

A2:
MOV A,COM
CJNE A,#CODE_K2, A3
CALL BZ
CALL GO_BACK
RET
A3:
;L
MOV A,COM
CJNE A,#CODE_K3, A4
CALL BZ
CALL GO_L
RET
A4:
;R
MOV A,COM
CJNE A,#CODE_K4, A5
CALL BZ
CALL GO_R
RET
A5:
MOV A,COM
CJNE A,#CODE_K6, A6
CALL LED_BL
CALL BZ
CALL QD
CALL LED_BL
CALL BZ
RET
A6:
RET
; ---------------------------------------------------------------------------------------------------------------------------------------HOME1:
SETB DJZ
SETB DJL
SETB DJR
MOV R4,#HOME
G1: CALL DEL
DJNZ R4,G1
CLR DJZ
CLR DJL
CLR DJR
MOV R4,#(200-HOME)
G2: CALL DEL
DJNZ R4,G2
RET
; ---------------------------------------------------------------------------------------------------------------------------------------GO_HOME:
MOV R3,#15
H1: CALL HOME1
DJNZ R3,H1
RET
; ---------------------------------------------------------------------------------------------------------------------------------------DJZ_FOR:
SETB DJZ
MOV R4,#FOR
FZ1: CALL DEL
DJNZ R4,FZ1
CLR DJZ
MOV R4,#(200-FOR)
FZ2: CALL DEL
DJNZ R4,FZ2
RET
16

www.plcworld.cn

; ---------------------------------------------------------------------------------------------------------------------------------------DJL_FOR:
SETB DJL
MOV R4,#FOR
FL1: CALL DEL
DJNZ R4,FL1
CLR DJL
MOV R4,#(200-FOR)
FL2: CALL DEL
DJNZ R4,FL2
RET
; ---------------------------------------------------------------------------------------------------------------------------------------DJR_FOR:
SETB DJR
MOV R4,#FOR
FR1: CALL DEL
DJNZ R4,FR1
CLR DJR
MOV R4,#(200-FOR)
FR2: CALL DEL
DJNZ R4,FR2
RET
; ---------------------------------------------------------------------------------------------------------------------------------------DJZ_BACK:
SETB DJZ
MOV R4,#BACK
DJZBA1: CALL DEL
DJNZ R4,DJZBA1
CLR DJZ
MOV R4,#(200-BACK)
DJZB2:
CALL DEL
DJNZ R4,DJZB2
RET
; ---------------------------------------------------------------------------------------------------------------------------------------DJL_BACK:
SETB DJL
MOV R4,#BACK
DJLBA1: CALL DEL
DJNZ R4,DJLBA1
CLR DJL
MOV R4,#(200-BACK)
DJLB2:
CALL DEL
DJNZ R4,DJLB2
RET
; ---------------------------------------------------------------------------------------------------------------------------------------DJR_BACK:
SETB DJR
MOV R4,#BACK
DJRBA1: CALL DEL
DJNZ R4,DJRBA1
CLR DJR
MOV R4,#(200-BACK)
DJRB2:
CALL DEL
DJNZ R4,DJRB2
RET
; ---------------------------------------------------------------------------------------------------------------------------------------GO_FOR: MOV R3,#5
F1:
CALL DJZ_FOR
DJNZ R3,F1
MOV R3,#10
F2:
CALL DJR_BACK
DJNZ R3,F2
MOV R3,#10
F3:
CALL DJL_BACK
DJNZ R3,F3
MOV R3,#5
F4:
CALL DJZ_BACK
DJNZ R3,F4
17

www.plcworld.cn

MOV R3,#10
CALL DJL_FOR
DJNZ R3,F5
MOV R3,#10
F6:
CALL DJR_FOR
DJNZ R3,F6
RET
; ---------------------------------------------------------------------------------------------------------------------------------------GO_BACK:
MOV R3,#10
BA1:
CALL DJL_BACK
DJNZ R3,BA1
MOV R3,#10
BA2:
CALL DJR_BACK
DJNZ R3,BA2
MOV R3,#5
BA4:
CALL DJZ_FOR
DJNZ R3,BA4
MOV R3,#10
BA5:
CALL DJR_FOR
DJNZ R3,BA5
MOV R3,#10
BA6:
CALL DJL_FOR
DJNZ R3,BA6
MOV R3,#5
BA7:
CALL DJZ_BACK
DJNZ R3,BA7
RET
; ---------------------------------------------------------------------------------------------------------------------------------------GO_L:
MOV R3,#10
GL1:
CALL DJL_BACK
DJNZ R3,GL1
MOV R3,#5
GL2:
CALL DJZ_FOR
DJNZ R3,GL2
MOV R3,#10
GL3:
CALL DJR_BACK
DJNZ R3,GL3
MOV R3,#10
GL7:
CALL DJL_FOR
DJNZ R3,GL7
MOV R3,#5
GL4:
CALL DJZ_BACK
DJNZ R3,GL4
MOV R3,#10
GL5:
CALL DJR_FOR
DJNZ R3,GL5
RET
; ---------------------------------------------------------------------------------------------------------------------------------------GO_R:
MOV R3,#10
GR1:
CALL DJR_BACK
DJNZ R3,GR1
MOV R3,#5
GR2:
CALL DJZ_FOR
DJNZ R3,GR2
MOV R3,#10
GR3:
CALL DJL_BACK
DJNZ R3,GR3
MOV R3,#10
GR4:
CALL DJR_FOR
DJNZ R3,GR4
MOV R3,#5
GR5:
CALL DJZ_BACK
DJNZ R3,GR5
F5:

18

www.plcworld.cn

MOV R3,#10
CALL DJL_FOR
DJNZ R3,GR6
RET
; ---------------------------------------------------------------------------------------------------------------------------------------QD: MOV R3,#5
Q1: CALL DJZ_BACK
DJNZ R3,Q1
MOV R3,#5
Q2: CALL DJR_FOR
DJNZ R3,Q2
MOV R3,#5
Q3: CALL DJL_FOR
DJNZ R3,Q3
RET
; ---------------------------------------------------------------------------------------------------------------------------------------END
GR6:

19

www.plcworld.cn

20

You might also like