PIC16f877 Monitor and Bootloader

The monitor is code that is programmed into the high program memory of the PIC. It allows two-way communication and program loading through the chip's UART, and provides real-time, in circuit software development.

This software has been running daily in my shop for about five years, with on-the-fly revisions. Since I haven't found the need to fiddle with it for several months now, I'm calling this a stable version and naming it version 1.0. If there's a version 1A.0, it will accomodate the 'A'series of this chip.

The older version of the website is contained in the file Wmonitor.zip. There are no real platform dependencies, since the code resides in the PIC. Since the new code is so much more useful, the original can be declared officially 'obsolete'.


THE HARDWARE



This is all that's needed. The MAX232A takes care of the level translation between the PC's RS232 port and the '877 TX and RX pins. I built this as a dongle for the RS232 cable, and added four long leads (Vdd,Gnd,RX,TX) that clip to the '877. That way, the hardware interface is nearly invisible while I am working on a project.

The resistor and led are for testing. The demonstration program, blink, needs leds on both RC0 and RC1. Notice that the RC6, RC7 pins are dedicated only if the usart is enabled, so they are available to user code. It's a good idea to pull the RC7(26) pin up to Vdd with 10K, to prevent noise when the interface is disconnected and the usart is enabled.


THE SOFTWARE
The monitor code has grown to a massive 768 words of bloatware, and it is structured to closely accomodate the architecture of the '877. The source is written for gpasm on a Gnu/Linux platform. Once resident in a chip, the monitor should work with any ascii terminal. As of version 1.0, all the source is posted under the terms of the GNU General Public License as published by the Free Software Foundation. The whole package is here:
jmonitor1.0.tar.gz (monitor code V1.0)
How it works: Demo session
How I've got it set up: screenshot
jmon1A.tar.gz (monitor code for 'A'series devices)

The tarball, moniteur.tar.gz is a contribution from Pierre Launay.
(pierre dot launay at ac-rennes dot fr)
It has modifications for speed and ICSP accomodation. The .log and .patch files define the changes.