PIC16C84 Programmer using PC Parallel Port David Tait Electrical Engineering Dept Manchester University Manchester M13 9PL United Kingdom E-mail: david.tait@man.ac.uk 15th March 1994 If you have an IBM PC with a parallel printer port, then you can program PIC16C84 microcontrollers by building this simple circuit. The PIC16C84 is a relatively recent addition to Microchip Technology Incorporated's range of microcontrollers (for which they coined the name Peripheral Interface Controllers or PICs). The 16C84 is particularly interesting because its program memory is implemented in EEPROM technology. This gives the 16C84 a marked advantage over EPROM microcontrollers (even other PICs) during the prototyping stages of a project simply because it can be reprogrammed instantly (or nearly so - it takes about 20 seconds). The 16C84 can be programmed in a serial mode which requires very few connections between the chip and programmer. This is the approach adopted for this project (despite being connected to the PC via a parallel port, the PIC is actually programmed in serial mode). Together with this text you should have received the file pp.asc, which is the schematic for the programmer. Although this circuit will do the job, you might like to modify it in various ways. For example: I find it useful to use LEDs to show when VDD and Vpp are applied to the 16C84; the two unused sections of the 4066 can be used to isolate RB6 and RB7; the 4066 can be replaced by two transistors and a few resistors. Provided your circuit is compatible with the one shown in pp.asc, then the software provided should still work. The schematic specifies 13.8V for the programming voltage - I use a CB power supply - however, 12V should be fine, and in many PCs this can be obtained from a spare floppy-disk power lead. The hardware can be attached to any available parallel port provided it is at one of the standard port addresses. The file, pp.c, is Turbo-C source for some no-frills software to control the programmer hardware. As an alternative I have also included a Qbasic program, pp.bas, which is basically a hand translation of the C source. Read the comments in the programs for some instructions on their use. The file pp.exe, if it has been included with this distribution, is an executable version of pp.c; although this has been checked for viruses, you must remember that you run this at your own risk - if you can, compile the program again or use Qbasic. The C source makes use of a few functions that might only be available in Turbo-C - they are delay(), peek() and getch(); if you need to modify the source for your compiler, please let me know. In any case, if you decide to build the programmer, please let me know how you get on. Thanks to Charles Manning and Adrian Godwin for advice on previous versions of the hardware.