Hi Friends! Hope you are doing well. Today, I'll cover the details on the Introduction to PIC16F676. It is an 8-bit CMOS PIC microcontroller, based on Flash and developed by Microchip. It comes in 14-pin interface with high-performance RISC CPU that makes it an ideal choice for most of the electronic applications that are widely related to embedded systems or industrial automation. This tiny chip incorporates everything you need to develop individual student projects. Memory space and a number of pins are little less as compared to other controllers in the PIC community, however, flash-based technology makes this device compatible with external devices.In this post, we'll discuss each and everything related to PIC16F676, its pinout and description, main features, block diagram, memory layout and applications. Let's dive right in and explore everything you need to know.
Introduction to PIC16F676
- PIC16F676 is an 8-bit PIC microcontroller that comes with a 14-pin layout design. It is based on flash where high-performance CPU adds up the processing speed.
- It comes in three packages called PDIP, SOIC, and TSSOP. All three versions are available in 14-pin configuration.
- PIC16F676 contains program memory with memory space around 1.7 KB, while RAM and EEPROM memories are 64 bytes and 128 bytes respectively.
- One ADC module is added in the device that is 10-bit and comes with 8 analog channels. This module plays a vital role for sensor interfacing and converting analog values to digital ones.
- Power on Reset, Comparator, in-circuit serial programming, and master clear reset are some other features incorporated in the device that help it stay ahead of the other onboard chips and remove the need of buying external components for carrying out different operations.
1. PIC16F676 Pinout and DescriptionYou have got a brief overview of this controller. In this section, we will cover both pinout and pin description of each pin. Let's start.
PinoutThe following figure shows the pinout of PIC16F676
Pin DescriptionPin description will help you understand the main function associated with each pin. Following table shows the complete description of each pin.
|Pin#||Pin Name||Pin Description|
|13||RA0AN0CIN+ICSPDAT||Digital I/O PinAnalog Channel 0Comparator InputProgramming Data|
|12||RA1AN1CIN-VREFICSPCLK||Digital I/O PinAnalog Channel 1Comparator InputVoltage ReferenceProgrammin Clock|
|11||RA2AN2COUTT0CKIINT||Digital I/O PinAnalog Channel 2Comparator OutputClock Input for Timer0Interrupt|
|4||RA3MCLRVPP||Digital I/O PinMaster Clear ResetProgramming Voltage Input|
|3||RA4T1GAN3OSC2CLKOUT||Digital I/O PinGate Timer1Analog Channel 3Crystal Oscillator Output.In RC mode, this pin has a 1/4 frequency of OSC1|
|2||RA5T1CKIOSC1CLKIN||Digital I/O PinClock Timer1Crystal Oscillator InputExternal Clock Input|
|10||RC0AN4||Digital I/O PinAnalog Channel 4|
|9||RC1AN5||Digital I/O PinAnalog Channel 5|
|8||RC2AN6||Digital I/O PinAnalog Channel 6|
|7||RC3AN7||Digital I/O PinAnalog Channel 7|
|6||RC4||Digital I/O Pin|
|5||RC5||Digital I/O Pin|
|1||VDD||Voltage Supply Pin|
2. PIC16F676 FeaturesYou have got a hold of pinout and description of each pin till now. In this section, we highlight and discuss the features of this controller that make it unique from its counterparts. The following figure shows the complete features of PIC16F676.
These features will help you pick the desired controller and assist you in making a final decision based on your project requirement.
|No. of Pins||14|
|Operating Voltage||2 to 5.5 V|
|Program Memory||1.7 K|
|Program Memory Type||Flash|
|ADCNumber of ADC Channels||10-Bit8|
|I/O Ports (2)I/O Pins||A, C12|
|Power Saving Mode|
|External Oscillator||up to 20 MHz|
|Timer (2)||16-Bit Timer (1)8-Bit Timer (1)|
|Individual Programmable Weak Pull-ups||Yes|
|EEPROM Data Retention||40 Years|
|Power on Reset||Yes|
|Master Clear Reset||Yes|
|In-Circuit Serial Programming||Yes|
|Minimum Operating Temperature||-40 C|
|Maximum Operating Temperature||125 C|
3. PIC16F676 FunctionsThere are a number of functions associated with this PIC module. Following are the main functions of PIC16F676.
Master Clear Reset (MCLR)
The MCLR is an external reset for the chip that is executed by keeping this pin LOW. This pin is not dependent on the internal resets which also house the noise filter to detect and remove the small pulses in the path.
TimerPIC16F676 comes with two timers where one is an 8-bit timer and other is 16-bit timers. They can be employed both ways i.e. as a timer as well as a counter. Both timers come with a clock select capability.The timer mode is used to create a delay in any function while a counter is used to count the number of the internals of any function.
In-Circuit Serial ProgrammingIn-circuit serial programming (ICSP), also called In-system programming (ISP), is added in the device that helps in programming the device after installation in a certain project.
Watchdog TimerThe watchdog timer is a very useful function that resets the controller if the running program gets stuck in an infinite loop or software shows an invalid status.It is very difficult to reboot the entire system in case there comes glitch, these timers save you a bunch of time and bring the system back to its initial position without human interference.
4. PIC Compiler
- A compiler is a software used where we write a program to execute desired functions on the microcontroller. Microchip comes with its own standard compiler called MPLAB C18 Compiler. You can get this compiler online from the Official Microchip Site.
- These Top 3 PIC C Compilers give you many options to choose from based on your requirements, however, MikroC Pro For PIC is mainly used for this purpose.
- The code we write in the compiler creates a hex file which is then moved to the microcontroller to call and execute the desired instructions.
- Burners are used to burn and incorporate the certain program on the controller. There are many unofficial burners available in the market but PICKit3 stay ahead in terms of ease of use and quality performance.
5. PIC16F676 Memory LayoutThe memory of this controller is mainly divided into two types calledProgram Memory Organization (ROM)Data Memory Organization (RAM)The program memory stores the program permanently and is also known as ROM or non-volatile memory. It comes with 13-bit program counter that can address 8k x 14 program memory space. The first memory space 1k x 14 covering (0000h - 03FFh) can be physically implemented. The address stored in the reset vector is loaded by the controller and stays at 000h while the interrupt vector stays at 0004h.The RAM memory, also known as Data or volatile memory, stores the program temporarily and depends on the source of power supply. It removes the stored program as the power supply turns off. The data memory is mainly divided into two banks that further house two types of registers calledSpecial Function RegistersGeneral Purpose RegistersThe first 32 locations of each bank are reserved for special function registers which are mainly used for handling and controlling the peripheral functions and are classified as "Core and Peripheral". While general purpose registers stay at 20h-5Fh, mapped across both banks and are implemented as static RAM.STATUS Register. This register is mainly used to switch between the banks and it contains
- Reset status
- Arithmetic status of the ALU
- Bank select bits for data memory (SRAM)
6. PIC16F676 Block DiagramBlock diagram is very helpful to uncover the main functions associated with each component on the controller and how these functions are related to each other. The following figure shows the block diagram of PIC16F676.
- This PIC module comes with two ports called PORTA and PORTC and each port contains 6 pins. It lacks some features like USART and comes with less memory space.
7. PIC16F676 Projects and ApplicationsPIC microcontrollers are widely used in many electronic systems for driving automation. Following are the main application of this controller version.
- Prototyping custom circuits
- GPS and security systems
- Central heating projects
- Student projects for sensor interfacing and motor controlling
- Used in home and industrial automation
- Embedded system
8. Why Use PIC MicroControllers
- PIC controllers are very helpful for carrying out automation in many electronic devices and provide easy to configure and user-friendly interface.
- A number of functions can be done on a single chip without buying external components, that make your project highly economical, and lightweight that covers less space.
- Some chips have a builtin ADC module that makes them an ideal choice for the projects requiring digital output as a final result.
- All the burners and PIC compilers are easily available that help you ease the learning process.