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.