PIC Programmer and Programming

Summary of PIC Programmer and Programming


This article discusses building a PIC microcontroller programmer using David Tait's "Classic Tait" hardware design. The author modifies the original schematic to include an in-circuit programming header with specific pins (GND, MCLR, RB6, RB7). While the original FPP software is mentioned, the author recommends WinPic800 or IC PROG for better compatibility with modern chips like the PIC16F877A and easier Windows setup.

Parts used in the PIC Programmer:

  • David Tait Classic Programmer hardware
  • Programming header (GND, MCLR, RB6, RB7)
  • Pull-up resistor on MCLR
  • WinPic800 software
  • LPT1 parallel port

Programmer

There are many PIC programmers you can purchase or whose schematics (and software) you can find freely over the Internet

David Tait has a programmer with software and hardware schematics available here. If you read his documentation, you will find various programmer schematics. I use the Classic “Tait” Programmer. The schematic is below:PIC Programmer and Programming

I have modified my Tait programmer to include a programming header consisting of GND, MCLR, RB6 (CLOCK), and RB7 (DATA) for use in programming “in circuit”. Most of my microcontroller project schematics include a pull-up resistor on MCLR, so you can use the programmer with no further modifications.
Programmer Software

I don’t use FPP, the software supplied by David Tait. You can use it and program a PIC16F877 to run the oscilloscope firmware and everything should work just fine. If you want to program the more readily available (and generally cheaper) PIC16F877A, FPP won’t work.PIC Programmer and Programming schematic

Therefore, I use another free programmer software called WinPic800 (you can also use another program called IC PROG). I prefer WinPic800 because it is easier to set up in Windows XP (you don’t have to go download a separate driver), it is flexible enough to work with non-standard programmers, and I get consistently good results.

To help with the setup, here is a screen capture of the Hardware Settings dialog from WinPic800 configured for use with the Tait Programmer on LPT1. Notice the bit numbers and byte offsets for each signal and which signals are inverted.

Once you’ve worked through these items above, you should now be ready to program the PIC!

Quick Solutions to Questions related to PIC Programmer:

  • Can I use the original FPP software for PIC16F877A?
    No, FPP will not work for the more readily available PIC16F877A.
  • What software does the author prefer for programming?
    The author prefers WinPic800 because it is easier to set up in Windows XP and works well with non-standard programmers.
  • Does the modified programmer require further modifications if I have a pull-up resistor?
    No, if your project schematics include a pull-up resistor on MCLR, you can use the programmer without further modifications.
  • Which signals are included in the in-circuit programming header?
    The header consists of GND, MCLR, RB6 (CLOCK), and RB7 (DATA).
  • Is there an alternative to WinPic800 mentioned in the text?
    Yes, IC PROG is another free programmer software that can be used.
  • What port configuration is shown for the WinPic800 Hardware Settings dialog?
    The screen capture shows the configuration for use with the Tait Programmer on LPT1.
  • Do I need to download a separate driver for WinPic800 on Windows XP?
    No, you do not have to go download a separate driver for WinPic800 on Windows XP.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter