EasyManuals Logo

Atmel 8051 User Manual

Atmel 8051
113 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #38 background imageLoading...
Page #38 background image
The 8051 Instruction Set
1-37 Atmel 8051 Microcontrollers Hardware Manual
4316B–8051–02/04
1.14.15 DJNZ<byte>,<rel-addr>
Function: Decrement and Jump if Not Zero
Description: DJNZ decrements the location indicated by 1, and branches to the address indicated by the second operand if
the resulting value is not zero. An original value of 00H underflows to 0FFH. No flags are affected. The branch
destination is computed by adding the signed relative-displacement value in the last instruction byte to the PC,
after incrementing the PC to the first byte of the following instruction.
The location decremented may be a register or directly addressed byte.
Note: When this instruction is used to modify an output port, the value used as the original port data will be read
from the output data latch, not the input pins.
Example: Internal RAM locations 40H, 50H, and 60H contain the values 01H, 70H, and 15H, respectively. The following
instruction sequence,
DJNZ 40H,LABEL_1
DJNZ 50H,LABEL_2
DJNZ 60H,LABEL_3
causes a jump to the instruction at label LABEL_2 with the values 00H, 6FH, and 15H in the three RAM
locations. The first jump was not taken because the result was zero.
This instruction provides a simple way to execute a program loop a given number of times or for adding a
moderate time delay (from 2 to 512 machine cycles) with a single instruction. The following instruction sequence,
MOV R2, # 8
TOGGLE: CPL P1.7
DJNZ R2,TOGGLE
toggles P1.7 eight times, causing four output pulses to appear at bit 7 of output Port 1. Each pulse lasts three
machine cycles; two for DJNZ and one to alter the pin.
DJNZ R
n
,rel
Bytes: 2
Cycles: 2
Encoding: 1 1 0 1 1 r r r rel. address
Operation: DJNZ
(PC) (PC) + 2
(R
n
) (R
n
) - 1
IF (R
n
) > 0 or (R
n
) < 0
THEN
(PC) (PC) + rel
DJNZ direct,rel
Bytes: 3
Cycles: 2
Encoding: 11010101 direct address rel. address
Operation: DJNZ
(PC) (PC) + 2
(direct) (direct) - 1
IF (direct) > 0 or (direct) < 0
THEN
(PC) (PC) + rel

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Atmel 8051 and is the answer not in the manual?

Atmel 8051 Specifications

General IconGeneral
BrandAtmel
Model8051
CategoryMicrocontrollers
LanguageEnglish

Related product manuals