Peripheral Interface Controller (PIC) is microcontroller developed by Microchip, PIC microcontroller is fast and easy to implement program when we compare other microcontrollers like 8051. The ease of programming and easy to interfacing with other peripherals PIC became successful microcontroller.
We know that microcontroller is an integrated chip which consists of RAM, ROM, CPU, TIMERS, COUNTERS etc. PIC is a microcontroller which also consists of ram, rom, CPU, timers, counter, ADC (analog to digital converters), DAC (digital to analog converter). PIC also supports the protocols like CAN, SPI, UART for interfacing with other peripherals. PIC mainly used modified Harvard architecture and also supports RISC (Reduced Instruction Set Computer) by the above specification RISC and Harvard we can easily that PIC is faster than the 8051 based controller which is made-up of Von-Newman architecture.
PIC Microcontroller Architecture:
CPU: CPU is not different from other microcontrollers CPU. PIC microcontroller CPU consists of Arithmetic logic unit (ALU), memory unit (MU), control unit (CU), Accumulator etc. we know that ALU mainly used for arithmetic operations and taking the logical decisions, memory used for storing the instruction which is to processed and also storing the instructions after processing, Control unit is used for controlling the all the peripherals which are connected to the CPU both internal peripherals and external peripherals. Accumulator is used for storing the results and used for further processing. As I said earlier PIC micro controller supports the RISC architecture that is reduced instruction set computer, if a computer or controller is said that it supports reduced instruction set you should remember the following points:
- RISC has very few instructions (approx. ~ 35) which are used in the program.
- Length of the instruction is small and fixed and takes same amount of time for processing.
- As the instruction is small it will take less time to process another words CPU will be fast.
- Compiler need not be complex and debugging will be very easy in the programmer point of view.
Also get an idea about How to Interface 16X2 LCD with PIC Microcontroller
Memory: Memory module in the PIC consists of RAM, ROM and STACK
RAM: we know that RAM (Random Access Memory) which is a volatile memory used for storing the data temporarily in its registers. RAM memory is divided in to Banks, in each banks we have number of registers. The RAM registers is divided into 2 types. They are General purpose registers (GPR) and Special purpose registers (SPR).
- GPR: general purpose registers as the name implies for general usage. For example if we want to multiply any two numbers using PIC we generally take two registers for storing the numbers and multiply the two numbers and store the result in other registers. So general purpose registers will not have any special function or any special permission, CPU can easily access the data in the registers.
- SPR: Special function registers are having the specific functions, when we use this register they will act according to the functions assigned to them. They cannot be used like normal registers. For example you cannot use STATUS register for storing the data, STATUS registers are used for showing the status of the program or operation. User cannot change the function of the Special function register; the function is given by the vendor at the manufacturing time.
ROM: we know that ROM (Read Only memory) is a non volatile memory used for storing the data permanently. In microcontroller ROM will store the complete instructions or program, according the program microcontroller will act. Rom is also called program memory in this memory user will write the program for microcontroller and save it permanently and get executed by the CPU. According to the instruction executed by the CPU the PIC microcontroller will perform the task. In ROM there are different types which are used in different PIC microcontrollers.
- EEPROM: In the normal ROM we can write the program for only one time we cannot reuse the Microcontroller for another time where as in the EEPROM (Electrically Erasable Programmable Read Only Memory) we can program the ROM for number of times.
- Flash Memory: flash memory is also PROM in which we can read write and erase the program more than 10,000 times. Mostly PIC microcontroller uses this type of ROM.
Stack: when an interrupt occur PIC has to first execute the interrupt and the existing process address which is being executed is stored in the stack. After completing the interrupt execution, PIC will call the process with the help of address which is stored in stack and get executing the process.
Bus: Bus is mainly used for transferring and receiving the data from one peripheral to another.There are two types of buses.
- Data Bus: It is used to transfer/receive only the data.
- Address Bus: is used to transmit the memory address from peripherals to CPU.
I/O pins are used for interfacing the external peripherals, UART and USART is serial communication protocol which is used for interfacing serial devices like GPS, GSM, IR, Bluetooth etc.
Advantages of PIC Microcontroller:
- They are reliable and malfunctioning of PIC percentage is very less. And performance of the PIC is very fast because of using RISC architecture.
- Power conception is also very less when compared to other micro controllers. When we see in the programmer point of view interfacing is very easy, also we can connect analog devices directly with out any extra circuitry and use them. Programming is also very easy when compared to other microcontrollers.
Disadvantages of PIC Microcontroller:
- The length of the program will be big because of using RISC (35 instructions).
- Program memory is not accessible and only one single accumulator is present.
Related Post: Top PIC Microcontroller Projects Ideas for Engineering Students