You are on page 1of 46

PIC

MICROCONTROLLERS

Peeyush.K.P.
Amrita School of Engineering
Coimbatore
What is an Embedded System?
Communication

Avionics

Automobile

Consumer
Electronics
Office Equipments

Household
2 Appliances
What is an Embedded system?

System in which software is embedded into the


hardware ( firmware).

The core part of the system will be a programmable device.


Automotive Embedded Systems
 Today’s high-end automobile have > 80
microprocessors:
 4-bit microcontroller checks seat belt;
 microcontrollers run dashboard devices;
 16/32-bit microprocessor controls engine.
 Millions lines of code

4
Vending Machines

5
Sojourner

6
GPS Receivers

7
Why Embedded systems?
 Reduced number of components.
 Reduced size.
 Reduced cost.
 Reduced power consumption.
 Easier upgradation.
 Easier troubleshooting & maintenance.
 Best suited for specific controlling applications.
Why uC?
 Microprocessor:
• Requires ‘external’ support hardware
• E.g., External RAM, ROM, Peripherals.
• Application:Processing-Arithmetic,logic operations.
 Microcontroller:
• Very little external support hardware/Stand alone.
• Most RAM, ROM and peripherals on chip.
• “Computer on a chip”, or “System on chip” (SOC)
• E.g., PIC = Peripheral Interface Controller
• Application: Controlling purposes.
Microcontroller
VARIOUS MICROCONTROLLERS
 8 bit microcontrollers
 Microchip - PIC 12 & 16 Series.
 Atmel - 89c51
 Intel - 8051
 Motorola - 68HCxx series
 16 bit microcontrollers
 Microchip - PIC 18 series
 32 bit microcontrollers
 ARM Processors
 DSP based microcontrollers
 Shark
Two Different Architectures
RISC vs. CISC

 Reduced Instruction Set  Complex Instruction Set


Computer (RISC) Computer (CISC)
 Used in: SPARC, ALPHA,  Used in: 80X86, 8051,
Atmel AVR, etc. 68HC11, etc.
 Few instructions  Many instructions
(usually < 50) (usually > 100)
 Only a few addressing  Several addressing modes
modes  Usually takes more than 1
 Executes 1 instruction in 1 internal clock cycle (Tcyc)
internal clock cycle (Tcyc) to execute
WHY PIC ?
WHY PIC ?

 PICs use the Harvard Architecture


 PICs and most Harvard chips are “RISC”
 35 Instructions
 Executes 1 instruction in 1 internal clock cycle
 In-Circuit Serial Programmable (ICSP) – via two pins.
 Available in different packages
Features

 Power On Reset Timer


 Oscillator Startup Timer
 WatchDog Timer
 Sink/Source Current – 25ma
 Flash Programming
POR/Oscillator Startup Timer
WatchDog Timer

00
01
02
..
..
FF

Roll Over
00
Sink/Source Current – 25ma
The PIC Family: Cores
PICs come with 1 of 3 CPU ‘cores’:
The Base-line : 12bit cores with 33 instructions.
Eg:12C50x, 12C67x
The Mid-Range : 14bit cores with 35 instructions.
Eg:16C5x,16Cxxx
The High-End : 16bit cores with 58 instructions.
Eg:17C4x,17C7xx
‘Enhanced’ 16bit cores with 77 instructions: 18Cxxx
Areas of Application.
 Base-line
 Inexpensive controllers, glue logic, simple tasks.
 E.g., quadrature decoding, digital interfacing.
 Mid-range
 Multitasking programs, serial communication.
 E.g., Cheap data acquisition system and digital I/O
system for PC off COM ports, data logging.
 High-end
 RTOS, low end DSP, communications, big moosey
applications.
 E.g., FEC converter, Rocket Flight Computer, cheap
FFT chip.
Program Memory (ROM)-size

PIC program space is different for each chip.

Some examples are:

12C508 512 12bit instructions


16C71C 1024 (1k) 14bit instructions
16F877 8192 (8k) 14bit instructions
17C766 16384 (16k) 16bit instructions
Program Memory (ROM)-types

PICs have two different types of program storage:

EPROM (Erasable Programmable Read Only Memory)


Needs high voltage from a programmer to program
(~13V)
Needs windowed chips and UV light to erase
Note: One Time Programmable (OTP) chips are EPROM
chips, but with no glass window. ( ‘CR’ )
PIC Examples: Any ‘C’ part: 12C50x, 17C7xx, etc.
Program Memory (ROM)-types.

FLASH
Re-writable (even by chip itself)
Much faster to develop on!
Finite number of writes (~100k Writes)
PIC Examples: Any ‘F’ part: 16F84, 16F87x,
18Fxxx (future)
Data Memory (RAM-volatile)
PICs use general purpose “file registers” for RAM (each
register is 8bits for all PICs)

Some examples are:


12C508 25 Bytes RAM
16C71C 36 Bytes RAM
16F877 368 Bytes
17C766 902 Bytes RAM
Data Memory (EEPROM non-volatile)

 For permanent storage of data.


 Available in few PICs only.
 Eg:16F8X,12CE5XX,16F87X
Speed
PICs require a clock to work.
Can use crystals, clock oscillators, or even an RC circuit.
Some PICs have a built in 4MHz RC clock
- Not very accurate, but requires no external components!
Instruction speed = 1/4 clock speed (Tcyc = 4 * Tclk)
All PICs can be run from DC to their maximum spec’d
speed:
12C50x 4MHz
12C67x 10MHz
16Cxxx 20MHz
17C4x /17C7xxx 33MHz
18Cxxx 40MHz
Peripherals
Different PICs have different on-board peripherals

Some common peripherals are:


 Tri-state (“floatable”) digital I/O pins.

 Analog to Digital Converters (ADC) (8, 10 and


12bit, 50ksps).
2
 Serial communications: UART (RS-232C), SPI, I C,
CAN.
 Pulse Width Modulation (PWM) (10bit).

 Timers and counters (8 and 16bit).

 Watchdog timers, Brown out detect, LCD drivers.


Packages
PICs come in a huge variety of packages:

8 pin DIPs, SOICs: 12C50x (12bit) , 12C67x (14bit)


18pin DIPs, SOICs: 16C5X (12bit), 16Cxxx (14bit)
28pin DIPs, SOICs: 16C5X (12bit), 16Cxxx (14bit)
40pin DIPs, SOICs: 16Cxxx (14bit), 17C4x (16bit)
44 - 68pin PLCCs*: 16Cxxx (14bit), 17Cxx (16bit)
Commonly used mid range series
PICs

 The 16F8x series- 16F84.


 The 16F7x series- 16F73,74,76,77.
 The 16F87x series- 16F873, 874,876,877.
Comparison of Commonly Used
Mid range series of PIC
16f8X 7X 87X
Operating Speed
Clock input 10MHz 20MHz 20MHz
Instruction cycle 400ns 200ns 200ns
Stack levels 2 8 8
Data EEPROM Yes No Yes
Timers 8bit X 1 8bit X 2 + 16bit X 1 8bit X 2 + 16bit X 1
CCP modules No 2 2
ADC No 8bit 10bit
USART/SCI No 1 1
SSP/SPI/I2C No 1 1
Interrupt on Pin Change No Yes Yes
Comparison of Commonly Used
Mid range series of PIC
83 84 73/873 74/874 76/876 77/877

Total pins 18 18 28 40 28 40

I/O Ports A,B A,B A,B,C A,B,C,D,E A,B,C A,B,C,D,E


I/O Pins 13 13 22 33 22 33

Prog. m/y 512 B 1 KB 4 KB 4 KB 8 KB 8 KB

Data m/y 36 B 68 B 192 B 192 B 368 B 368 B

EEPROM 64 64 128 128 256 256

PSP No No No Yes No Yes


ADC channels NA NA 5 8 5 8
BOR No No Yes Yes Yes Yes
PIC 16F874/877
PIC 16F874/877
PIN DIAGRAM
PIC16F877A Block Diagram
Instruction
Memory Data
Memory

Instruction
Data Bus
Bus
Must be
involved in all
arithmetic
operations

Most
important
register in
the PIC
PIC16F877A Memory
 The PIC16F877A has an 8192 (8k) 14bit instruction
program memory

 368 Bytes Registers as Data Memory :


 Special Function Registers: used to control peripherals
and PIC behaviors
 General Purpose Registers: used to a normal
temporary storage space (RAM)

 256 Bytes of nonvolatile EEPROM


PIC16F877A Memory Map
SFR

www.greytechnologies.net
INSTRUCTION SET
1) Move Literal Value To Work Register
Syntax : MOVLW <LITERAL>
Eg: MOVLW 0X02

2) Move Content of Work Reg. To File Reg.


Syntax : MOVWF <FILE REG>
Eg : MOVWF PORTA

3) Move Content of File Reg. To Desti.


Syntax : MOVF <FILE REG>,<DESTI.>
Eg : MOVF PORTA,0
Eg : MOVF PORTA,1
INSTRUCTION SET
1) Bit Set File Register
Syntax : BSF <File Reg>,<Bit>
Eg: BSF PORTA,1

2) Bit Clear File Register


Syntax : BCF <File Reg>,<Bit>
Eg : BCF PORTA,1
INSTRUCTION SET
1) Bit Test File Register Skip if Set
Syntax : BTFSS <File Reg>,<Bit>
Eg: BTFSS PORTA,1

2) Bit Test File Register Skip if Clear


Syntax : BTFSC <File Reg>,<Bit>
Eg : BTFSC PORTA,1
INSTRUCTION SET
1) Decrement File Register Skip if Zero
Syntax : DECFSZ <File Reg>,<Desti.>
Eg: DECFSZ COUNT,1

2) Increment File Register Skip if Zero


Syntax : INCFSZ <File Reg>,<Desti.>
Eg : INCFSZ COUNT,1
Programming PIC
Basic Circuit
Thank You For
Your Kind
Attention……

You might also like