You are on page 1of 2

ASM program that generate duty cycles of 30% ,60%, 80% PWM signal which has

50 Hz frequency
HH

PAGE 1
1
2
3

0094
0095
0089
008C
008D
008A
008C

7000

7000

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

P1_4 BIT 94H


P1_5 BIT 95H
TMOD DATA 89H
TR0 BIT 8CH
TF0 BIT 8DH
TL0 DATA 8AH
TH0 DATA 8CH

; Enable port 1.4 bit addressible


; Enable port 1.5 bit addressible
; Enable TMOD rgister data addressible
; Enable TR0 bit in TCON register bit addressible
; Enable TF0 bit in TCON register bit addressible
; Enable TL0 data addressible
; Enable TH0 data addressible

ORG 7000H

HERE:

;***** 30% duty cycle****


20
CLR P1_4
; Clear port 1.4
21
SETB P1_5
; Clear port 1.5
22
ACALL DELAY
23
ACALL DELAY
24
ACALL DELAY
25
700A D294
26
SETB P1_4
700C C295
27
CLR P1_5
700E 113A
28
ACALL DELAY
7010 113A
29
ACALL DELAY
7012 113A
30
ACALL DELAY
7014 113A
31
ACALL DELAY
7016 113A
32
ACALL DELAY
7018 113A
33
ACALL DELAY
701A 113A
34
ACALL DELAY
35
36 ;***** 60% duty cycles *********
37
701C C294
38
CLR P1_4
701E D295
39
SETB P1_5
7020 113A
40
ACALL DELAY
7000 C294
7002 D295
7004 113A
7006 113A
7008 113A

7022 113A
7024 113A
7026 113A
7028 113A
702A 113A
702C D294
702E C295
7030 113A
7032 113A
7034 113A
7036 113A
7038 80C6

41
42
43
44
45
46
47
48
49
50
51
52
53
54

ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
SETB P1_4
CLR P1_5
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY

SJMP HERE
55
56
57 ;************************** Timer delay ***********************
58

59
703A
703A 758901
703D 758CF8
7040 758A30
7043 D28C

60 DELAY:
61
MOV TMOD, #01H
;select Timer0 as 16 bit mode
62
MOV TH0, #0f8H
;load Timer value to get 2ms timer delay
63
MOV TL0, #30H
64
SETB TR0
;Start timer
65
66 BACK: JNB TF0,BACK
;Stay Back until timer over flow
67
CLR TR0
;Stop timer
68
CLR TF0
;Clear timer overflow flag bit
69
RET
;Return from Delay subroutine

7045 308DFD
7048 C28C
704A C28D
704C 22
70
71 END

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND

BACK . . . . . . . . . . . . . . C ADDR 7045H


DELAY. . . . . . . . . . . . . . C ADDR 703AH
HERE . . . . . . . . . . . . . . C ADDR 7000H
P1_4 . . . . . . . . . . . . . . B ADDR 0094H
P1_5 . . . . . . . . . . . . . . B ADDR 0095H
TF0. . . . . . . . . . . . . . . B ADDR 008DH
TH0. . . . . . . . . . . . . . . D ADDR 008CH
TL0. . . . . . . . . . . . . . . D ADDR 008AH
TMOD . . . . . . . . . . . . . . D ADDR 0089H
TR0. . . . . . . . . . . . . . . B ADDR 008CH

You might also like