PIC16F87X 13.0 INSTRUCTION SET SUMMARY INSTRUCTIONS DESCRIPTIONS

Similar documents
PIC16F84A 7.0 INSTRUCTION SET SUMMARY INSTRUCTIONS DESCRIPTIONS

PIC16C63A/65B/73B/74B

Assembly Language Instructions

Chapter 4 Sections 1 4, 10 Dr. Iyad Jafar

Instuction set

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING. EE6008 Microcontroller based system design

Chapter 13. PIC Family Microcontroller

SOLUTIONS!! DO NOT DISTRIBUTE!!

CENG 336 INT. TO EMBEDDED SYSTEMS DEVELOPMENT. Spring 2006

Lecture (04) PIC16F84A (3)

UNIVERSITY OF ULSTER UNIVERSITY EXAMINATIONS : 2001/2002. Semester 2. Year 2 MICROCONTROLLER SYSTEMS. Module Code: EEE305J2. Time allowed: 3 Hours

TOPIC 3 INTRODUCTION TO PIC ASSEMBLY LANGUAGE. E4160 Microprocessor & Microcontroller System. Prepared by : Puziah Yahaya JKE, POLISAS / DEC 2010

UNIVERSITY OF ULSTER UNIVERSITY EXAMINATIONS : 2001/2002 RESIT. Year 2 MICROCONTROLLER SYSTEMS. Module Code: EEE305J1. Time allowed: 3 Hours

PIC 16F84A programming (II)

Lesson 14. Title of the Experiment: Introduction to Microcontroller (Activity number of the GCE Advanced Level practical Guide 27)

Section 31. Instruction Set

EEE111A/B Microprocessors

16.317: Microprocessor Systems Design I Fall 2013 Exam 3 Solution

16.317: Microprocessor-Based Systems I Spring 2012

Section 4. Architecture

PTK8756B 8 Bit Micro-controller Data Sheet

LAB WORK 2. 1) Debugger-Select Tool-MPLAB SIM View-Program Memory Trace the program by F7 button. Lab Work

ECE Test #1: Name

Fortune. Semiconductor Corporation 富晶半導體股份有限公司. 8-bit MCU with 1k program ROM, 64-byte RAM, 1 R2F module and 3 13 LCD driver. TD Rev. 1.

16.317: Microprocessor-Based Systems I Summer 2012

Week1. EEE305 Microcontroller Key Points

TM57PA20/ TM57PA40. 8 Bit Microcontroller. User Manual. Tenx reserves the right to change or discontinue this product without notice.

Arithmetic,logic Instruction and Programs

EECE.3170: Microprocessor Systems Design I Summer 2017 Homework 5 Solution

Embedded Systems. PIC16F84A Sample Programs. Eng. Anis Nazer First Semester

PIN DESCRIPTION Name I/O Description VDD P VSS P 5V Power from USB cable Ground RC6M O X1 I Test/OTP mode clock in Internal clock output (6MHz) VPP I

University of Jordan Faculty of Engineering and Technology Department of Computer Engineering Embedded Systems Laboratory

ABOV SEMICONDUCTOR 8-BIT SINGLE-CHIP MICROCONTROLLERS MC71PD506. USER S MANUAL (Ver. 1.0)

DERTS Design Requirements (1): Microcontroller Architecture & Programming

movwf prevcod ; a new button is pressed - rcnt=3 movwf (mtx_buffer+1) movlw 3 movwf rcnt

Chapter 3: Further Microcontrollers

16.317: Microprocessor-Based Systems I Fall 2012

PIC Discussion. By Eng. Tamar Jomaa

ALU and Arithmetic Operations

/ 28 HLL assembly Q4: Conditional instructions / 40 TOTAL SCORE / 100 EXTRA CREDIT / 10

Section 11. Timer0. Timer0 HIGHLIGHTS. This section of the manual contains the following major topics:

/ 40 Q3: Writing PIC / 40 assembly language TOTAL SCORE / 100 EXTRA CREDIT / 10

A Better Mouse Trap. Consumer Appliance, Widget, Gadget APPLICATION OPERATION: Ontario, Canada

D:\PICstuff\PartCounter\PartCounter.asm

Q1: Multiple choice / 20 Q2: Protected mode memory accesses. / 40 Q3: Reading PIC. / 40 assembly language TOTAL SCORE / 100

CONNECT TO THE PIC. A Simple Development Board

4.5.1) The Label Field ) The Mnemonic Field. 4.5) Assembly Language Program Structure A PIC18 ALP consists of 3 type of statements:

S w e d i s h c r. w e e b l y. c o m j a l i l a h m e l i v e. c o m Page 1

16.317: Microprocessor Systems Design I Spring 2015

SOLUTIONS!! DO NOT DISTRIBUTE PRIOR TO EXAM!!

Chapter 5 Sections 1 6 Dr. Iyad Jafar

16.317: Microprocessor Systems Design I Fall 2014

EE6008-Microcontroller Based System Design Department Of EEE/ DCE

Hardware Interfacing. EE25M Introduction to microprocessors. Part V. 15 Interfacing methods. original author: Feisal Mohammed

APPLICATION NOTE Wire Communication with a Microchip PICmicro Microcontroller

NH-67, TRICHY MAIN ROAD, PULIYUR, C.F , KARUR DT. DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING COURSE MATERIAL

Arithmetic and Logic Instructions. Hsiao-Lung Chan Dept Electrical Engineering Chang Gung University, Taiwan

PIC16C84. 8-bit CMOS EEPROM Microcontroller PIC16C84. Pin Diagram. High Performance RISC CPU Features: CMOS Technology: Peripheral Features:

Embedded System Design

PIC16F8X 18-pin Flash/EEPROM 8-Bit Microcontrollers

PIC16F8X. 8-Bit CMOS Flash/EEPROM Microcontrollers PIC16F8X PIC16CR8X. Pin Diagram. Devices Included in this Data Sheet:

16.317: Microprocessor Systems Design I Fall 2015

Dept. of Computer Engineering Final Exam, First Semester: 2016/2017

M PIC16F84A. 18-pinEnhanced FLASH/EEPROM 8-Bit Microcontroller. High Performance RISC CPU Features: Pin Diagrams. Peripheral Features:

Mod-5: PIC 18 Introduction 1. Module 5

RISC8 Core Page 1. RISC8 Core. Version 1.0. Written by Tom Coonan

Computer Engineering Capstone Design Summer A : Handheld Video Games

PART TWO LISTING 8 PROGRAM TK3TUT8 MOVF PORTA,W ANDLW B ADDWF COUNT,F MOVF COUNT,W MOVWF PORTB GOTO LOOP

ECE 354 Introduction to Lab 2. February 23 rd, 2003

Controller Provides Display of Monitored Process Deviation

Micro II and Embedded Systems

Lesson 4 Fun with W and F

MPASM and MPLINK PICmicro QUICK REFERENCE GUIDE

PROGRAMMING PIC MICROCONTROLLERS WITH MICRO C

An Introduction & Guide to JALV2

Power Aware Instruction Scheduling for Microcontrollers

Semester 1. Module Code: EEE305J1. Module Title: MICROCONTROLLER SYSTEMS

ECE 354 Computer Systems Lab II. Interrupts, Strings, and Busses

Hi Hsiao-Lung Chan Dept Electrical Engineering Chang Gung University, Taiwan

PIC10F200/202/204/206 Data Sheet

Introduction to PIC Programming

PIC10F200/202/204/206

AN587. Interfacing to an LCD Module. Interfacing to an LCD Module INTRODUCTION OPERATION CONTROL SIGNAL FUNCTIONS TABLE 2: CONDITIONAL ASSEMBLY FLAGS

Outlines. PIC Programming in C and Assembly. Krerk Piromsopa, Ph.D. Department of Computer Engineering Chulalongkorn University

PIC16C432 OTP 8-Bit CMOS MCU with LIN bus Transceiver

More (up a level)... Connecting the Nokia 3510i LCD to a Microchip PIC16F84 microcontroller

Introduction to PICL and PICLab

PIC Architecture & Assembly Language Programming. Hsiao-Lung Chan Dept Electrical Engineering Chang Gung University, Taiwan

UNIVERSITY OF ULSTER UNIVERSITY EXAMINATIONS 2008/9. Semester One

TMU3101. tenx technology, inc. GENERAL DESCRIPTION

which means that writing to a port implies that the port pins are first read, then this value is modified and then written to the port data latch.

Interfacing PIC Microcontrollers. ADC8BIT2 Schematic. This application demonstrates analogue input sampling

Performance & Applications

Application Note - PIC Source Code v1.1.doc

These 3 registers contain enable, priority,

Here is a sample of the Hellschrieber sent by this project: Following is the PIC MPASM Source Code for Version 0.03 of the Beacon:

/* PROGRAM FOR BLINKING LEDs CONEECTED TO PORT-D */

Discrete Logic Replacement Message Dispatch Engine

Section 13. Timer0 HIGHLIGHTS. Timer0. This section of the manual contains the following major topics:

PIC16F84A. 18-pin Enhanced Flash/EEPROM 8-Bit Microcontroller. Devices Included in this Data Sheet: Pin Diagrams. High Performance RISC CPU Features:

Transcription:

PIC6F87X 3.0 INSTRUCTION SET SUMMARY Each PIC6F87X instruction is a 4bit word, divided into an OPCODE which specifies the instruction type and one or more operands which further specify the operation of the instruction. The PIC6F87X instruction set summary in Table 3 lists byteoriented, bitoriented, and literal and control operations. Table 3 shows the opcode field descriptions. For byteoriented instructions, f represents a file register designator and d represents a destination designator. The file register designator specifies which file register is to be used by the instruction. The destination designator specifies where the result of the operation is to be placed. If d is zero, the result is placed in the W register. If d is one, the result is placed in the file register specified in the instruction. For bitoriented instructions, b represents a bit field designator which selects the number of the bit affected by the operation, while f represents the address of the file in which the bit is located. For literal and control operations, represents an eight or eleven bit constant or literal value. TABLE 3: Field f W b OPCODE FIELD DESCRIPTIONS Description Register file address (0x to 0x7F) Woring register (accumulator) Bit address within an 8bit file register Literal field, constant data or label x Don't care location (= 0 or ). The assembler will generate code with x = 0. It is the recommended form of use for compatibility with all Microchip software tools. d Destination select; d = 0: store result in W, d = : store result in file register f. Default is d =. PC TO PD Program Counter Timeout bit Powerdown bit The instruction set is highly orthogonal and is grouped into three basic categories: Byteoriented operations Bitoriented operations Literal and control operations All instructions are executed within one single instruction cycle, unless a conditional test is true or the program counter is changed as a result of an instruction. In this case, the execution taes two instruction cycles with the second cycle executed as a NOP. One instruction cycle consists of four oscillator periods. Thus, for an oscillator frequency of 4 MHz, the normal instruction execution time is µs. If a conditional test is true, or the program counter is changed as a result of an instruction, the instruction execution time is µs. Table 3 lists the instructions recognized by the MPASM TM assembler. Figure 3 shows the general formats that the instructions can have. Note: All examples use the following format to represent a hexadecimal number: 0xhh where h signifies a hexadecimal digit. FIGURE 3: To maintain upward compatibility with future PIC6F87X products, do not use the OPTION and TRIS instructions. GENERAL FORMAT FOR INSTRUCTIONS Byteoriented file register operations 3 8 7 6 0 OPCODE d f (FILE #) d = 0 for destination W d = for destination f f = 7bit file register address Bitoriented file register operations 3 0 9 7 6 0 OPCODE b (BIT #) f (FILE #) b = 3bit bit address f = 7bit file register address Literal and control operations General 3 8 7 0 OPCODE (literal) = 8bit immediate value CALL and GOTO instructions only 3 0 0 OPCODE (literal) = bit immediate value A description of each instruction is available in the PICmicro MidRange Reference Manual, (DS3303). Microchip Technology Inc. DS309Cpage 35

PIC6F87X TABLE 3: PIC6F87X INSTRUCTION SET Mnemonic, Operands Description Cycles MSb 4Bit Opcode LSb Status Affected Notes ADDWF ANDWF CLRF CLRW COMF DECF DECFS INCF INCFS IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF BCF BSF BTFSC BTFSS ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW f f f, b f, b f, b f, b Add W and f AND W with f Clear f Clear W Complement f Decrement f Decrement f, Sip if 0 Increment f Increment f, Sip if 0 Inclusive OR W with f Move f Move W to f No Operation Rotate Left f through Carry Rotate Right f through Carry Subtract W from f Swap nibbles in f Exclusive OR W with f Bit Clear f Bit Set f Bit Test f, Sip if Clear Bit Test f, Sip if Set Add literal and W AND literal with W Call subroutine Clear Watchdog Timer Go to address Inclusive OR literal with W Move literal to W Return from interrupt Return with literal in W Return from Subroutine Go into standby mode Subtract W from literal Exclusive OR literal with W BYTEORIENTED FILE REGISTER OPERATIONS () () BITORIENTED FILE REGISTER OPERATIONS () () 0 0 0 0 LITERAL AND CONTROL OPERATIONS 0 0 0 0 0 0 0 0 0 0 0 bb 0bb 0bb bb x 0 0 xx 0xx 0x lfff 0xxx lfff 0xx0 bfff bfff bfff bfff xxxx 0 0 C,DC, C C C,DC, C,DC, TO,PD TO,PD C,DC, Note : When an I/O register is modified as a function of itself ( e.g., MOVF PORTB, ), the value used will be that value present on the pins themselves. For example, if the data latch is for a pin configured as input and is driven low by an external device, the data will be written bac with a 0. : If this instruction is executed on the TMR0 register (and, where applicable, d = ), the prescaler will be cleared if assigned to the Timer0 module. 3: If Program Counter (PC) is modified, or a conditional test is true, the instruction requires two cycles. The second cycle is executed as a NOP.,,,,,,3,,,3,,,,,,,,, 3 3 Note: Additional information on the midrange instruction set is available in the PICmicro MidRange MCU Family Reference Manual (DS3303). DS309Cpage 36 Microchip Technology Inc.

PIC6F87X 3. Instruction Descriptions ADDLW Add Literal and W [label] ADDLW Operands: 0 55 Operation: (W) + (W) Status Affected: C, DC, Description: The contents of the W register are added to the eight bit literal and the result is placed in the W register. BCF Bit Clear f [label] BCF f,b Operands: 0 f 7 0 b 7 Operation: 0 (f<b>) Description: Bit 'b' in register 'f' is cleared. ADDWF Add W and f [label] ADDWF f,d Operands: 0 f 7 d [0,] Operation: (W) + (f) (destination) Status Affected: C, DC, Description: Add the contents of the W register with If d is 0, the result is stored in the W register. If d is, the result is stored bac in BSF Bit Set f [label] BSF f,b Operands: 0 f 7 0 b 7 Operation: (f<b>) Description: Bit 'b' in register 'f' is set. ANDLW AND Literal with W [label] ANDLW Operands: 0 55 Operation: (W).AND. () (W) Status Affected: Description: The contents of W register are AND ed with the eight bit literal ''. The result is placed in the W register. BTFSS Bit Test f, Sip if Set [label] BTFSS f,b Operands: 0 f 7 0 b < 7 Operation: sip if (f<b>) = Description: If bit 'b' in register 'f' is '0', the next instruction is executed. If bit 'b' is '', then the next instruction is discarded and a NOP is executed instead, maing this a TCY instruction. ANDWF AND W with f [label] ANDWF f,d Operands: 0 f 7 d [0,] Operation: (W).AND. (f) (destination) Status Affected: Description: AND the W register with register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is, the result is stored bac in register 'f'. BTFSC Bit Test, Sip if Clear [label] BTFSC f,b Operands: 0 f 7 0 b 7 Operation: sip if (f<b>) = 0 Description: If bit 'b' in register 'f' is '', the next instruction is executed. If bit 'b', in register 'f', is '0', the next instruction is discarded, and a NOP is executed instead, maing this a TCY instruction. Microchip Technology Inc. DS309Cpage 37

PIC6F87X CALL Call Subroutine [ label ] CALL Operands: 0 047 Operation: (PC)+ TOS, PC<0:0>, (PCLATH<4:3>) PC<:> Description: Call Subroutine. First, return address (PC+) is pushed onto the stac. The elevenbit immediate address is loaded into PC bits <0:0>. The upper bits of the PC are loaded from PCLATH. CALL is a twocycle instruction. CLRWDT Operands: Operation: Status Affected: Description: Clear Watchdog Timer [ label ] CLRWDT None h WDT 0 WDT prescaler, TO PD TO, PD CLRWDT instruction resets the Watchdog Timer. It also resets the prescaler of the WDT. Status bits TO and PD are set. CLRF Clear f [label] CLRF f Operands: 0 f 7 Operation: h (f) Status Affected: cleared and the bit is set. COMF Complement f [ label ] COMF f,d Operands: 0 f 7 d [0,] Operation: (f) (destination) Status Affected: complemented. If d is 0, the result is stored in W. If d is, the result is stored bac in CLRW Operands: Operation: Status Affected: Description: Clear W [ label ] CLRW None h (W) W register is cleared. ero bit () is set. DECF Decrement f [label] DECF f,d Operands: 0 f 7 d [0,] Operation: (f) (destination) Status Affected: Description: Decrement If d is 0, the result is stored in the W register. If d is, the result is stored bac in DS309Cpage 38 Microchip Technology Inc.

PIC6F87X DECFS Decrement f, Sip if 0 [ label ] DECFS f,d Operands: 0 f 7 d [0,] Operation: (f) (destination); sip if result = 0 decremented. If d is 0, the result is placed in the W register. If d is, the result is placed bac in If the result is, the next instruction is executed. If the result is 0, then a NOP is executed instead maing it a TCY instruction. INCFS Increment f, Sip if 0 [ label ] INCFS f,d Operands: 0 f 7 d [0,] Operation: (f) + (destination), sip if result = 0 incremented. If d is 0, the result is placed in the W register. If d is, the result is placed bac in If the result is, the next instruction is executed. If the result is 0, a NOP is executed instead, maing it a TCY instruction. GOTO Unconditional Branch [ label ] GOTO Operands: 0 047 Operation: PC<0:0> PCLATH<4:3> PC<:> Description: GOTO is an unconditional branch. The elevenbit immediate value is loaded into PC bits <0:0>. The upper bits of PC are loaded from PCLATH<4:3>. GOTO is a twocycle instruction. IORLW Inclusive OR Literal with W [ label ] IORLW Operands: 0 55 Operation: (W).OR. (W) Status Affected: Description: The contents of the W register are OR ed with the eight bit literal ''. The result is placed in the W register. INCF Increment f [ label ] INCF f,d Operands: 0 f 7 d [0,] Operation: (f) + (destination) Status Affected: incremented. If d is 0, the result is placed in the W register. If d is, the result is placed bac in IORWF Inclusive OR W with f [ label ] IORWF f,d Operands: 0 f 7 d [0,] Operation: (W).OR. (f) (destination) Status Affected: Description: Inclusive OR the W register with register 'f'. If 'd' is 0 the result is placed in the W register. If 'd' is the result is placed bac in register 'f'. Microchip Technology Inc. DS309Cpage 39

PIC6F87X MOVF Move f [ label ] MOVF f,d Operands: 0 f 7 d [0,] Operation: (f) (destination) Status Affected: Description: The contents of register f are moved to a destination dependant upon the status of d. If d = 0, destination is W register. If d =, the destination is file register f itself. d = is useful to test a file register, since status flag is affected. NOP No Operation [ label ] NOP Operands: None Operation: No operation Description: No operation. MOVLW Move Literal to W [ label ] MOVLW Operands: 0 55 Operation: (W) Description: The eight bit literal is loaded into W register. The don t cares will assemble as 0 s. RETFIE Return from Interrupt [ label ] RETFIE Operands: None Operation: TOS PC, GIE MOVWF Move W to f [ label ] MOVWF f Operands: 0 f 7 Operation: (W) (f) Description: Move data from W register to register 'f'. RETLW Return with Literal in W [ label ] RETLW Operands: 0 55 Operation: (W); TOS PC Description: The W register is loaded with the eight bit literal ''. The program counter is loaded from the top of the stac (the return address). This is a twocycle instruction. DS309Cpage 40 Microchip Technology Inc.

PIC6F87X RLF Rotate Left f through Carry [ label ] RLF f,d Operands: 0 f 7 d [0,] Operation: See description below Status Affected: C rotated one bit to the left through the Carry Flag. If d is 0, the result is placed in the W register. If d is, the result is stored bac in C Register f SLEEP Operands: Operation: Status Affected: Description: [ label ] SLEEP None h WDT, 0 WDT prescaler, TO, 0 PD TO, PD The powerdown status bit, PD is cleared. Timeout status bit, TO is set. Watchdog Timer and its prescaler are cleared. The processor is put into SLEEP mode with the oscillator stopped. RETURN Return from Subroutine [ label ] RETURN Operands: None Operation: TOS PC Description: Return from subroutine. The stac is POPed and the top of the stac (TOS) is loaded into the program counter. This is a twocycle instruction. SUBLW Subtract W from Literal [ label ] SUBLW Operands: 0 55 Operation: (W) (W) Status Affected: C, DC, Description: The W register is subtracted ( s complement method) from the eightbit literal ''. The result is placed in the W register. RRF Rotate Right f through Carry [ label ] RRF f,d Operands: 0 f 7 d [0,] Operation: See description below Status Affected: C rotated one bit to the right through the Carry Flag. If d is 0, the result is placed in the W register. If d is, the result is placed bac in C Register f SUBWF Subtract W from f [ label ] SUBWF f,d Operands: 0 f 7 d [0,] Operation: (f) (W) (destination) Status C, DC, Affected: Description: Subtract ( s complement method) W register from register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is, the result is stored bac in register 'f'. Microchip Technology Inc. DS309Cpage 4

PIC6F87X SWAPF Swap Nibbles in f [ label ] SWAPF f,d Operands: 0 f 7 d [0,] Operation: (f<3:0>) (destination<7:4>), (f<7:4>) (destination<3:0>) Description: The upper and lower nibbles of register f are exchanged. If d is 0, the result is placed in the W register. If d is, the result is placed in XORWF Exclusive OR W with f [label] XORWF f,d Operands: 0 f 7 d [0,] Operation: (W).XOR. (f) (destination) Status Affected: Description: Exclusive OR the contents of the W register with register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is, the result is stored bac in register 'f'. XORLW Exclusive OR Literal with W [label] XORLW Operands: 0 55 Operation: (W).XOR. (W) Status Affected: Description: The contents of the W register are XOR ed with the eightbit literal ''. The result is placed in the W register. DS309Cpage 4 Microchip Technology Inc.