16.317 Microprocessor Systems Design I Instructor: Dr. Michael Geiger Fall 2013 Lecture 27: PIC instruction set.

Slides:



Advertisements
Similar presentations
Instruction formats for the PIC series. ROM encoding Instructions are encoded in binary in ROM. The instructions are fixed format, each occupying 14 bits.
Advertisements

Microprocessor and Microcontroller Based Systems Instructor: Eng.Moayed N. EL Mobaied The Islamic University of Gaza Faculty of Engineering Electrical.
Prof. Jorge A. Ramón Introducción a Microcontroladores.
Microprocessor Systems Design I Instructor: Dr. Michael Geiger Fall 2013 Lecture 26: PIC microcontroller intro.
16.317: Microprocessor System Design I Instructor: Dr. Michael Geiger Spring 2012 Lecture 30: PIC data memory.
16.317: Microprocessor System Design I Instructor: Dr. Michael Geiger Spring 2012 Lecture 29: Microcontroller intro.
Microprocessor Systems Design I
PIC18F Programming Model and Its Instruction Set
Rodolfo Rodriguez Kevin Zhang MJ Gellada
Microprocessor and Microcontroller Based Systems Instructor: Eng.Moayed N. EL Mobaied The Islamic University of Gaza Faculty of Engineering Electrical.
Chapter 4 Starting to Program – an Introduction to Assembler The aims of this chapter are to introduce: the essentials of Assembler programming; the Microchip.
9/20/6Lecture 21 -PIC Architecture1 PIC Architecture Instruction Set.
9/20/6Lecture 21 -PIC Architecture1 PIC Architecture Programmers Model and Instruction Set.
Two’s Complement Number wheel for 4 bit numbers
Building Assembler Programs Chapter Five Dr. Gheith Abandah1.
Directives, Memory, and Stack. Directives Special commands to the assembler May or may not generate machine code Categories by their function Programming.
Microprocessor and Interfacing PIC Code Execution
Embedded System Spring, 2011 Lecture 10: Arithmetic, Logic Instruction and Programs Eng. Wazen M. Shbair.
PIC18F Programming Model and Instruction Set
Lecture – 4 PIC18 Family Instruction Set 1. Outline Literal instructions. Bit-oriented instructions. Byte-oriented instructions. Program control instructions.
Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair.
 Mini-Computer  Microprocessor  The Brains  Arithmetic Logic Unit (ALU)  Control Unit  Program/ Data Storage  Peripherals (Input/Output) Low-Cost.
EEE237 Introduction to Microprocessors Week x. SFRs.
Microcontroller (C) vs. Microprocessor (P)
Eng. Husam Alzaq The Islamic Uni. Of Gaza
Architecture and instruction set. Microcontroller Core Features:  Operating speed: DC - 20 MHz clock input DC ns instruction cycle Up to 8K x.
Department of Electronic & Electrical Engineering Template program. Input / Output (IO) ● Template program. ● Introduction to IO ● Setting up for IO ●
Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair.
PIC12F629/675. “Wide variety” 8-84 pin RISC core, 12/14/16bit program word USART/AUSART, I 2 C, ADC, ICSP, ICD OTP/UV EPROM/FLASH/ROM Families: PIC12,
Department of Electronic & Electrical Engineering Lecture 3. ● Template program. ● Introduction to IO ● PORTA PORTB TRISA TRISB ● Using a subroutine ●
1.  List all addressing modes of PIC18 uCs  Contrast and compare the addressing modes  Code PIC18 instructions to manipulate a lookup table.  Access.
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Micro-processor vs. Micro-controller
Microprocessor Systems Design I
C. K. PITHAWALA COLLEGE OF ENGINEERING AND TECHNOLOGY
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
PIC – ch. 2b Md. Atiqur Rahman Ahad.
PIC 16F877.
16.317: Microprocessor System Design I
Microprocessor Systems Design I
PIC18 CH. 4.
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
Chapter 4 Instruction Set.
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
INSTRUCTION SET.
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
Presentation transcript:

Microprocessor Systems Design I Instructor: Dr. Michael Geiger Fall 2013 Lecture 27: PIC instruction set

Lecture outline Announcements/reminders  HW 6 to be posted; due date TBD  Exam regrade requests due today Today’s lecture: PIC instructions 7/3/2015 Microprocessors I: Lecture 27 2

3 PIC16F684 Instructions 35 instructions Each instruction is 14 bits Byte-oriented OPCODE f, F(W)  Source f: name of a SFR or a RAM variable  Destination F(W): F if the destination is to be the same as the source register W if the destination is to be the working register Bit-oriented OPCODE f, b  Bit address b (0≤b≤7) Literal and control OPCODE k  Literal value k 7/3/2015

RAM variables Memory variable: symbolic name to refer to space in memory (GPRs)  Usable space on 16F684: 0x20–0x7F (Bank 0), 0xA0 – 0xBF (Bank 1)  Once declared, use symbolic name, not address Example PIC syntax (cblock/endc): cblock 0x20; cblock directive needs starting ; address var1; var1 = byte at 0x20 var2; var2 = byte at 0x21 var3; var3 = byte at 0x22 endc; End of variable block 7/3/2015 Microprocessors I: Lecture 27 4

57/3/2015

Microprocessors I: Lecture 27 6 Clear/Move Examples: clrf TEMP1;Clear variable TEMP1 movlw 5;load 5 into W movwf TEMP1;move W into TEMP1 movwf TEMP1, F ;Incorrect Syntax movf TEMP1, W;move TEMP1 into W ; movf TEMP1, TEMP2;Incorrect Syntax swapf TEMP1, F ;Swap 4-bit nibbles of TEMP1 swapf TEMP1, W ;Move TEMP1 to W, swap nibbles, leave TEMP1 unchanged clrw ; Clear W register clrf f ; Clear f register movlw k; move literal value k to W movwf f; move W to f movf f, F(W); move f to F or W swapf f, F(W); swap nibbles of f, putting result in F or W STATUS bits: clrw, clrf, movf: Z movlw, movwf, swapf: none 7/3/2015

Microprocessors I: Lecture 27 7 Single Bit Manipulation Examples: bcfPORTB, 0;Clear bit 0 off PORTB bsfSTATUS, C;Set the Carry bit bcfSTATUS, RP1; bsfSTATUS, RP0;Select Bank 1 bcf f,b Operation: Clear bit b of register f, where b=0 to 7 bsf f,b Operation: Set bit b of register f, where b=0 to 7 STATUS bits: none 7/3/2015

Example Show the values of all changed registers after the following sequence cblock0x30 x y endc clrw movwfx movlw0xFE movwfy swapfy, F bcfy, 3 bsfx, 3 movfy, W 7/3/2015 Microprocessors I: Lecture 27 8

Example solution clrw  W = 0x00 movwfx  x = W = 0x00 movlw0xFE  W = 0xFE movwfy  y = W = 0xFE swapfy, F  Swap nibbles of y  y = 0xEF bcfy, 3  Clear bit 3 of y =  y = = 0xE7 bsfx, 3  Set bit 3 of x  x = = 0x08 movfy, W  W = y = 0xE7 7/3/2015 Microprocessors I: Lecture 27 9

10 Increment/Decrement/ Complement Examples: incf TEMP1, F;Increment TEMP1 incf TEMP1, W;W <- TEMP1+1; TEMP1 unchanged decf TEMP1, F;Decrement TEMP1 comf TEMP1, F ;Change 0s and 1s to 1s and 0s incf f, F(W); increment f, putting result in F or W decf f, F(W);decrement f, putting result in F or W comf f, F(W);complement f, putting result in F or W STATUS bits: Z 7/3/2015

Microprocessors I: Lecture Addition/Subtraction Examples: addlw 5; W <= 5+W addwf TEMP1, F; TEMP1 <- TEMP1+W sublw 5; W <= 5-W (not W <= W-5 ) subwf TEMP1, F ; TEMP1 <= TEMP1 - W addlw k;add literal value k into W addwf f, F(W);add w and f, putting result in F or W sublw k;subtract W from literal value k, putting ;result in W subwf f, F(W);subtract W from f, putting result in F or W STATUS bits: C, DC, Z 7/3/2015

Example Show the values of all changed registers after the following sequence cblock0x20 varA varB varC endc clrfvarA clrfvarB clrfvarC incfvarA, W sublw0x0F addwfvarB, F decfvarB, F comfvarB, W subwfvarC, F 7/3/2015 Microprocessors I: Lecture 27 12

Example solution clrfvarA  varA = 0 clrfvarB  varB = 0 clrfvarC  varC = 0 incfvarA, W  W = varA + 1 = 1 sublw0x0F  W = 0x0F – W = 0x0F – 1 = 0x0E addwfvarB, F  varB = varB + W = 0x0E decfvarB, F  varB = varB – 1 = 0x0D comfvarB, W  W= ~varB = ~0x0D = 0xF2 subwfvarC, F  varC = varC – W = 0x0E 7/3/2015 Microprocessors I: Lecture 27 13

Final notes Next time:  Continue PIC instruction set Reminders:  HW 6 to be posted; due date TBD  Exam regrade requests due today 7/3/2015 Microprocessors I: Lecture 27 14