skip navigational linksPJRC
Shopping Cart Download Website
Home Products Teensy Blog Forum
You are here: 8051 Tools Main Page

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

Paul's 8051 Tools, Projects and Free Code

Mailing List

If you'd like to receive announcements of new additions to this site, updates and changes, and new versions of the various pieces of code; just fill in this very simple form. I rarely send announcements out, so you won't get flooded with messages.

Please enter your email address:

This form is optional... you do not need to submit this form to access any of the material below.

AS31 Assembler & SDCC C Compiler

AS31 is a free 8051 assembler originally written by Ken Stauffer. Versions of AS31 found here include important bug fixes and added features, such as standard intel-hex output format for use with PAULMON2 and EPROM programmers. AS31 is a good tool for building small 8051-based projects that are written in 100% 8051 assembly language.

SDCC is a free C compiler written by Sandeep Dutta, Micheal Hope, Alan Baldwin, John Hartman, Dmitry S. Obukhov, Jans J Boehm, Alan J Demers, Jean Loius-VERN, Daniel Drotos, Kevin Vigor, Johan Knol, Scott Dattalo, Karl Bongers, and others. More details are available at the official SDCC web site. The SDCC available here, with "-pj#" added to the version number, is a modified version that includes some additions to better support the 8051 developement boards available at this site.

GNU Make is written by Richard Stallman and Roland McGrath, as part of the Free Software Foundation's GNU's Not Unix project.

linux versionLinux Download and Installation Instructions

windows versionWindows Download and Installation Instructions


SDCC and GNU Make are Free Software provided under the GNU General Public License (GPL). AS31 is also Free Software, provided under the BSD license. The standard C libraries provided with SDCC are covered by the terms and conditions of the GNU Lesser General Public License (LGPL).

SDCC, AS31, and Gnu Make are distributed in the hope that they will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

A copy of the old as31 page is still available.

PAULMON 8051 Family Monitor/Debugger

PAULMON is a user-friendly 8051 family monitor, intended for use in a single board computer like the development board below. By placing PAULMON in the board's EPROM, the board will "boot-up" to a friendly menu-driven monitor which allows you to download your programs to RAM and run them, which is much faster and easier than reprogramming the EPROM. PAULMON also provides several features to help you debug your programs, including a disassembler and single-step program execution.

It is very easy to use and together with an 8051 family assembler, such as the one above, it provides a very low-cost 8051 development system. PAULMON is in the public domain. You may use pieces of the code in your own programs and even incorporate the code into your own commercial products, if you wish.

Download PAULMON2 Source or Object Code. Nearly everything is improved and several new features have been added... generally much better than version 1, even in the beta versions. Documentation for PAULMON2 is available on-line.

PAULMON1 was originally developed in the Fall of 1991 in about four weeks. The code has remained fixed, but my own needs have changed from project to project over the years. These changes, additional features, plus a major overhaul of the existing code is finally available as PAULMON2.

Low-Cost 8051 Development Board Design

This 8051 development board provides an easy and low-cost way to develop projects based on the 8051 microcontroller, without the need to purchase any other equipment, such as EPROM programmers or emulators.

Circuit Board Photo
Figure 1: 8051 Development Board, Rev 4, With 16x2 LCD

Important Features:

  • PAULMON2 v2.1 Monitor, easy to learn and use. All PAULMON2 source code is available for free download, and may be used without any restrictions, even for copy-and-paste into your own programs.
  • Flash ROM for non-volatile storage of downloaded programs, to allow the board to permanently run the downloaded program, without the PC computer. No EPROM programmer is needed to make the board permanently run your application. The Flash ROM can also be used for data logging.
  • Two serial port connectors w/ on-board mux, allowing easier development of applications which require the serial port
  • 32 I/O Signals, and 8 Bit Bus signals, clearly labeled on the board
  • Large prototype area to add custom circuits

The older versions are still on line: Rev 3 (2001) Rev 2 (1997), and Rev 1 (1992). Parts for these boards are no longer available.

8051 Code Library

I've written quite a lot of 8051 code in the last few years. Here are some free bits and pieces of code that may be useful, along with some minimal documentation.

useless little icon These 8051 code examples are distributed in the hope that they will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

Paul's Code Library

All of these are in the public domain.

Contributed Works

Refer to the author's comments for license details, if any.

Atmel 89C2051 in-circuit programmer

The Atmel 89C2051 is a 20 pin version of the popular 8051 microcontroller. It's got only 2k of built-in program memory, but it's Flash ROM, so you can easily reprogram the chip without the UV erasure step. This really cool Atmel version has all of the normal 128 bytes of ram (unlike some other low-cost 20 pin 8051 family members) and they even left the built-in UART built-in. It's got some other features, but best of all, it costs only about $5(US) from Marshall in single piece quantities. Please keep in mind that neither I nor Oregon State University represent Atmel or Marshall.

I have designed and built a simple programmer for this cool part which can reprogram it in-circuit. You place the 89C2051 in this board, and connect the board to your project's 20 pin socket with a ribbon cable. You can download code to the programmer, reprogram the Atmel chip, and then place the chip back into the circuit. Since it's Flash ROM, no UV erase step is required. You can reprogram and test your code without moving the chip between sockets. As well, the programmer supports an "echo-thru" mode, where the 89C2051's UART output is echoed to the terminal controlling the 89C2051 in-circuit programmer, but only while the 89C2051 is running in-circuit.

To get started now, the design is quite similar to the development board example above, with the addition of the following chips: 74HC00, CD4007, and four CD4066. The three unused AND gates in that example are used here. Two NPN and one PNP small-signal transistors are needed, as well as a 12 volt power supply for the programming voltage and 4000 series logic. Only one of the 82C55's is used, but one 82C55 is required. BETA Version 0.004 is now available, also in ZIP format. As well, BETA Version 0.003 is still available, but 0.004 is much easier to use.

Someday more reasonable documentation and a schematic of the required hardware will appear. For now, this beta release schematic is available for those who want to try to add the hardware support to an existing development board.

Other Resources

Paul's 8051 Tools, Projects and Free Code Offerings; Paul Stoffregen
Last updated: February 24, 2005
Status: Pretty good, atmel icp in beta, missing some docs for code.
Suggestions, comments, criticisms, things you want?? <>