These pic projects use Flash based
microcontrollers so you can re-program them in circuit using ICSP. You can re-program most PIC Flash
microcontrollers up to 100,000
times!
So if you re-programmed a part 10 times a day it would take you 27 years before it wore out!
Note: Some older devices only
re-program 1000 times e.g. 16F84.
So don't worry about re-programming you can re-program them as much as you want
to.
Projects on this site mainly use the following devices
You can use an ICSP programmer in circuit to test your projects out and once
set up you don't need to remove the programmer during testing.
So it's easy to change the code and you don't need to fiddle
about transferring microcontrollers from sockets to project board.
Note: You have to design the circuit to
operate with the ICSP port but its not difficult.
Note: All of these projects can be retargetted to another device - all you need to do is ensure there is enough memory (compile and check used memory). Also look at the requirements on the project page to make sure that the device has the required hardware module (if any is specified) and enough pins.
The above link takes you to information from the public
domain
- specifically expired US patents - however these contain accumulated
knowledge from the greatest minds in history! So don't dismiss them!
All you need to program the microcontroller in each of the following projects is a pic programmer that has an ICSP connector. You can find a programmer project below but you should really buy one, such as a PicKit3 since it saves making any mistakes as you don't have to build the programmer i.e. one less thing to think about.
Note that most of the pic projects are retargetable to different devices - some are not as they use a lot of pins to drive displays. But in general you can change to a different device. You could also run using a different display e.g. for the frequency counters you could use an RS232 output which would let it operate from a 12F675 (8 pin device).
A frequency counter using PIC TIMER 0, 1 and a standard HD44780 LCD.
Target | 16F877A |
Retargetable | Yes: Needs Timer0, Timer 1. |
A frequency counter using PIC TIMER 1 and a real display that you can see!. It uses 8 seven segment displays e.g. 50,000,000 is fully displayed.
Target | 16F877A |
Retargetable | Yes: Needs Timer 1. |
This is a simple project showing how to use the analogue inputs of the PIC with full register usage code.
Target | 16F877A |
Retargetable | Yes: Needs Analogue module. |
This project uses the CCP module to measure the ultrasonic echo time for calculating the object's distance. It also uses standard transistor components for transmission and reception. Range is 5cm to 3m.
Target | 16F88 |
Retargetable | Yes: needs CCP module. |
This project uses a 16F88 as the master I2C controller and for this chip the
I2C control has to be written in software. Unlike the 16F877A the 16F88 only
has a full implementation of the slave mode. The software I2C routines can be
used with any PIC micro. This project results in the standard 4 digit seven
segment display desk clock.
Target | 16F88 |
Retargetable | Yes: Any PIC Micros. |
This project saves you port pins by combining an LCD and Keypad onto one 8 bit port. The LCD is fully readable and writable and the key pad has 12 fully readable keys.
PIC Projects Target | 16F877A |
Retargetable | Yes: Any PIC Micros. (Any micro that can set pin directions). |
To unlock this page please visit my E-Zine subscription page here.
Note that the project and E-Zine are free.
Project uses interrupts to generate a software PWM and uses Timer 0 as a heartbeat timer.
IC Projects Target | 16F877A |
Retargetable | Yes: Any PIC Micros with at least 3 pins! |
This project shows how to drive an 8x8 dot matrix led display. Note that you can drive a 5x7 display with the same circuity - just needs the character set adjusted.
PIC Projects Target | 16F88 |
Retargetable | Yes: Any PIC Micros. |
This project creates a serial port driven LCD display module. All commands are in ASCII so you can test out the project by driving it directly from a PC serial port. The project relies on the built in USART but you could create a software UART (receiver part) and drive it in the same way.
There are no 'odd' commands e.g. to clear the display you would type #C or #c and to write text to the display you just type text! Setting an x or y position is also easy e.g. #X10 sets the cursor to x position 10.
PIC Projects Target | 16F877A |
Retargetable | Yes: Any PIC Micros with a built in USART. |
With this project you can use a PIC micro to read any infrared remote control, TV, DVD,Video, satellite etc. With it you can control your PC e.g. start programs, move the mouse, turn the Windows volume up and down etc.
PIC Projects Target | 16F88 |
Retargetable | Yes: Any PIC Micros with a built in USART. |
The start of a tutorial on the 12F675.
PIC Projects Target | 12F675 |
Software implementation of RS232 transmit for 12F675.
PIC Projects Target | 12F675 |
Retargetable | Yes: Any PIC Microcontroller |
Temperature logging to serial port using 12F675.
PIC Projects Target | 12F675 |
Retargetable | Yes: Any PIC with analogue input port. |
Similar to the above project but stores data in the internal EEPROM that can be read out later via the serial port.
PIC Projects Target | 12F675 |
Retargetable | Yes: Any PIC with analogue input port |
This projectuses Timer 0 to generate the timing interval ~20ms. Each Timer 0 interrupt calls a pulse generation function that sets the position of the servo (1ms-2ms).
PIC Projects Target | 12F675 |
Retargetable | Yes: Any PIC Micro |
This project uses Timer 0 to generate the timing interval ~20ms as above but is now controlled from a Soft Serial USART.
PIC Projects Target | 12F675 |
Retargetable | Yes: Any PIC Micro |
This project uses a 16F88 and an LED matrix to display a binary clock with 6
digits of 4 binary bits each
It also teaches reading binary 0-9.
It uses a Timer 0 interrupt to generate
timing pulses for the clock so you can use it with virtually any other PIC
device.
PIC Projects Target | 16F88 |
Retargetable | Yes: Any PIC Micro with enough pins. |
A Parallel port pic programmer based on AN589 with an ICSP connector that
you can use to program virtually any PIC micro since they all use the same ICSP
connections. This project does not use a PIC micro - it needs a 74HC244 and
some standard transistors.
Note: This programmer is a modified AN589 and
lets you use it at the end of a 6ft parallel cable. The mod for this is
simply a standard resistor and capacitor which makes a transmission line
terminator. When I first built it I had not used the terminator and got
random results - very frustrating - the mod is simple and useful - there are
also other useful and simple mods in the project.
End of PIC Projects page.
Return from PIC Projects to
Best-microcontroller-projects home page
With the ADXL345 acellerometer you can detect up to 16g! You can also find out how to use it for tap detection and more.
HMC5883L - How make a digital compass, Find out the differences between the HMC5883L and the QMC5883L and whether they are compatible.
Easily use an ESP8266 with the Arduino IDE and program your first sketch into the ESP8266
The MCP4725 chip is a 12 bit DAC with memory that outputs voltage that you can use for many dfferent purposes. Find out what they are in this page.
PCF8591: A four input ADC with single DAC. How good is this 8 bit ADC, and should you use it in your next project?
Arduino Nano ISP: How to program an ATmega328P using an Arduino Nano as the ISP programmmer. One common problem: Programming a sketch into the chip without a reset control - solved here.
New! Comments
Have your say about what you just read! Leave me a comment in the box below.