Paul's 8051 Microcontroller Family
Tools, Projects and Free Code Offerings


Contents:


Mailing ListNEW!

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.

Please enter your email address:

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

Note: I will be without internet access from about the middle of October to the middle of December. These web pages won't be changing and nothing will be sent to the names on this list. If you fill out this form now, the earliest a message could arrive is approx Dec 20th.


AS31 Assembler

This free program was originally written by Ken Stauffer, University of Calgary. This modified version includes some small fixes and the addition of Intel HEX format output for compatibility with my PAULMON debugger and most EPROM programmers.

Though I often use the Pseudo-Sam Assembler, this free assembler should be able to assemble all of the code examples found here. If you have difficulty using it with any of my code, let me know.

The AS31 documentation, derived from the original as31 man page is now available in html format. It still looks and feels like a unix man page, unfortunately.

This new distribution of AS31, the MCS-51(tm) family assembler, includes a linux binary, .c and .h files produced from yacc (for those who don't have a compatible yacc tool), a some object code produced by the assembler which can be used to check its output once installed, and an updated README file.

If you have a dos (16 bit) compiler and can compile the source, I'd be happy to add your compiled msdos version to this page. I only have gcc for linux (and on other unix platforms), so this 32 bit version is the best I can do. Apparantly it's unhappy about some TSRs and device drivers, but it worked when I tried it on a msdos machine.


PAULMON 8051 Family Monitor/Debugger

PAULMON is a user-friendly 8051 family monitor. It allows you to download your assembler's Intel HEX output via the built-in UART. It also features a disassembler, memory dump, memory editing, and single-step program execution. It is very easy to use and together with an 8051 family assember, 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.

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 was planned to be released as PAULMON2, and very well may still be, if I ever get some extra time to work on it.

You can customize PAULMON1. This form lets you specify the default location of your system's RAM memory, as well as setting up the baud rate so you won't be bothered by the automatic baud rate detection.


Example Low-Cost 8051 Development Board Design

In order to use PAULMON or other 8051 family monitors, a development board is required. Here is a simple design that works.


8051 Code Library

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

still working on these... maybe you would like to make a suggestion about which one I should do next when I get some time? All this code is written and pretty well tested, the only thing that's vapor is the html wrapping.

I've received some contributed works and email regarding other web sites, but I just haven't had time to look at them in detail. Rather than let them sit, this directory ought to get the at least a plaintext version on-line until I have some more time.


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 about $3.30(US) from Marshall in single piece quantities.

Free! Maybe you can qualify for a Free Sample. It probably doesn't hurt to ask. They gave me a free sample which I used to develop this in-circuit programmer. Since then I've bought about 10 more chips at $3.30(US) each. I think I even told them I was from a university and wouldn't be producing any commercial products!

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.


Paul's 8051 Tools, Projects and Free Code Offerings; Paul Stoffregen
http://www.ece.orst.edu/~paul/8051-goodies/goodies-index.html
Last updated: 11 Oct 1995
Status: atmel icp in beta, missing docs for code, paulmon2 still alpha.
Suggestions, comments, criticisms, things you want?? <paul@ece.orst.edu>
Return to Paul's Technical Projects