Become a subscriber (Free)

Join 29,000 other subscribers to receive subscriber sale discounts and other free resources.
:
:
Don't worry -- youre-mail address is totally secure. I promise to use it only to send you MicroZine.

PIC 16F88

Even though the 16F88 is an older device (still in production 2018) it has many of the standard useful internal peripherals associalted with most microcontrollers. In fact it has so many that you may find it difficult to choose what to do! This means the chip is capable of use in many different projects (example projects are available on this site). It is also used in the c programming course.since it is a convenient size.

The 16F88 is related to the 16F877 (probably the 16F887 as well since the latter is an updted 16F877) and I say related as it shares almost all the same internal peripherals as the 16F877 - just in a smaller package (18 pins instead of 40 pins).

TIP:The 16F88 has a useful internal oscillator running at 8MHz (using the external crystal allows 20MHz operation but for small projects the 8MHz speed is fine).

The device has:

Peripherals:

  • A standard receive and tramsmit UART module for RS232 serial communication.
  • A 10 Bit ADC for accurate analogue measurement (from any of 7 pins).
  • A PWM module for analogue output.
  • A Capture module for accurate signal time analysis.
  • A Compare module for accurate signal time generation.
  • Two analogue comparators.
  • An SPI interface module.
  • An I2C interface module.
  • Three timers - two 8 bit, and one 16 bit.

Memory:

  • Useful 4096 Bytes Flash programming space.
  • Useful 368 bytes of RAM.
  • Useful 256 Bytes of EEPROM.

11 internal peripherals excluding Ram and Flash above.

Note: You can save an extra pin by using the MCLRn pin as an input pin (you can not use it as an output due to internal circuitry).

It is pin compatible with the 16F84 (that is if you don't assign the oscillator pins) e.g. if you use the internal oscillator it frees up the oscillator pins as I/O. It also has most of the same internal hardware modules as the 16F877(A).

It has eight major peripherals (see diagram below) useful RAM and program memory (far more than the 16F84) and an internal oscillator that can run from 125kHz to 8MHz (using a postscaler) or 31.25kHz (a separate internal clock).  

These features make it easy to use with high level languages as it has enough RAM to do useful tasks. The31.25KHz clock lets it run at low power if needed.

As with all the mid range PICs it uses ICSP for programming so it can be programmed in circuit without removing it if the circuitry is designed correctly.

Jump to PIC16F88 bubble diagram.
Jump to bubble diagram device list.

For a summary of each peripheral block click here.

PINOUT

pinout 16F84


Learn about the tool used for creating this diagram.

PIC16F88 Features

16F88 resources

Jump from 16F88 to the Home page.

New! Comments

Have your say about what you just read! Leave me a comment in the box below.




Privacy Policy | Contact | About Me

Site Map | Terms of Use



Visit our Facebook Page:

   Click Here



Recent Articles

  1. [Arduino Tutorial] : How to use the 74HC595 shift register with shiftOut().

    The Essential Guide to the 74HC595; What it is and how you can easily use one in any of your projects.

    Read more

  2. Pic Programmer Types

    Which pic programmer do you need? This page discusses PIC programmers and gives some essential information on choosing or building your own programmer.

    Read more

  3. Arduino Pulsein: an easy way to measure pulse periods in microseconds.

    learn how to use Arduino pulseIn and pulseInLong to get the most accurate pulse measurement on an Arduino.

    Read more

  4. Arduino millis

    How to use Arduino millis() for deylays but still make the processor do work - Stop using delay()

    Read more

  5. Multiple MCP23017 Interrupt tutorial for operating multiple interrupts from multiple MCP23017s.

    This MCP23017 Interrupt tutorial shows you how to connect interrupt outputs from several MCP23017s to a single microcontroller interrupt pin.

    Read more

  6. Arduino delay() How to use it (and why you should not use it!)

    Arduino Delay() is a useful function but not for large programs - Find Out Why Here...

    Read more

Readers Comments

"I wanted to thank
you so so so much
for all the information
you have provided in
your site it's

SUPERB and FANTASTIC."

- Ranish Pottath

"This site really is
the best and my favorite.
I find here many useful
projects and tips."

- Milan

bursach<at>gmail.com<

"Awesome site,
very, very easy and nice
to navigate!"


- Matt
matt_tr<at>
wolf359.cjb.net


Learn Microcontrollers

"Interested in
Microcontrollers?"

Sign up for The
Free 7 day guide:

FREE GUIDE : CLICK HERE


"I am a newbie to PIC
and I wanted to say
 how great your
site has been for me."


- Dave

de_scott<at>bellsouth.net

"Your site is a great
and perfect work.
congratulations."


- Suresh

integratredinfosys<at>
yahoo.com

"I couldn't find the correct
words to define
yourweb site.

Very useful, uncovered,
honest and clear.

Thanks so much for
your time and works.
Regards."


- Anon

Back to Top