Embedded System Spring, 2011 Lecture 4: The PIC Microcontrollers Eng. Wazen M. Shbair
2 IUG- Embedded System Today’s Lecture The WREG Register The PIC File Register
3 The WREG Register Many registers for arithmetic and logic operation. The WREG (WORking Register) Register is one of the most widely used registers of the PIC 8-bit register any data larger than 8 bits must be broken into 8-bits chunks before it is processed. There is only one. 3-3 D7D6D5D2D4D3D1D0
4 MOVLW Moves 8-bit data into WREG MOVLW k; move literal value k into WREG Example MOVLW 25H MOVLW A5H Is the following code correct? MOVLW 9H MOVLW A23H 1-4
5 ADDLW r ADDLW k; Add literal value k to WREG (k +WREG) r Example: r MOVLW 12H r ADDLW 16H
6 PIC WREG and ALU Using Literal Value
7 The WREG Register When programming the WREG of PIC, the following points should be noted: Values can be loaded directly into the WREG. If values 0 to F are moved into an 8-bit register such as WREG, the rest of the bits are assumed to be all zeros. Moving a value larger than 255 (FF in hex) into the WREG register will truncate the upper byte and cause a warning in the.err file.
8 The WREG Register MOVLW 7F2H; Illegal, becomes F2H MOVLW 456H ; Illegal, becomes 56H MOVLW 60A5H; Illegal, becomes A5H
9 The PIC File Register It is the data memory. Read/Write Static RAM Used for data storage, scratch pad and registers for internal use and function 8-bit width PIC File Register General Purpose RAM GP RAMEEPROM Special Function Registers
Register File Concept Data Bus d Decoded Instruction from Program Memory: Arithmetic/Logic Function to be Performed Result Destination Address of Second Source Operand Register File Concept: All of data memory is part of the register file, so any location in data memory may be operated on directly All peripherals are mapped into data memory as a series of registers Orthogonal Instruction Set: ALL instructions can operate on ANY data memory location wf wf ALU WREG Data Memory (Register File) 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h Opcode d d a a Address
11 Special Function Registers Dedicated to specific functions such as ALU status, timers, serial communication, I/O ports, ADC,… The function of each SFR is fixed by the CPU designer at the time of design it is used for control of the microcontroller or peripheral 8-bit registers Their numbers varies from one chip to another. 1-11
12 General Purpose RAM Group of RAM locations 8-bit registers Larger than SFR Difficult to manage them by using Assembly language Easier to handle them by C Compiler. The microchip website provides the data RAM size, which is the same as GPR size.
13
Figure 2-2. File Registers of PIC12, PIC16, and PIC18
15 GP RAM vs. EEPROM in PIC chips GPRs are used by the CPU for internal data storage. EEPROM are considered as add-on memory that one can add externally to the ship. So PIC chip may have zero byte of EEPROM data memory, but impossible for a PIC have zero size for the file register.
16 File Register and access bank in the PIC18 The PIC18 Family can have a max. of 4096 Bytes. The File Register has addresses of 000- FFFH divided into 256-byte banks Max. 16 banks (How?) At least there is one bank Known as default access bank. Bank switching is a method used to access all the banks. 1-16
17 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 1-17
18 SFRs of the PIC18 Family.
19 IUG- Embedded System19 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