skip navigational linksPJRC
Shopping Cart Checkout Shipping Cost Download Website
Home Products Teensy Blog Forum
You are here: 8051 Tools PAULMON Monitor Version 1 Introduction

PJRC Store
8051 Board, $79
LCD 128x64 Pixel, $29
LCD 16x2 Char, $14
Serial Cable, $5
9 Volt Power, $6
More Components...
8051 Tools
Main Page
Development Board
Code Library
89C2051 Programmer
Other Resources

Introduction To PAULMON1

Note: PAULMON2 is now available. It's a great improvement over the original version. The original code will remain available, mostly for history's sake. Please use version 2. It really does work much better, and it does a lot more.

The Basic Concept

Developing software for conventional computers usually involves editing the program, running a compiler or assembler, and then typing a command to run the executable code. For microcontrollers, things are a bit more complicated, since the system containing the microcontroller chip doesn't (usually) have the ordinary computer peripherals.

One approach is to use a simulator or emulator to "run" the 8051 object code. While a simulator has its advantages, simulation results are not the desired hardware.

Using a device programmer, one can "burn" the object code into an EPROM or Flash ROM version of the 8051, plug the chip into the board, and hope it works. If this process is lengthy, such as a UV erasure step, then this method can quickly become frustrating, even for experienced 8051 designers. It can also be difficult to debug code with this methodology.

Perhaps the best 8051 development system is a proper in-circuit emulator, which emulates the actual hardware, has the advantages of a simulator, and allows the designer to very rapidly make changes. Unfortunately, these devices are very expensive.

PAULMON offers you a low-cost 8051 development system. You connect the 8051's built-in UART to the serial port on your computer, via an RS-232 driver chip such as the MAX232. You place PAULMON1 on your board in EPROM memory, and you also connect a RAM chip to your 8051. When you apply power to your board, it will run PAULMON1, which is pretty user-friendly and can be manipulated from a standard terminal program, such as ProComm. You transmit your code to PAULMON1 via the serial port, and it will be written into the RAM memory you connected. In only a few more keystrokes, PAULMON1 jumps to your program, and you can see if it works. If it crashes, you just pull the reset line high, and try again. Of course, PAULMON1 has other features to help you debug your program.

The Disadvantages

Using PAULMON1, or another similar 8051 monitor program as your development system means you must connect memory devices to the external bus. Sixteen pins are consumed, even if your application is simple enough that it wouldn't need external memory. These pins just aren't available anymore for general purpose I/O port. As well, the WR, TxD and RxD pins of port 3 are used. If wire-wrap or point-to-point solder construction is used, connecting all of the wires for the external memory devices is time consuming.

The Advantages

However, the result is a simple and easy-to-use 8051 development system. Code changes can be tried out quickly and easily. While it cannot provide the sophisticated capabilities of an in-circuit or software based emulator, PAULMON1 does have some basic built-in capabilities that can help you troubleshoot your code. The most notable is PAULMON1's built-in handling of the UART, and the EQU template file, so you can use PAULMON1's routines, similar to the common practice of inserting "printf" statements into C code to isolate the exact location where a program "dies". When your code gets control of the processor, the built-in UART is already set up with the correct baud rate, and PAULMON1's routines can take care of the details of performing serial I/O for you, if you call them from your program.

Since it was initially written in 1991, hundreds of senior EE students at OSU have successfully used PAULMON1 to develop academic projects, including X-Y raster graphics, audio sampling and playback, robotic controls, and dozens of others. PAULMON1 has attracted interest from designers at some commerical sites as well.

PAULMON1 is in the public domain. You may copy the code and use pieces of it within your own projects. If you are developing a commerical product, you may use portions of PAULMON1's code within your product (at your own risk, of course) without royalty or concern of copyright violation.

It is my hope you'll find PAULMON1 useful. If you do use it, I'd be interested to hear about your application and your suggestions for improvements in the next version.

PAULMON1 Introduction, Paul Stoffregen
Last updated: February 24, 2005
Status: Finished.
Suggestions, comments, criticisms?? <>