Embedded System Spring, 2011 Lecture 5: The PIC Microcontrollers Eng. Wazen M. Shbair.

Slides:



Advertisements
Similar presentations
The 8051 Microcontroller and Embedded Systems
Advertisements

Embedded System Spring, 2011 Lecture 9: I/O Programming Eng. Wazen M. Shbair.
EEE226 MICROPROCESSORBY DR. ZAINI ABDUL HALIM School of Electrical & Electronic Engineering USM.
© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Instruction sets Computer architecture taxonomy. Assembly language. 1.
By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey
Microprocessor and Microcontroller Based Systems Instructor: Eng.Moayed N. EL Mobaied The Islamic University of Gaza Faculty of Engineering Electrical.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
TK 2633 Microprocessor & Interfacing Lecture 3: Introduction to 8085 Assembly Language Programming (2) 1 Prepared By: Associate Prof. Dr Masri Ayob.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
8051 ASSEMBLY LANGUAGE PROGRAMMING
EET 2261 Unit 2 HCS12 Architecture
Microcontroller Architecture— PIC18F Family
Unit-1 PREPARED BY: PROF. HARISH I RATHOD COMPUTER ENGINEERING DEPARTMENT GUJARAT POWER ENGINEERING & RESEARCH INSTITUTE Advance Processor.
Microcontroller Architecture PIC18F Family
Embedded System Spring, 2011 Lecture 3: The PIC Microcontrollers Eng. Wazen M. Shbair.
Chapter 4 Starting to Program – an Introduction to Assembler The aims of this chapter are to introduce: the essentials of Assembler programming; the Microchip.
Micro controllers A self-contained system in which a processor, support, memory, and input/output (I/O) are all contained in a single package.
Lecture - 3 PIC18 family architecture and program development
Today’s Lecture List the Timers of PIC18 and their associated registers Describe the various modes of the PIC18 timers Program the PIC18 timers in Assembly.
AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi © 2011 Pearson Higher Education, Upper Saddle River, NJ All.
Directives, Memory, and Stack. Directives Special commands to the assembler May or may not generate machine code Categories by their function Programming.
ECP2036 Microprocessor and Interfacing Registers Control & Status Registers Program Counter User-Visible Registers Instruction Register... General-Purpose.
Embedded System Spring, 2011 Lecture 4: The PIC Microcontrollers Eng. Wazen M. Shbair.
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.
PIC – ch. 2b. Move to GPR Move [copy] contents of WREG  GPR/RAM MOVLW99H;WREG=99H MOVWF0H ;move [copy] WREG contents to location 0h … -Cant move literal.
Chapter 2-2 Assembly Instructions Number Systems Number Systems Assembly Instructions Assembly Instructions Branch Branch Next Lecture Next Lecture  Addressing.
Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair.
PIC – ch. 2c. 2.5 PIC Data formats Numbers can be – Hex – Binary – Decimal – ASCII formats.
Today’s Lecture Unconditional branch instruction
Introduction to Microprocessors
Eng. Husam Alzaq The Islamic Uni. Of Gaza
Computer Organization 1 Instruction Fetch and Execute.
MICROOCESSORS AND MICROCONTROLLER:
Microarchitecture. Outline Architecture vs. Microarchitecture Components MIPS Datapath 1.
Department of Electronic & Electrical Engineering Introduction to microcontrollers A microcontroller is a small computer on a single integrated circuit.
Simple ALU How to perform this C language integer operation in the computer C=A+B; ? The arithmetic/logic unit (ALU) of a processor performs integer arithmetic.
Department of Electronic & Electrical Engineering Lecture 2. PIC16F84A Architecture / Instructions Memory. Program/Data (Harvard) File Registers (Data).
1 EKT 225 MICROCONTROLLER I CHAPTER ASSEMBLY LANGUAGE PROGRAMMING.
Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair.
8051 Micro Controller. Microcontroller versus general-purpose microprocessor.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ read/write and clock inputs Sequence of control signal combinations.
1.  List all addressing modes of PIC18 uCs  Contrast and compare the addressing modes  Code PIC18 instructions to manipulate a lookup table.  Access.
INTRODUCTION TO AVRASSEMBLY PROGRAMMING
Microprocessor and Microcontroller Fundamentals
Lecture – 5 Assembly Language Programming
Microprocessor and Microcontroller Fundamentals
ECE 3430 – Intro to Microcomputer Systems
IPCOWALA INSTITUTE OF ENGINEERING & TECHNOLOGY-DHARMAJ
The 8051 Microcontroller and Embedded Systems
PIC – ch. 2b Md. Atiqur Rahman Ahad.
A Closer Look at Instruction Set Architectures
PIC18 CH. 4.
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Introduction to Assembly Chapter 2
CISC AND RISC SYSTEM Based on instruction set, we broadly classify Computer/microprocessor/microcontroller into CISC and RISC. CISC SYSTEM: COMPLEX INSTRUCTION.
CSCI206 - Computer Organization & Programming
Morgan Kaufmann Publishers Computer Organization and Assembly Language
MARIE: An Introduction to a Simple Computer
Introduction to Assembly Chapter 2
Figure 2-1. PIC WREG and ALU Using Literal Value
MARIE: An Introduction to a Simple Computer
Overheads for Computers as Components 2nd ed.
Introduction to Microprocessor Programming
8051 ASSEMBLY LANGUAGE PROGRAMMING
Introduction to Assembly Chapter 2
Computer Architecture Assembly Language
Presentation transcript:

Embedded System Spring, 2011 Lecture 5: The PIC Microcontrollers Eng. Wazen M. Shbair

2 IUG- Embedded System Today’s Lecture  Using instruction with the default access bank.  PIC Status Register.  Introduction to PIC Assembly Language

3 Using instruction with the default access bank  We need instruction to access other locations in the file register for ALU and other operations. MOVWF COMF DECF MOVF MOVFF

4 Access bank in the PIC18  It is 256-Byte bank.  Divided into equal two discontinuous sections (each 128 B). GP RAM, from 0 to 7FH SFR, from F80H to FFFH

SFRs of the PIC18 Family.

6 MOVWF instruction  F indicates for a file register MOVWF Address  It tells the CPU to copy the source register, WREG, to a destination in the file register. A location in the SPR A location in GP RAM 1-6 WREG

7 Example 2-1  MOVLW 99H  MOVWF 12H  MOVLW 85H  MOVWF 13H  MOVLW 3FH  MOVWF 14H  MOVLW 63H  MOVWF 15H  MOVLW 12H  MOVWF 16H 99 AddressData 012H 013H 014H 015H 016H 3F AddressData 012H H H 3F 015H H 12 WRFG

8 Note  We cannot move literal values directly into the general purpose RAM location in the PIC18.  They must be moved there via WREG. 1-8

9 ADDWF  Adds together the content of WREG and a file register location ADDWF File Reg. Address, D  The result will be placed in either the WREG or in the file register location D indicates the destination bit  If D=0 or (D=w) The result will be placed in the WREG  If D=1 or (D=f) The result will be placed in the file register 1-9

10 Example 2-2  State the content of file register location and WREG after the following program  MOVLW 0  MOVWF 12H  MOVLW 22H  ADDWF 12H, F 0 AddressData 012H 0 013H 014H 015H 016H 22 AddressData 012H H 014H 015H 016H AddressData 012H44 013H 014H 015H 016H AddressData 012H H 014H 015H 016H AddressData 012H H 014H 015H 016H

11 Example 2-3  State the content of file register location and WREG after the following program MOVLW 0 MOVWF 12H MOVLW 22H ADDWF 12H, F ADDWF 12H, W AddressData 012H 0 013H 014H 015H 016H 22 AddressData 012H H 014H 015H 016H

12 WREG, fileReg, and ALU in PIC18

13 COMF instruction COMF File Reg. Address, D  It tells the CPU to complement the content of fileReg and places the results in WREG or in fileReg. 1-13

14 Example 2-4  Write a simple program to toggle the SFR of Port B continuously forever. Solution MOVLW55H MOVWFPORTB B1COMFPORTB, F GOTOB AddressData F81H 55H F82H F83H AddressData F81HAAH F82H F83H

15 DECF instruction DECF File Reg. Address, D  It tells the CPU to decrement the content of fileReg and places the results in WREG or in fileReg.  Example: MOVLW 3 MOVWF 12H DECF 12H, F AddressData 012H 3 013H 014H 015H 016H AddressData 012H 2 013H 014H 015H 016H

16 DECF instruction DECF File Reg. Address, D  It tells the CPU to decrement the content of fileReg and places the results in WREG or in fileReg.  Example: MOVLW 3 MOVWF 12H DECF 12H, w 3 AddressData 012H 3 013H 014H 015H 016H 2 1 0

17 MOVF instruction MOVF File Reg. Address, D  It is intended to perform MOVFW MOVFW isn’t existed  If D=0 Copies the content of fileReg (from I/O pin) to WREG  If D=1 The content of the fileReg is copied to itself. 1-17

18 MOVF instruction  MOVF File Reg. Address, 0 WREG

19 Example 2-5  Write a simple program to get data from the SFRs of Port B and send it the SFRs of PORT C continuously. Solution AGAINMOVF PORTB, W MOVWF PORTC GOTO AGAIN XX AddressData F81H XX F82H F83H AddressData F81HXX F82H XX F83H

20 Example 2-6  Write a simple program to get data from the SFRs of Port B Add the value 5 to it and send it the SFRs of PORT C  Solution MOVF PORTB,W ADDLW 05H MOVWF PORTC 55 AddressData F81H 55H F82H F83H AddressData F81H55H F82H 5AH F83H 5A

21 MOVFF instruction  It copies data from one location in FileReg to another location in FileReg. MOVFF Source FileReg, destination FileReg

22 Example 2-7  Write a simple program to get data from the SFRs of Port B and send it the SFRs of PORT C continuously. Solution AGAINMOVFF PORTB, PORTC GOTO AGAIN XX AddressData F81H XX F82H F83H AddressData F81HXX F82H XX F83H

23 PIC Status Register  To indicate arithmetic conditions  It is a 8-bit register Five bits are used D0:CCarry Flag D1:DCDigital Carry Flag D2:ZZero Flag D3:OVOverflow Flag D4:NNegative Flag

24 Figure 2-7. Bits of Status Register

25 Example 2-8  Show the status of the C, DC, Z flags after the following addition instruction MOVLW 38H ADDLW 2FH  Solution 38H + 2FH = 67H  WREG=67H C=0 DC=1 Z=0

26 Example 2-9  Show the status of the C, DC, Z flags after the following addition instruction MOVLW 9CH ADDLW 64H  Solution 9CH + 64H = 100H  WREG= 00H C=1 DC=1 Z=1

Instruction That Affect Flag Bits

28 Flag Bits and Decision Making

29 PIC Data Format and Directives  There is one data type 8 bits It is the job of the programmer to break down data larger 8 bits  Data type can be positive or negative  Data format are Hex (default in PIC) 12 or 0x12 or H'12' or 12H Binary B' ' Decimal.12 or D'12' ASCII A'c' or a'c' 1-29

30 Assembler Directives  The Instruction tell the CPU what to do, while Directives give direction to assembler  Directives : EQU,SET, ORG (Origin), END, LIST  EQU (equate) It is used to define a constant value of a fixed address. It associates a constant number with a data or an address label so that when the label appears in the program, its constant will be substituted for the label.

31 Assembler Directives  SET Its used to define a constant value or a fixed, it’s the identical to EQU, but the SET may de reassigned later.  ORG (origin) It is used to indicate the beginning of the address.  END This indicates to assembler the end of the source (asm)file.

32 Assembler Directives  LIST It indicate to the assembler the specific PIC chip for which the program should be assembled

33 Rules for labels in Assembly Language  Unique name  Alphabetic letters Upper, lower, digits (0-9),special char. $)  The first letter must be Alphabetic letters  Not a reserved word 1-33

Quiz

35 Introduction to PIC Assembly Language  Difficult for us to deal with the machine code ( 0s and 1s)  Assembly Language provide Mnemonic: codes and abbreviations that are easy to remember Faster programming and less prone error LLL (why?) Programmer must know all Reg. …etc.  Assembler is used to translate the assembly code into machine code (object code) 1-35

36 Structure of Assembly Language  Series of lines Instruction Directives  Consists of four field [label] mnemonic [operands] [;commands]  Label: refer to line by code (certain length)  Mnemonic and operands are task that should be executed. Directive don’t generate any machine code and used by assembler 1-36

37 Sample of Assembly Language Program SUMEQU 10H ;RAM loc 10H fro SUM ORG 0H; start at address 0 MOVLW 25H ; WREG = 25 ADDLW 0x34 ;add 34H to WREG=59H ADDLW 11H ;add 11H to WREG=6AH ADDLW D’18’ ; W = W+12H=7CH ADDLW 1CH ; W = W+1CH=98H ADDLW b’ ’ ; W = W+6H=9EH MOVWF SUM ;save the result in SUM location HERE GOTO HERE ;stay here forever END; end of asm source file

38 Assembling and Linking A PIC Program Figure Steps to Create a Program

39 List File 1-39

40 The Program Counter and Program ROM Space in the PIC  Program Counter (PC) is used by the CPU to point to the address of the next instruction to be executed  The wider the program counter, more the memory locations can be accessed PIC16 has 14 bits (8K) PIC18 has 21 bits (2M) 8051 has 16 bits (64K) 1-40

41 Figure 2-9. Program Counter in PIC

43 Example 2-11  Find the ROM Memory Address of each of the following PIC chips: a)PIC18F2220 b)PIC18F2410 c)PIC18F458

44 Powering UP  At what address does the CPU wake up when power applied? The uC wakes up at memory address 0000 The PC has the value 0000 ORG directive put the address of the first op code at the memory location 0000

45 Placing Code in program ROM 1-45

46 Program Memory All instructions are 2Byte except the GOTO, which has 4-Byte

47 Program ROM Width for the PIC18  Byte addressable: each location holds only one byte CPU with 8-Bit will fetch one byte a time Increasing the data bus will bring more information  Solution: Data bus between CPU and ROM can be similar to traffic lanes on the highway  The wide of Data path is 16 bit Increase the processing power Match the PIC18 instruction  single cycle

48 Figure Program ROM Width for the PIC18

49 Little endian VS big endian war  The low byte goes to the low memory location  The high byte goes to the high memory location  Intel uP and many uCs use little endian

50 PIC18 Program ROM Contents for Program 2-1 List File

51 Harvard Architecture in the PIC  Von Neumann Architecture: uses the same bus for accessing both the code and data memory. Slow down the processing speed Get in each other’s way  Harvard Architecture: uses separate buses for accessing the code and data memory. Inexpensive for a chip

52 Figure von Neumann vs. Harvard Architecture

53 Instruction size of the PIC18  PIC Instructions are 2-Byte or 4-Byte  The first seven or eight bits represents the op- code  Most of PIC18 instructions are 2-Byte MOVLW kkkk kkkk (0E XX) ADDLW kkkk kkkk (0F XX) MOVWF a ffff ffff (6E XX or 6F XX)  A specifies the default access bank if it is 0 and if a = 1 we have to use bank switching

54 Instruction size of the PIC18  4-Byte instructions include MOVFF (move data within RAM, which is 4k)  1100 ssssssssssss (0  fs  FFF)  1111dddddddd dddd (0  fd  FFF) GOTO (the code address bus width is 21, which is 2M)  k 7 kkk kkkk 0  1111 k 19 kkk kkkk kkkk

55 RISC Architecture in the PIC  To increase the processing power of the CPU 1.Increase the clock frequency of the chip 2.Use Harvard architecture 3.change the internal architecture of the CPU and use what is called RISC architecture 1-55

56 RISC Architecture in the PIC  RISC  Simple and Small instruction set  Regular and fixed instruction format  Simple address modes  Pipelined instruction execution --> 95% executed in one cycle  CISC  Complex and large instruction set  Irregular instruction format  Complex address modes  May also pipeline instruction execution

57 RISC Architecture in the PIC  RISC  Provide large number of CPU registers  Separated data and program memory  Most operations are register to register  Take shorter time to design and debug  CISC  Provide smaller number of CPU registers  Combined data and program memory  Most operations can be register to memory  Take longer time to design and debug 1-57

58 Figure SFR Window in MPLAB Simulator 1-58

59 Figure File Register (Data RAM) Window in MPLAB Simulator 1-59

60 Figure Program (Code) ROM Window in MPLAB Simulator 1-60

61 IUG- Embedded System61 References  Jie Hu, ECE692 Embedded Computing Systems, Fall  PIC Microcontroller And Embedded Systems: using Assembly and C for PIC 18, M. Mazidi, R. McKinlay and D. Causey, Prentice Fall,  Eng. Husam Alzaq, Embedded System Course, IUG, 2010