	  ORG		00H
	JMP		START
	S1	EQU	30H
	S2	EQU	31H
	S3	EQU	32H
	S4	EQU	33H
	S5	EQU	34H
	S6 	EQU	35H
	S7	EQU	36H
	S8	EQU	37H
	ORG		000BH
TIMER0:
	PUSH	ACC
	CLR		TF0
	MOV		TH0,#0FFH
	MOV		TL0,#64H
	INC		R0
CYCLE:
	CJNE	R0,#200,SERVO1
	MOV		R0,#0
	MOV		P2,#11111111B	;設定8個PORT為HIGHT
	JMP		GOBACK
SERVO1:				;P2輸出腳位設定
	MOV		A,R0
	XRL		A,S1
	JNZ		SERVO2
	CLR		P2.0
SERVO2:
	MOV		A,R0
	XRL		A,S2
	JNZ		SERVO3
	CLR		P2.1
SERVO3:
	MOV		A,R0
	XRL		A,S3
	JNZ		SERVO4
	CLR		P2.2
SERVO4:
	MOV		A,R0
	XRL		A,S4
	JNZ		SERVO5
	CLR		P2.3
SERVO5:
	MOV		A,R0
	XRL		A,S5
	JNZ		SERVO6
	CLR		P2.4
SERVO6:
	MOV		A,R0
	XRL		A,S6
	JNZ		SERVO7
	CLR		P2.5
SERVO7:
	MOV		A,R0
	XRL		A,S7
	JNZ		SERVO8
	CLR		P2.6
SERVO8:
	MOV		A,R0
	XRL		A,S8
	JNZ		GOBACK
	CLR		P2.7
GOBACK:
	POP		ACC
	RETI
START:
	MOV		TMOD,#00000001B		;計數器以16位元模式
	MOV		TH0,#0ffh
	MOV		TL0,#64h
	SETB	EA
	SETB	ET0
	SETB	TR0
LOOP:	
	MOV		S1,#3	;角度控制
	MOV		S2,#22
	MOV		S3,#22
	MOV		S4,#22
	MOV		S5,#22
	MOV		S6,#22
	MOV		S7,#22
	MOV		S8,#10
	CALL	DELAY
	MOV		S1,#9
	MOV		S2,#9
	MOV		S3,#9
	MOV		S4,#9
	MOV		S5,#9
	MOV		S6,#9
	MOV		S7,#9
	MOV		S8,#9
	CALL	DELAY
	JMP		LOOP
DELAY:				;延遲副程式(每1秒變化寬度一次)
	MOV		R5,#10
DL1:
	MOV		R6,#250
DL2:
	MOV		R7,#200
DL3:
	DJNZ	R7,DL3
	DJNZ	R6,DL2
	DJNZ	R5,DL1
	RET
	END