0% found this document useful (0 votes)
2 views

2013 Lecture Ch3

Chapter 3 discusses various branching and looping instructions in PIC microcontrollers, including DECFSZ, BNZ, and GOTO. It explains the differences between short and long jumps, as well as the CALL and RCALL instructions and their stack implications. Additionally, the chapter addresses delay calculations influenced by crystal frequency and PIC design, emphasizing the importance of instruction cycles and pipeline activity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

2013 Lecture Ch3

Chapter 3 discusses various branching and looping instructions in PIC microcontrollers, including DECFSZ, BNZ, and GOTO. It explains the differences between short and long jumps, as well as the CALL and RCALL instructions and their stack implications. Additionally, the chapter addresses delay calculations influenced by crystal frequency and PIC design, emphasizing the importance of instruction cycles and pipeline activity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Chapter 3

Branch, Call,
and Time Delay
Loop
DECFSZ fileReg, d

• Decrement fileReg and skip next instruction if 0.


• Loop  repeating a sequence of instructions or an
operation a certain number of times.

0-2
Figure 3-1. Flowchart for the
DECFSZ Instruction
BNZ  Branch if not zero

0-5
Maximum Number of Times for
loop
Loop Inside a Loop  Nested Loop
Other Conditional Jumps
BZ  Branch if Z = 1
BNC  Branch If No Carry (CY = 0)
Short Jumps

• All conditional jumps are short jumps.


• Meaning that the address of the target must be within
256 bytes of the contents of the PC.
• 2-byte instructions.
• Target address = (2nd byte of instructions2)+PC
• The 2nd byte can be a value from -127 to +128

0-14
Unconditional Branch Instruction 
GOTO

• Long jump  can go any memory locations in the 2M


address space of the PIC18.
• A 4-byte instruction.

0-18
Unconditional Branch Instruction 
BRA (Branch)

• A 2-byte instruction.
• The first 5 bits are the opcode.
• The rest lower 11 bits are the relative address of the
target address

0-19
• GOTO to itself using $ sign.
• HERE GOTO HERE
GOTO $
• OVER BRA OVER
BRA $

0-20
CALL Instructions and Stack

• A 4-byte instruction.
• Long call.

0-21
Simplified view of a PIC
microcontroller

22
Figure 3-7. PIC Stack 31 × 21

• A 5-bit stack pointer (SP) with initial value 0.


• Last-In-First-Out (LIFO)
RCALL (Relative Call)

• A 2-byte instruction.
• Only 11 bits of the 2 bytes are used for the address.
• The target address of RCALL must be within a 2K
range.

0-26
Delay Calculation

• Two factors that affect the accuracy of the delay:


– The crystal frequency
– The PIC design
• An instruction in one cycle
– Use Harvard architecture
– Use RISK features
– Use piplining

0-28
Figure 3-9. Pipeline vs. Non-
pipeline
• Instruction cycles (machine cycles)  In PIC18, one
instruction cycle consists of four oscillator periods.
• Brach penalty  CPU flushes out the instruction queue.

0-30
Pipeline Activity

You might also like