You are on page 1of 32

1.

PROGRAM TO TEST I/O PORTS OF 8051 :

C:0x0000

7480

C:0x0002

90E803

C:0x0005

F0

MOV

A,#P0(0x80)
MOV

MOVX

DPTR,#0xE803

@DPTR,A

START:
C:0x0006

7400

C:0x0008

90E800

MOV

A,#0x00
MOV

DPTR,#0xE800

LOOP:
C:0x000B

F0

MOVX

C:0x000C

04

INC

@DPTR,A
A

C:0x000D B4FFFB
A,#0xFF,LOOP(C:000B)

CJNE

C:0x0010

LJMP

020006

START(C:0006)

2.PROGRAM TO INTERFACE STEPPER MOTOR TO


8051 :

C:0x0000

7480

C:0x0002

90E803

C:0x0005

F0

MOV

A,#0x80
MOV

MOVX

DPTR,#0xE803

@DPTR,A

LOOP:
C:0x0006

7488

C:0x0008

90E800

C:0x000B

F0

MOVX

@DPTR,A

C:0x000C

C0E0

PUSH

ACC(0xE0)

C:0x000E

120016

C:0x0011

D0E0

POP

C:0x0013

23

RL

C:0x0014

80F0

SJMP

MOV

A,#0x88
MOV

LCALL

DPTR,#0xE800

DELAY(C:0016)

ACC(0xE0)
A
LOOP(C:0006)

DELAY:
C:0x0016

780F

MOV

R0,#0x0F

MOV

R1,#0xFF

LOOP1:
C:0x0018

79FF
LOOP2:

C:0x001A

D9FE

DJNZ

R1,LOOP2(C:001A)

C:0x001C

D8FA

DJNZ

R0,LOOP1(C:0018)

3.Program to interface DAC to 8051 :


A.
Program to generate square
wave using DAC :
C:0x0000

90E803

MOV

DPTR,#0xE803

C:0x0003

7480

MOV

A,#0x80

C:0x0005

F0

MOVX

C:0x0006

90E800
START:

@DPTR,A
MOV

DPTR,#0xE800

C:0x0009

740F

MOV

C:0x000B

F0

MOVX

C:0x000C

7400

MOV

C:0x000E

F0

MOVX

C:0x000F

020009

A,#0x0F
@DPTR,A
A,#0x00
@DPTR,A
LJMP

START(C:0009)

OUTPUT:

B.
B.
PROGRAM TO
GENERATE TRIANGULAR WAVE USING 8051
C:0x0000

7480

C:0x0002

90E803

C:0x0005

F0

MOV

A,#P0(0x80)
MOV

MOVX

DPTR,#0xE803

@DPTR,A

START:
C:0x0006
4

7400

MOV

A,#0x00

C:0x0008

90E800

MOV

DPTR,#0xE800

LOOP:
C:0x000B

F0

MOVX

C:0x000C

04

INC

C:0x000D B4FFFB
A,#0xFF,LOOP(C:000B)

@DPTR,A
A
CJNE

LOOP1:
C:0x0010

14

DEC

C:0x0011

F0

MOVX

A
@DPTR,A

C:0x0012 B400FB
A,#0x00,LOOP1(C:0010)

CJNE

C:0x0015

LJMP

020006

START(C:0006)

C.PROGRAM TO GENERATE SAWTOOTH


WAVEFORM USING DAC

C:0x0000

7480

` MOV

C:0x0002

90E803

C:0x0005

F0

A,#P0(0x80)
MOV

MOVX

DPTR,#0xE803

@DPTR,A

START:
C:0x0006

7400

C:0x0008

90E800

MOV

A,#0x00
MOV

DPTR,#0xE800

LOOP:
C:0x000B

F0

MOVX

C:0x000C

04

INC

@DPTR,A
A

C:0x000D B4FFFB
A,#0xFF,LOOP(C:000B)

CJNE

C:0x0010

LJMP

OUTPUT:

020006

START(C:0006)

D.
PROGRAM TO GENERATE
EXPONENTIAL WAVE USING DAC
C:0x0000

7480

MOV

A,#P0(0x80)

C:0x0002

90E803

C:0x0005

F0

MOVX

C:0x0006

7400

MOV

A,#0x00

C:0x0008

D3

SETB

MOV

DPTR,#0xE803

@DPTR,A

LOOP:
C:0x0009

33

C:0x000A

90E800

C:0x000D

F0

RLC

A
MOV

MOVX

DPTR,#0xE800

@DPTR,A

C:0x000E B428F8
A,#0x28,LOOP(C:0009)

CJNE

LOOP1:
C:0x0011

13

RRC

C:0x0012

F0

MOVX

A
@DPTR,A

C:0x0013 B401F3
A,#0x01,LOOP(C:0009)

CJNE

C:0x0016

LJMP

OUTPUT:

020009

LOOP(C:0009)

E.PROGRAM TO GENERATE STAIRCASE


WAVEFORM USING DAC
C:0x0000

7480

C:0x0002

90E803

C:0x0005

F0

MOV

A,#P0(0x80)
MOV

MOVX

DPTR,#0xE803

@DPTR,A

START:
C:0x0006

7400

C:0x0008

90E800

MOV

A,#0x00
MOV

DPTR,#0xE800

LOOP:
C:0x000B

F0

MOVX

C:0x000C

120016

C:0x000F

242A

ADD

C:0x0011

50F8

JNC

C:0x0013

020006

@DPTR,A
LCALL

DELAY(C:0016)

A,#0x2A
LOOP(C:000B)
LJMP

START(C:0006)

DELAY:
C:0x0016

78FF
LOOP1:

MOV

R0,#0xFF

C:0x0018

D8FE

DJNZ

C:0x001A

22

RET

R0,LOOP1(C:0018)

OUTPUT :

1. PROGRAM TO GENERRATE SINUSOIDAL WAVE USING


DAC.
TO GENERATE SINUSOIDAL WAVEFORM WE USE LOOKUP
TABLE METHOD.
LET V = VPSIN + VO IF WE SELECT THE AVERRAGE
VALUE OF THE SINE WAVE (THAT IS = 0O) AT THE MIDDLE
OF THE AVAILABLE RANGE THE WAVEFORM CAN BE OF
MAXIMUM POSSIBLE AMPLITUDE. THE FULL SWING IS
LIMITED TO FFH IN AN 8-BIT SYSTEM. IF AVERAGE LEVEL
V0IS SELECTED TO BE 80H THE VP (PEAK EXCURSION) CAN
BE FFH 80H = 7FH. THUS THE WAVEFORM WILL TAKE FFH
AT ITS POSITIVE PEAK(AT 90O)AND 01H(80H 7FH) AT ITS
NEGATIVE PEAK(AT 270O). PUTTING THE VALUES IN ABOVE
EQUATION,
10

V = 7FH SIN + 80H


IF WE CALUCLATE SAMPLES WITH 5O INTERVALS V
WILL TAKE VALUES AS FOLLOWS :

C:0x0000
C:0x0002
C:0x0005
C:0x0006
C:0x0008
C:0x000A
C:0x000D
C:0x000E
C:0x000F
C:0x0010
C:0x0011
C:0x0013

(DEG)
5
10
15
20
25
30
35
40
45
50
11

V
8BH
96H
A1H
ABH
B6H
C0H
C9H
D2H
DAH
E1H

7480
MOV
90E803
MOV
F0
MOVX
START:
7840
MOV
7948
MOV
90E800
MOV
LOOP:
E2
MOVX
F0
MOVX
08
INC
19
DEC
D9FA
DJNZ
020006
LJMP

(DEG)
95
100
105
110
115
120
125
130
135
140

V
FFH
FDH
FAH
F7H
F3H
EEH
E8H
E1H
DAH
D2H

A,#P0(0x80)
DPTR,#0xE803
@DPTR,A
R0,#0x40
R1,#0x48
DPTR,#0xE800
A,@R0
@DPTR,A
R0
R1
R1,LOOP(C:000D)
START(C:0006)

(DEG)
185
190
195
200
205
210
215
220
225
230

V
75H
6AH
5FH
55H
1AH
41H
37H
2EH
26H
1FH

(DEG)
275
280
285
290
295
300
305
310
315
320

V
01H
03H
05H
09H
0DH
12H
18H
1FH
26H
2EH

55
60
65
70
75
80
85
90

E8H
EEH
F3H
F7H
FAH
FDH
FFH
FFH

145
150
155
160
165
170
175
180

C9H
C0H
B6H
ABH
A1H
96H
8BH
80H

235
240
245
250
255
260
265
270

18H
12H
0DH
09H
05H
03H
01H
01H

325
330
335
340
345
350
355
360

THE SAMPLED VALUES ARE KEPT IN THE MEMORY


STARTING AND CALLED ONE BY ONE TO OBTAIN A
SINUSOIDAL WAVEFORM THE FREQUENCY OF SINUSOIDAL
WAVEFORM DEPENDS ON THE DELAY CALUCLATION.

2.PROGRAM TO INTERFACE ADC TO 8051

C:0x0000

7482

C:0x0002

90E803

C:0x0005

F0

MOVX

C:0x0006

7402

MOV

C:0x0008

90E800

12

MOV

A,#0x82
MOV

DPTR,#0xE803

@DPTR,A
A,#0x02
MOV

DPTR,#0xE800

37H
41H
4AH
55H
5FH
6AH
75H
80H

C:0x000B

F0

MOVX

C:0x000C

00

NOP

C:0x000D

00

NOP

C:0x000E

00

NOP

C:0x000F

00

NOP

C:0x0010

7401

MOV

C:0x0012

F0

MOVX

C:0x0013

7805

MOV

C:0x0015

00

NOP

C:0x0016

00

NOP

C:0x0017

00

NOP

C:0x0018

00

NOP

C:0x0019

79FF

MOV

@DPTR,A

A,#0x01
@DPTR,A
R0,#0x05

R1,#0xFF

LOOP1:
C:0x001B

18

DEC

R0

DEC

R1

LOOP:
C:0x001C

19

C:0x001D B900FC
R1,#0x00,LOOP(C:001C)

CJNE

C:0x0020 B800F8
R0,#0x00,LOOP1(C:001B)

CJNE

C:0x0023
13

7404

MOV

A,#0x04

C:0x0025

F0

MOVX

C:0x0026

7800

MOV

@DPTR,A
R0,#0x00

LOOP2:
C:0x0028

08

C:0x0029

90E801

C:0x002C

E0

MOVX

C:0x002D

5401

ANL

C:0x002F

70F7

JNZ

C:0x0031

E8

MOV

C:0x0032

908501

C:0x0035

F0

MOVX

C:0x0036

7402

MOV

C:0x0038

90E800

C:0x003B

F0

MOVX

C:0x003C

7800

MOV

C:0x003E

020000

14

INC

R0
MOV

DPTR,#0xE801

A,@DPTR
A,#0x01
LOOP2(C:0028)
A,R0
MOV

DPTR,#0x8501

@DPTR,A
A,#0x02
MOV

DPTR,#0xE800

@DPTR,A
R0,#0x00
LJMP

C:0000

3.Program to interface LCD to 8051


Pins to LCD to 8051
Vcc, Vss and Vee : - Vcc is connected to +5v supply
Vss is connected to ground
reference
Vee is used for contrast
RS : Register Select :1.If RS = 0, the instruction command code
register is selected allowing the user to send a
command such as clear display, cursor at home
etc.,
2.If RS = 1,the data register is selected, allowing
the user to send data to be displayed on the
LCD.
R/W : Read/Write : R/W input allows the user to write
information to the LCD or read information from
it.
15

R/W = 1 when reading, R/W = 0 when writing.


E,Enable : The enable pin is used by the LCD to latch
information presented to its data pins.
When data is supplied to data pins, a high-tolow pulse must be applied to this pin in order for
LCD to latch in the data present at the data pins.
This pulse must be a minimum of 450ns wide.

D0-D7 : The 8-bit data pins, D0-D7, are used to


send information to the LCD or read the contents
of the LCDs internal registers.
To display letters and numbers we send
ascii codes to these pins while making RS = 1.
We also use RS=0 to check the busy flag bit
to see if the LCD is ready to receive information.
The busy flag bit D7 and can be read when
R/W = , RS=0, as follows : if R/W=1,RS=0. When
D7 =1(busy flag = 1), the LCD is busy taking care
of internal operations and will not accept any
new information.
When D7 = 0, the LCD is ready to receive
new information.
NOTE : It is recommended to check busy flag
before writing any data to LCD.
16

Here in our Kit Data pins D0-D7 of LCD are


connected to PA 0f 8255.
& RS PB0

17

R/W PB1

E PB2

C:0x0000

7480

MOV

C:0x0002

90E803

C:0x0005

F0

C:0x0006

7438

MOV

A,#0x38

C:0x0008

12003B

LCALL

COMNWRT(C:003B)

C:0x000B

120032

LCALL

DELAY(C:0032)

C:0x000E

740E

MOV

A,#0x0E

C:0x0010

12003B

LCALL

COMNWRT(C:003B)

C:0x0013

120032

LCALL

DELAY(C:0032)

C:0x0016

7401

MOV

A,#0x01

C:0x0018

12003B

LCALL

COMNWRT(C:003B)

C:0x001B

120032

LCALL

DELAY(C:0032)

C:0x001E

7406

MOV

A,#0x06

MOV

A,#P0(0x80)
DPTR,#0xE803

MOVX

@DPTR,A

C:0x0020

12003B

LCALL

COMNWRT(C:003B)

C:0x0023

120032

LCALL

DELAY(C:0032)

C:0x0026

7484

MOV

A,#0x84

C:0x0028

12003B

LCALL

COMNWRT(C:003B)

C:0x002B

120032

LCALL

DELAY(C:0032)

C:0x002E

1169

ACALL

DISPDATA(C:0069)

AGAIN:
C:0x0030

80FE

SJMP

AGAIN(C:0030)

MOV

R3,#0x05

MOV

R4,#0xFF

DELAY:
C:0x0032

7B05
HERE2:

C:0x0034

7CFF
HERE1:

C:0x0036

DCFE

DJNZ

R4,HERE1(C:0036)

C:0x0038

DBFA

DJNZ

R3,HERE2(C:0034)

C:0x003A

22

RET

COMNWRT:

18

C:0x003B

90E800

MOV

DPTR,#0xE800

C:0x003E

F0

C:0x003F

90E801

MOV

DPTR,#0xE801

C:0x0042

740B

MOV

A,#0x0B

C:0x0044

F0

MOVX

MOVX

@DPTR,A

@DPTR,A

C:0x0045

7408

MOV

A,#0x08

C:0x0047

F0

C:0x0048

740C

MOV

C:0x004A

F0

MOVX

@DPTR,A

C:0x004B

120032

LCALL

DELAY(C:0032)

C:0x004E

7408

MOV

A,#0x08

C:0x0050

F0

MOVX

C:0x0051

22

RET

MOVX

@DPTR,A

A,#0x0C

@DPTR,A

DATAWRT:

19

C:0x0052

90E800

MOV

DPTR,#0xE800

C:0x0055

F0

C:0x0056

90E801

MOV

DPTR,#0xE801

C:0x0059

740A

MOV

A,#0x0A

C:0x005B

F0

C:0x005C

7409

C:0x005E

F0

C:0x005F

740D

C:0x0061

F0

C:0x0062

7409

C:0x0064

F0

C:0x0065

120032

C:0x0068

22

MOVX

MOVX
MOV

RET

@DPTR,A

A,#0x09

MOVX
LCALL

@DPTR,A

A,#0x0D

MOVX
MOV

@DPTR,A

A,#0x09

MOVX
MOV

@DPTR,A

@DPTR,A

DELAY(C:0032)

DISPDATA:

20

C:0x0069

7441

MOV

A,#0x41

C:0x006B

120052

LCALL

DATAWRT(C:0052)

C:0x006E

120032

LCALL

DELAY(C:0032)

C:0x0071

7452

MOV

A,#0x52

C:0x0073

120052

LCALL

DATAWRT(C:0052)

C:0x0076

120032

LCALL

DELAY(C:0032)

C:0x0079

7443

MOV

A,#0x43

C:0x007B

120052

LCALL

DATAWRT(C:0052)

C:0x007E

120032

LCALL

DELAY(C:0032)

C:0x0081

7448

MOV

A,#0x48

C:0x0083

120052

LCALL

DATAWRT(C:0052)

C:0x0086

120032

LCALL

DELAY(C:0032)

C:0x0089

7441

MOV

A,#0x41

C:0x008B

120052

LCALL

DATAWRT(C:0052)

C:0x008E

120032

LCALL

DELAY(C:0032)

C:0x0091

744E

MOV

A,#0x4E

C:0x0093

120052

LCALL

DATAWRT(C:0052)

C:0x0096

120032

LCALL

DELAY(C:0032)

C:0x0099

22

RET

To get a scrolling LCD display just add the


following lines after (C:0x002E 1169 ACALL
DISPDATA(C:0069)) this line :
LOOP

MOV A,#1CH
ACALL COMNWRT
ACALL DELAY
SJMP LOOP

21

22

1. Traffic Light Control using 8051 :


Steps to interface traffic light control to 8051
1.Connect all the red lights to port A of 8255.
2.Connect all the orange lights to port B of 8255
3.Connect all the green lights to port C of 8255

PC0

PB0

PA0

PC2

23

PC1

PB2

PB1

PA1

PA3

PB3

PC3

PA2

The traffic lights are connected as above.

The program can be written in two ways


1.By using direct instructions
C:0x0000

7480

MOV

A,#0x80

C:0x0002

90E803

MOV

DPTR,#0xE803

C:0x0005

F0

MOVX

@DPTR,A

LOOP:
C:0x0006

740E

C:0x0008 120084
PORTA(C:0084)

MOV

A,#0x0E

LCALL

C:0x000B

7401

MOV

A,#0x01

C:0x000D

120089

LCALL

PORTB(C:0089)

C:0x0010 120093
DELAY1(C:0093)

LCALL

C:0x0013

7400

MOV

C:0x0015

120089

24

LCALL

A,#0x00
PORTB(C:0089)

C:0x0018

7401

MOV

A,#0x01

C:0x001A

12008E

LCALL

PORTC(C:008E)

C:0x001D

1200AA

LCALL

DELAY(C:00AA)

C:0x0020

7400

MOV

A,#0x00

C:0x0022

12008E

LCALL

PORTC(C:008E)

C:0x0025

740D

MOV

A,#0x0D

C:0x0027

120084

LCALL

PORTA(C:0084)

C:0x002A

7402

MOV

A,#0x02

C:0x002C

120089

LCALL

PORTB(C:0089)

C:0x002F 120093
DELAY1(C:0093)

LCALL

C:0x0032

7400

MOV

A,#0x00

C:0x0034

120089

LCALL

PORTB(C:0089)

C:0x0037

7402

MOV

A,#0x02

C:0x0039

12008E

LCALL

PORTC(C:008E)

C:0x003C

1200AA

LCALL

DELAY(C:00AA)

C:0x003F

7400

MOV

A,#0x00

C:0x0041

12008E

LCALL

PORTC(C:008E)

C:0x0044

740B

MOV

A,#0x0B

C:0x0046

120084

LCALL

PORTA(C:0084)

C:0x0049

7404

MOV

A,#0x04

C:0x004B

120089

LCALL

PORTB(C:0089)

25

C:0x004E 120093
DELAY1(C:0093)

LCALL

C:0x0051

7400

MOV

A,#0x00

C:0x0053

120089

LCALL

PORTB(C:0089)

C:0x0056

7404

MOV

A,#0x04

C:0x0058

12008E

LCALL

PORTC(C:008E)

C:0x005B

1200AA

LCALL

DELAY(C:00AA)

C:0x005E

7400

MOV

A,#0x00

C:0x0060

12008E

LCALL

PORTC(C:008E)

C:0x0063

7407

MOV

A,#0x07

C:0x0065

120084

LCALL

PORTA(C:0084)

C:0x0068

7408

MOV

A,#0x08

C:0x006A

120089

LCALL

PORTB(C:0089)

C:0x006D 120093
DELAY1(C:0093)

LCALL

C:0x0070

7400

MOV

A,#0x00

C:0x0072

120089

LCALL

PORTB(C:0089)

C:0x0075

7408

MOV

A,#0x08

C:0x0077

12008E

LCALL

PORTC(C:008E)

C:0x007A

1200AA

LCALL

DELAY(C:00AA)

C:0x007D

7400

MOV

A,#0x00

C:0x007F

12008E

LCALL

PORTC(C:008E)

26

C:0x0082

8082

SJMP

LOOP(C:0006)

DPTR,#0xE800

PORTA:
C:0x0084

90E800

MOV

C:0x0087

F0

MOVX

C:0x0088

22

RET

@DPTR,A

PORTB:
C:0x0089

90E801

MOV

C:0x008C

F0

MOVX

C:0x008D

22

RET

DPTR,#0xE801
@DPTR,A

PORTC:
C:0x008E

90E802

MOV

C:0x0091

F0

MOVX

C:0x0092

22

RET

DPTR,#0xE802
@DPTR,A

DELAY1:
C:0x0093 758910
TMOD(0x89),#0x10

MOV

C:0x0096

MOV

7B47

R3,#0x47

AGAIN:
C:0x0098 758B08
TL1(0x8B),#0x08

MOV

C:0x009B 758D01
TH1(0x8D),#0x01

MOV

C:0x009E

SETB

27

D28E

TR1(0x88.6)

BACK:
C:0x00A0 308FFD
TF1(0x88.7),BACK(C:00A0)

JNB

C:0x00A3

C28E

CLR

TR1(0x88.6)

C:0x00A5

C28F

CLR

TF1(0x88.7)

C:0x00A7 DBEF
R3,AGAIN(C:0098)

DJNZ

C:0x00A9

RET

22

DELAY:
C:0x00AA 758910
TMOD(0x89),#0x10

MOV

C:0x00AD

MOV

7BD4

R3,#0xD4

AGAIN1:
C:0x00AF 758B08
TL1(0x8B),#0x08

MOV

C:0x00B2 758D01
TH1(0x8D),#0x01

MOV

C:0x00B5

SETB

D28E

TR1(0x88.6)

BACK1:
C:0x00B7 308FFD
TF1(0x88.7),BACK1(C:00B7)
C:0x00BA
28

C28E

CLR

JNB
TR1(0x88.6)

C:0x00BC

C28F

CLR

C:0x00BE DBEF
R3,AGAIN1(C:00AF)

DJNZ

C:0x00C0

RET

22

TF1(0x88.7)

2.By using Rotate operations


C:0x0000

7480

MOV

A,#0x80

C:0x0002

90E803

MOV

DPTR,#0xE803

C:0x0005

F0

MOVX

C:0x0006

78EE

MOV

R0,#0xEE

C:0x0008

7911

MOV

R1,#0x11

C:0x000A

7A11

MOV

R2,#0x11

@DPTR,A

AGAIN1:
C:0x000C

90E800

MOV

DPTR,#0xE800

C:0x000F

120020

LCALL

LOOP(C:0020)

C:0x0012

90E801

MOV

DPTR,#0xE801

C:0x0015

120025

LCALL

LOOP1(C:0025)

C:0x0018

90E802

MOV

DPTR,#0xE802

C:0x001B

120030

LCALL

LOOP2(C:0030)

C:0x001E 80EC
AGAIN1(C:000C)
LOOP:
29

SJMP

C:0x0020

E8

MOV

C:0x0021

F0

MOVX

C:0x0022

23

RL

C:0x0023

F8

MOV

C:0x0024

22

RET

A,R0
@DPTR,A
A
R0,A

LOOP1:
C:0x0025

E9

MOV

C:0x0026

F0

MOVX

C:0x0027

23

RL

C:0x0028

F9

MOV

C:0x0029 12003B
DELAY1(C:003B)

LCALL

C:0x002C

7400

MOV

C:0x002E

F0

MOVX

C:0x002F

22

RET

A,R1
@DPTR,A
A
R1,A

A,#0x00
@DPTR,A

LOOP2:
C:0x0030

EA

MOV

C:0x0031

F0

MOVX

C:0x0032

23

RL

C:0x0033

FA

MOV

R2,A

C:0x0034

120052

LCALL

DELAY(C:0052)

C:0x0037

7400

MOV

A,#0x00

30

A,R2
@DPTR,A
A

C:0x0039

F0

MOVX

C:0x003A

22

RET

@DPTR,A

DELAY1:
C:0x003B 758910
TMOD(0x89),#0x10

MOV

C:0x003E

MOV

7B47

R3,#0x47

AGAIN:
C:0x0040 758B08
TL1(0x8B),#0x08

MOV

C:0x0043 758D01
TH1(0x8D),#0x01

MOV

C:0x0046

SETB

D28E

TR1(0x88.6)

BACK:
C:0x0048 308FFD
TF1(0x88.7),BACK(C:0048)

JNB

C:0x004B

C28E

CLR

TR1(0x88.6)

C:0x004D

C28F

CLR

TF1(0x88.7)

C:0x004F DBEF
R3,AGAIN(C:0040)

DJNZ

C:0x0051

RET

22
DELAY:

C:0x0052 758910
TMOD(0x89),#0x10

MOV

C:0x0055

MOV

31

7BD4

R3,#0xD4

AGAIN2:
C:0x0057 758B08
TL1(0x8B),#0x08

MOV

C:0x005A 758D01
TH1(0x8D),#0x01

MOV

C:0x005D

SETB

D28E

TR1(0x88.6)

BACK1:
C:0x005F 308FFD
TF1(0x88.7),BACK1(C:005F)

JNB

C:0x0062

C28E

CLR

TR1(0x88.6)

C:0x0064

C28F

CLR

TF1(0x88.7)

C:0x0066 DBEF
R3,AGAIN2(C:0057)

DJNZ

C:0x0068

RET

32

22

You might also like