use 89s52, connect servo at p1.0. tested with hitech servo motors
$NOMOD51
$INCLUDE (89S52.MCU)
;(c) elabz.in
; free8051projects.blogspot.com
LED EQU P2.0
SERVO1 EQU P1.0
;SERVO2 EQU P2.2
ORG 0H
JMP MAIN
ORG 0BH
JMP TIMERZERO
ORG 30H
MAIN:
CALL INIT
AGAIN:
CLR LED
CALL ZEROD
CALL DELAY
SETB LED
CALL NINED
; CALL DELAY
; CALL ONE8D
CALL DELAY
JMP AGAIN
ZEROD:
MOV R0,#15
AG1: MOV TH1,#0F8H;THVALUE ;0F8H
MOV TL1,#0CDH;TLVALUE ;0CDH
SETB TR1
SETB SERVO1
; CLR LED
;CLR SERVO2
JNB TF1,$
CLR TR1
CLR TF1;
MOV TH1,#0C7H
MOV TL1,#0FFH
SETB TR1
CLR SERVO1
; SETB LED
;SETB SERVO2
JNB TF1,$
CLR TR1
CLR TF1
DJNZ R0,AG1
;CLR SERVO2
RET
NINED:
MOV R0,#15
AN1: MOV TH1,#0FAH;THVALUE ;0FBH
MOV TL1,#09AH;TLVALUE ;09AH
SETB TR1
SETB SERVO1
; SETB UDSERVO
JNB TF1,$
CLR TR1
CLR TF1
MOV TH1,#0B7H
MOV TL1,#0FFH
SETB TR1
CLR SERVO1
; CLR UDSERVO
JNB TF1,$
CLR TR1
CLR TF1
DJNZ R0,AN1
RET
ONE8D:
MOV R1,#30
AG2:
MOV TH1,#0FEH ;0FCH
MOV TL1,#047H ;067H
SETB TR1
SETB SERVO1
; CLR LED
;CLR SERVO2
JNB TF1,$
CLR TR1
CLR TF1
MOV TH1,#0C7H
MOV TL1,#0FFH
SETB TR1
CLR SERVO1
; SETB LED
;SETB SERVO2
JNB TF1,$
CLR TR1
CLR TF1
DJNZ R1,AG2
;CLR SERVO2
RET
INIT:
SETB LED
SETB ET0
; SETB EA
CLR TF1
MOV TH0,#0B7H
MOV TL0,#0FEH
MOV TMOD,#11H
; SETB TR0
RET
DELAY:
MOV R7,#2D
L2: MOV R6,#100D
L1:
CALL DEL
DJNZ R6,L1
DJNZ R7,L2
RET
DEL:
CLR CPRL2
CLR CT2
MOV TL2,#7CH
MOV TH2,#0FCH
SETB TR2
JNB TF2,$
CLR TR2
CLR TF2
RET;
TIMERZERO:
CLR TR0
CLR TF0
MOV TH0,#0B7H
MOV TL0,#0FEH
;CALL DELAY
;CPL LED1
SETB TR0
RETI
END