The 16F628 a good replacement device for the 16F84 as it has a lot of usable built in peripherals:
The 16F84 has 1 peripheral (Timer 0) whereas the 628 has three timers, a USART, a CCP (for Pulse Width Modulation, capture and compare), and two analogue comparator. One other useful feature is that you can switch it from internal 4MHz to slow speed internal37kHz on the fly so you can used it in power sensitive applications (but the 16F628A is a better choice if you need ultra low power operation).
Jump to the 628 bubble diagram.
The only difference is the available program memory (Flash programming area).
|Device (16F)||Flash program words||Ram||EEPROM|
Jump to bubble diagram device list.
For a summary of each peripheral block click here.
Note: To compare bubble diagrams open each device page in a separate window (a tabbed browser is useful for this) and hit the 'Jump to device' link above then alternately select each view to see the differences between the devices.
There is less memory for the 16F627 (se table above).
The 16F628 pic microcontroller is quite a capable little device having enough memory for useful applications and the only features it lacks are an ADC and I2C capability.
Note: You can get round the lack of I2C by bit-banging programming i.e. controlling a programmable pin without requiring an internal hardware module (see this project for source code) and you could use an external ADC. A better choice may be the 16F88 that has a built in 10 bit ADC if you need an ADC.
The 16F628 has fairly good low power operation 1uA @3V but if you really want to have a battery operated system that lasts longer then the 16F628A has a standby current of 100nA @2V i.e. an order of magnitude better.
Jump from 16f628 resources to
Best Microcontroller Projects Home Page.
How to use I2C. In this tutorial you will learn all about the 2 wire I2C serial protocol. Learn how easy it is to use, how it works and when to use it...
What exactly is RS232 and how does it work? - Find out Here!
This 74HC595 shift register tutorial shows you how to increase outputs for any microcontroller. Learn how to add 8, 16, 32 or more outputs with multiple 595's.