You are on page 1of 2

;---------------------- Memory Allocate ------------------------------------;*****************************************************************

;*
*
;* unlimited PWM Subroutines for the 8051 microcontroller
*
;*
m suzatob aang c, 2005
*
;*
4th floor b402-Electronic Engineering - ITS
*
;*
surabaya indonesia
*
;* to add more pwm signal. just add memory value and port map *
;*****************************************************************
;---------------------- memory map ----------------------------------------PWM_swap
equ
7fh
PWM_skn
equ
7eh
;speed value of right motor
PWM_skr
equ
7dh
;speed value of left motor
;---------------------- port map ------------------------------------------pwmkr
bit
p0.0
pwmkn
bit
p0.1
;---------------------- Zero Page ----------------------------------------

;
;
;
;
;
;
;
;

org
ljmp
org
reti
org
ljmp
org
reti
org
reti
org
reti

0H
Begin
03H

; Reset

0BH
PWM_msac
13H

; Timer 0

1BH

; Timer 1

23H

; Port I/O Serial

; INT 0

; INT 1

;---------------------- Begin -----------------------------------------------

begin:

org
mov

100H
TMOD,#22h

mov
setb
setb
mov

IE,#10010010b
TR0
TR1
P0,#0h

clr
clr

pwmkr
pwmkr

mov

PWM_skr,#0ddh

;speed value of left mot

mov

PWM_skn,#0ffh

;speed value of right mo

sjmp

start

;mengaktifkan interupt

start:
or
tor

;---------------------- PWM Service -------------------------------PWM_msac:

mov
mov
djnz
setb

PWM_swap,A
TH0,#0dch
R7,Check
pwmkn

;cc 60hz, dc 100hz xtall 11.059

Check:
Check1:
PWM_Ret:

setb
reti
xch
cjne
clr
cjne
clr
xch
mov
reti
end

pwmkr
A,R7
A,PWM_skn,Check1
pwmkn
A,PWM_skr,PWM_Ret
pwmkr
A,R7
A,PWM_swap

You might also like