Path: news1.ucsd.edu!ihnp4.ucsd.edu!usc!chi-news.cic.net!newsfeed.internetmci.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv From: russ@silicom.co.il (Russ Hersch) Newsgroups: comp.sys.intel,comp.robotics,comp.realtime,comp.lang.forth,sci.electronics,comp.answers,sci.answers,news.answers Subject: 8051 microcontroller FAQ Supersedes: <microcontroller-faq/8051_814969187@rtfm.mit.edu> Followup-To: poster Date: 8 Dec 1995 14:47:02 GMT Organization: Massachvsetts Institvte of Technology Lines: 3177 Approved: news-answers-request@MIT.EDU Expires: 22 Jan 1996 14:46:21 GMT Message-ID: <microcontroller-faq/8051_818433981@rtfm.mit.edu> NNTP-Posting-Host: bloom-picayune.mit.edu Summary: This article is a collection of information sources on the Intel 8051 family of microcontrollers (and variants). Originator: faqserv@bloom-picayune.MIT.EDU Xref: news1.ucsd.edu comp.sys.intel:52264 comp.realtime:9566 comp.lang.forth:15656 sci.electronics:160434 comp.answers:13063 sci.answers:2660 news.answers:50857 Archive-name: microcontroller-faq/8051 Posting-Frequency: monthly Last-modified: December 2, 1995 This article is a collection of information sources on the Intel 8051 family of microcontrollers (and variants). The following topics are addressed: 0) Rantings and ravings (to make the FAQ zero-based) 1) ABOUT THIS FAQ 1.1) Who put this FAQ together? 1.2) How can I contribute to this FAQ? 1.3) What newsgroups will this FAQ be posted to? 1.4) May I distribute this FAQ or post it somewhere else? 1.5) How about FAQs on other microcontrollers? 2) ABOUT THE 8051 2.1) The 8051 microcontroller 2.2) 8051 Flavors 2.3) 16-bit 8051 parts 2.4) 8051 representatives and approximate prices 2.5) Common and New 80x51 variants 2.6) Advantages realized in implementing control applications on this family of microcontrollers 2.7) Technical Questions and Answers 3) SOURCES OF INFORMATION ON THE 8051 3.1) FTP sites 3.2) Web pages 3.3) Mailing lists 3.4) BBSs 3.5) Help available! 4) 8051 PRODUCTS 4.1) Free languages and development tools 4.2) Free C compilers 4.3) Commercially available products 5) 8051 DOCUMENTATION 5.1) Periodicals 5.2) Books 5.3) Miscellaneous documentation 0) Rantings and ravings Disclaimer: Just so it is understood, the "rantings and ravings" are my rantings and raving. My readers are refined and sophisticated and would never rant or rave. I, on the other hand, sit in front of the TV in torn underwear and drink beer out of the bottle. A new section has been added to this FAQ. Section 2.7 now contains some frequently asked technical questions and give some possible answers. Submissions welcome. Dunfield has just announced version 3.14 of their development system. If you are already using this package, or are thinking about it and you want to get more information, check out the new web page and mail addresses. Dunfield Development Systems Web: http://www.dunfield.com Email: General information: info@dunfield.com Sales inquiries/Administration: sales@dunfield.com Technical inquiries/Support tech@dunfield.com Philips now has a full blown ftp site with lots of good stuff: ftp.InetBSystems.us.com /pub/Philips-MCU/bbs - contains the following directories: .../assemblers - assemblers, disassemblers, and simulators .../basic - Basic utilities and interpreters .../forth - Forth programming tools .../debuggers - monitors and debuggers .../utilities - miscellaneous information and utilities .../examples - code examples .../unsorted - new [unsorted] files .../xa - files on the new XA "16 bit 8051" /pub/Philips-MCU/archive - email archive You should all be aware of two really good books on the 8051. "The Microcontroller Idea Book" by Jan Axelson and "The 8051 Family of Microcontrollers" by Richard H. Barnett. Richard H. Barnett's book, The 8051 Family of Microcontrollers, VERY thoroughly discusses the design and implementation of controllers using the 8051. Dick says his book is "lots of meat, very little filler", but he's a bit off the mark here. What he means to say is this book is many large chunks of meat, no vegetables, and no potatoes - we are NOT talking Hamburger Helper here gang. The introduction alone contains circuits for 3 controllers (one 8085 design used as a comparison). Many hardware and softare examples are included. Everywhere you turn in this book, you'll find circuit diagrams and sample code, including complete designs for three different microcontroller projects in the last chapter. Clear and in-depth coverage of interfacing and peripheral use leaves very little to the imagination. This is a good book for both students and professionals who are trying to figure out how to start designing there own microcontroller. Experienced hobbyists will also appreciate the many examples. Novices might be overwhelmed by this book. The 8051 Family of Microcontrollers Richard H. Barnett Prentice-Hall, 1995 ISBN 0-02-306281-9 Jan Axelson's book, The Microcontroller Idea Book, is loosely based on a series of articles she wrote for ComputerCraft magazine (now the Microcomputer Journal). If you are at all familiar with her work, you already realize that you're wasting your time by reading this review and you might as well just order your copy now. This is an excellent book for hobbyists and tinkerers, as it includes complete circuit schematics and parts lists, design theory, example program listings, construction and debugging tips, and vendor listings. The example circuits and programs are based on the 8052-BASIC chip (a favorite with hobbyists due to its ease of use), and there is a lot of material on programming in BASIC52. The book is [very] useful even if you use a standard 8051 part. Lots of different interfacing ideas including: sensors, motors, LEDs, LCDs, wireless links, and a LOT more. If you are just starting out with microcontrollers, and don't have a clue where to start or what to control, this book is just what you need. As the title of the book says, it's an idea book. The Microcontroller Idea Book Jan Axelson 1994, 273 pages, $31.95 + shipping Lakeview Research, 2209 Winnebago St., Madison, WI 53704 (608)241-5824 Email: janaxel@alo.com or 71163.3555@compuserve.com Thanks to Norm Tyler for the following... The newsgroup comp.robotics has been split. The fun stuff is at comp.robotics.misc and the eggheads are at comp.robotics.research. Applied Digital Research of New Zealand is making a nice 8051 simulator available. PDS51 is available on their web site at: http://www.he.net/~adr Clive Smith, DSP Consultant at Thinklabs Inc. has this to contribute: My experience with the Keil C51 COmplier was excellent. As a die-hard assembler programmer, I was skeptical as to whether the compiler could do much of a job producing optimized code. In most cases it produced as good or better code than a human, being better in situations where a human assembly coder would have saved registers, the compiler keeps even better track of temporary variables, so it optimizes. I expected to have to write some assembler code, but found that even for interrupt isr's the compiler was just fine. So if there is any way to endorse this product in the FAQ, or add my comments, please do so. <Clive is talking here specifically about the Keil compiler, which has an excellent reputation. However, the code produced by many of the excellent compilers today, is remarkably efficient. Makes you think twice about breaking your head over assembly code.> Thanks to Jens Holm in Denmark for the following: I am one of the founders of an amateur-based electronic network specializing in electronics. Most of the BBS's in this network have a few things or more about the 8051 and compatibles. My BBS can be reached at +45-86-510356. It is located in Denmark, but our small network covers most of the industrial part of Europe. I am willing to distribute every shareware and freeware software which relates to electronics. This might be useful for shareware writers who want their software widely distributed. For distribution, please email me at jholm@bjarke.nrg.dtu.dk or at Jens.holm@asgaard.dk. Since both are gated adresses, uuencoded or other file transport don't work too well, but contact me, and we can arrange something. Take care, Uncle Russ 1) ABOUT THIS FAQ 1.1) Who put this FAQ together? I was prompted to put this FAQ together in response to my own frustration in searching for information, and to the constant occurrence of requests for information on this subject in various newsgroups. Hopefully others won't need to go through what I did. Normally, I spend all day programming in assembler on an IBM PC. With my hobbyist hat on I decided to try my hand at a little microcontroller project design. When it came time to start, I had no idea what to do. I had nothing to start with - no assembler, no programming language, no simulator. I cobbled together a simulator to help me learn about the workings of the chip. It's not being made available to the public since I'm afraid the simulator isn't very good. It was for my own use, so the user interface (there is none) really sucks eggs. I decided to search the net for information on the 8051. This list was compiled the hard way, logging onto every anonymous ftp site I could find and looking around. I also used Archie, other FAQs and lists, and every reference to the 8051 that appeared in the various news groups. It took a long time till stuff finally started popping up. I saved all of my notes and the result was the first version of this FAQ. Responses have been poured in, and the result is a much more complete and thorough FAQ. 1.2) How can I contribute to this list? I please ask that if you have any suggestions or additions, or you would like to correct any of the information contained herein, please send me a note. My Email address is: russ@silicom.co.il sibit@datasrv.co.il My Snail-Mail address is: Russ Hersch HaVradim 11 Ginot Shomron ISRAEL The list of individuals who have sent suggestions and encouragement has finally overflowed. I hope it suffices to say "Thank you to all who have contributed to this FAQ - we all appreciate it." Special thanks to recent contributors: Ross McMillan (Applied Digital Research Ltd.) Jan Axelson Richard Barnett Clive Smith Norm Tyler Dave Dunfield (Dunfield Development Systems) I hope that those of you who know of interesting items for the 8051 will share with everyone by contributing to this list. A good amount of stuff is turning up thanks to everyone's help. If you are a manufacturer and have an anonymous ftp site or BBS available that supports the 8051, please let me know by EMail so that I can add it to this FAQ. Also, please feel free to update me on new products. 1.3) What newsgroups will this FAQ be posted to? This FAQ will be posted to the following newsgroups: comp.sys.intel comp.realtime comp.robotics comp.lang.forth sci.electronics These newsgroups often contain discussions, announcements, or information on the 8051. Check them out from time to time. The schedule for posting will be once a month. I can't promise that it will be on time, but I hope to post it on the 26th of each month. You might also want to check out the following newsgroups, since they quite frequently have discussions about the 8051 and other microcontrollers: comp.arch.embedded alt.comp.hardware.homebuilt A bit farther afield, but still of possible interest: comp.lang.misc comp.ai.fuzzy comp.dsp sci.engr.control sci.engr.semiconductors 1.4) May I post this FAQ to my local BBS? I am putting no restrictions on the use of this FAQ except - It must be distributed in its entirety with the copyright notice, and no financial gain may be realized from it. After all, I have spent, and continue to spend, a lot of time on this. The only thing that I intend to gain from it is more information on the 8051, and getting to know my fellow 8051 groupies better. For this reason I have appended a copyright statement to the end of this FAQ. I feel pretty silly doing this, but I just want to protect myself. The copyright does not limit the use of this list for noncommercial purposes. I hereby give my permission to one and all to pass this list around and post it wherever you want - as long as it is not for financial gain. Thank you. 1.5) How about FAQs on other microcontrollers? If anyone wishes to start a FAQ on another microcontroller, please feel free to copy the format of this FAQ - I don't intend on copyrighting the look and feel ;-). With a common format, we will all benefit when trying to find information on a particular microcontroller. Other Microcontroller FAQs Subject: PIC microcontrollers Newsgroups: comp.realtime comp.robotics sci.electronics Maintainer: Tom Kellett Email: Tom@takdsign.demon.co.uk Subject: 68hc11 microcontrollers Newsgroups: comp.realtime comp.robotics sci.electronics Archive: rtfm.mit.edu : <plus all mirror sites> /pub/usenet/comp.answers/microcontroller-faq/68hc11 /pub/usenet/sci.answers/microcontroller-faq/68hc11 /pub/usenet/news.answers/microcontroller-faq/68hc11 Maintainer: Russ Hersch Email: russ@silicom.co.il sibit@datasrv.co.il Subject: Microcontroller primer and FAQ Newsgroups: comp.sys.intel comp.arch.embedded comp.robotics sci.electronics alt.comp.hardware.homebuilt Archive: rtfm.mit.edu : <plus all mirror sites> /pub/usenet/comp.answers/microcontroller-faq/primer /pub/usenet/sci.answers/microcontroller-faq/primer /pub/usenet/news.answers/microcontroller-faq/primer Maintainer: Russ Hersch Email: russ@silicom.co.il sibit@datasrv.co.il Additional FAQs of interest Subject: I2C protocol Newsgroups: sci.electronics alt.hardware.homebuilt comp.robotics comp.protocols.misc. Comments: The I2C bus is a simple 2 wire serial interface developed by Philips. A number of 8051 variants as well as several peripherals include I2C support. Maintainer: Vincent Himpe Email: Vincent.Himpe@ping.be Subject: Robotics Newsgroups: comp.robotics Maintainer: Kevin Dowling (412)268-8830 Email: nivek@ri.cmu.edu Smail: Carnegie Mellon University The Robotics Institute Pittsburgh, PA 15213 Subject: Electronics Newsgroups: sci.electronics Comments: There are a number of FAQs available in this newsgroup on various subjects. Among some of the subjects covered are: LCDs, stepper motors, etc. FAQ subject: Real-time Newsgroups: comp.realtime, comp.answers, news.answers Archive: rtfm.mit.edu : pub/usenet/comp.realtime Maintainer: Mark Linimon Lonesome Dove Computing Services Roanoke, Virginia Email: linimon@nominil.lonesome.com. Subject: Motorola 68K microprocessor line Newsgroups: comp.sys.m68k Comments: without a doubt, one of the finest FAQs ever written (well, of course Bob paid me to say this ;-) Archive: bode.ee.ualberta.ca : pub/motorola/general ftp.luth.se : /pub/misc/motorola/faq file name of archive is m68kfaq?.zip (? is version) Maintainer: Robert Boys - Ontario, Canada Email: r.boys@genie.geis.com or fboys@uoguelph.ca For more detailed information on various 8051 microcontroller parts, see the article posted to comp.robotics and sci.electronics which provides a tabular cross reference of features and pin counts on a wide range of microcontrollers (including the 8051 family). This list was compiled and is being maintained by Roger Nelson <rnelson@wsuaix.csc.wsu.edu>. For more information on various microcontrollers and their features, refer to the Microcontroller primer and FAQ listed above. 2) ABOUT THE 8051 2.1) The 8051 microcontroller The 8051 is an 8 bit microcontroller originally developed by Intel in 1980. It is the world's most popular microcontroller core, made by many independent manufacturers (truly multi-sourced). There were 126 million 8051s (and variants) shipped in 1993!! A typical 8051 contains: - CPU with boolean processor - 5 or 6 interrupts: 2 are external 2 priority levels - 2 or 3 16-bit timer/counters - programmable full-duplex serial port (baud rate provided by one of the timers) - 32 I/O lines (four 8-bit ports) - RAM - ROM/EPROM in some models The 8051 architecture is a tad bizarre, but then so are the architectures of most microcontrollers due to their specialization (check out the PIC for creativity). One vexing problem with the 8051 is its very non-orthogonal instruction set - especially the restrictions on accessing the different address spaces. However, after some time programming the chip, you can get used to it - maybe even appreciate it. One strong point of the 8051 is the way it handles interrupts. Vectoring to fixed 8-byte areas is convenient and efficient. Most interrupt routines are very short (or at least they should be), and generally can fit into the 8-byte area. Of course if your interrupt routine is longer, you can still jump to the appropriate routine from within the 8 byte interrupt region. The 8051 instruction set is optimized for the one-bit operations so often desired in real-world, real-time control applications. The boolean processor provides direct support for bit manipulation. This leads to more efficient programs that need to deal with binary input and output conditions inherent in digital-control problems. Bit addressing can be used for test pin monitoring or program control flags. 2.2) 8051 Flavors The 8051 has the widest range of variants of any embedded controller on the market. The smallest device is the Atmel 89c1051, a 20 Pin FLASH variant with 2 timers, UART, 20mA. The fastest parts are from Dallas, with performance close to 10 MIPS! The most powerful chip is the Siemens 80C517A, with 32 Bit ALU, 2 UARTS, 2K RAM, PLCC84 package, 8 x 16 Bit PWMs, and other features. Among the major manufacturers are: AMD Enhanced 8051 parts (no longer producing 80x51 parts) Atmel FLASH and semi-custom parts Dallas Battery backed, program download, and fastest variants Intel 8051 through 80c51gb / 80c51sl Matra 80c154, low voltage static variants OKI 80c154, mask parts Philips 87c748 thru 89c588 - more variants than anyone else Siemens 80c501 through 80c517a, and SIECO cores SSI 80x52, 2 x HDLC variant for MODEM use Advanced Micro Devices (AMD) AMD was one of the first manufacturers of enhanced variants including such features as: dual data pointers, slave interface with arbitration unit, dual port RAM, FIFO buffers, and others. They are now out of the 8051 business. Atmel The smallest current device is the ATMEL 89c1051, a 20 Pin FLASH variant with 2 timers, UART, 20mA. ATMEL was the first with standard pinout FLASH, and with more program cycles than other custom pinout FLASH. These parts compete with OTP and MASK product on price, but eliminate inventory problems and the hidden costs of OTP development. This will put real pressure on "vanilla" micros like PIC and ST6. Dallas Soft Microcontrollers - DS5000(T), DS5001(T), DS2250(T) The Dallas Soft Microcontrollers have standard 8051 cores with on-chip non-volatile RAM instead of ROM. This gives the user the ability to easily alter the system and is perfect for data logging. These processors are available in both chip and module solutions. Among the features included in this family of products: - on-chip non-volatile RAM - loader in ROM for downloading programs (eliminates the hassle of EPROM erase/program/install cycle) - built in real time clock option - watchdog timer - software security (program and data encryption) The DS500x is a standard 40 pin DIP package (well, mostly standard, it is really a BOX which is about double the height of a normal chip). The DS225x is a SIP version which is functionally identical to the DS5000 but usually a bit less expensive. The nice thing about having the RAM on-chip, is that the I/O ports are unaffected. When the RAM is configured as CODE memory, the DS5000 behaves exactly as a single-chip 8051. The NV-RAM is static with a built-in lithium battery, and has no limitations on the number of writes. You can download your code as many times as you like without damaging the device. The DS5000 also includes a loader in ROM, which permits you to bootstrap code into the RAM to get underway. The loader and on-chip RAM have an encryption feature with which you can protect your code from being read back from the device if you wish. Dallas High-Speed Micros - DS80c320, DS87c520, DS87c530 Real barn-burners - performance up to 10 MIPS! Dallas was the first to speed up the core. Wasted clock and memory cycles have been removed using a redesigned processor core. As a result, every 8051 instruction is executed up to 3 times faster than the original for the same crystal speed. Clock speeds from DC to 33MHz! High performance doesn't just mean speed. High integration gives the user 2 full-duplex hardware serial ports, 13 total interrupt sources (6 external), watchdog timer, power management, power-fail reset, and other features. Intel MCS-51 Introduced in 1980, it has become the industry standard for embedded control. Intel offers a wide variety of 8051 versions with different configurations of on-board EPROM/ROM. Also low power, high integration, and specialized parts are also offered. OKI OKI makes an 85c154 piggyback - an 8751 but with an EPROM socket on top! Great with an EPROM emulator. Philips Philips has more 8051 variants than anyone else. Among the derivatives that they have: 40MHz, 24 pin skinny DIP, low voltage, quad flat pack (QFP) versions for saving board space, OTP, I2C bus, and so on. The c5xx line features high integration, with many built-in features including built-in EMI/RFI suppression. The c7xx series are very low-end, inexpensive micros. They are offered with less memory (1k, 2k, etc.) and fewer features. In fact the 83c750 sells for only $1 in very high OEM volumes. Siemens sab80c517a The 80c517a is one of the most powerful 8051 variants available. It features high clock speed (40 MHz), and high integration with 32 Bit ALU, 2 UARTS, 2K RAM, PLCC84 package, 8x16 bit PWMs, and more. Standard Microsystems Corporation SMC COM20051 The COM20051 is an integrated microcontroller and network interface which features: - high performance and low cost - based on popular 8051 architecture - drop-in replacement for 80C32 PLCC - network supports up to 255 nodes - powerful network diagnostics - maximum 512 byte packets - duplicate node ID detection - self-configuring network protocol - retains all 8051 peripherals including Serial I/O and 2 Timers - utilizes ARCNET(R) Token Bus Network Engine - requires no special emulators - 5 Mbps to 156 Kbps data rate - network interface supports RS-485, twisted pair, coaxial, and fiber optic interfaces - "receive all" mode allows any packet to be received Silicon Systems Inc. SSI73M2910/2910A The SSI73M2910 is a high performance microcontroller designed for modem and communications applications. - 8052 Compatible Instruction set. - 34 MHz Operation @ 4.5 - 5.5V - 44 MHz Operation @ 4.75 - 5.5.V (2910A) - 22 MHz Operation @ 3.3 - 5.5.V - HDLC Support Logic (Packetizer, 16 and 32 CRC, zero ID) - 24 pins for user programmable I/O ports - 8 pins programmable chip select logic or I/O for memory mapped peripherals eliminating glue logic - 3 external interrupt sources (programmable polarity) - 16 dedicated latched address pins - Multiplexed latched/address bus - Instruction cycle time identical to 8052 - Buffered oscillator (or OSC/2) output pin - 1.8432 MHz UART clock available - Bank select circuitry to support up to 128K of external program memory - 100-Lead TQFP package available for PCMCIA applications - Also available in 100-Lead QFP package 2.3) 16-bit 8051 parts A joint project between Intel and Philips Semiconductors has resulted in two new excting products - 16 bit 8051s! Due to a disagreement between the parties, they each went their separate ways. Intel developed the MCS-251, which was originally called the ZX (this name can still be found on one of the Intel slide shows). Philips came out with the eXtended Architecture (XA) line. The Intel MCS-251 is a drop-in replacement for the 8051, and is also binary compatible. The XA is more of a 16 bit micro which also happens to be source code compatible. One can argue the merits of which approach is better. Pin compatible parts allow instant performance upgrades for existing designs, and the binary compatibility truly preserves users investment in code and tools. By staying firmly in the 80x51 camp, Intel allows users transparent access to an enormous horsepower range. To further improve throughput in numerically intensive areas, users can use INTEGER, LONGINT, and FLOAT libraries written for the MCS-251. The Philips XA is not a drop-in replacement for the 8051. Binary code compatibility is nice, you can move right up to a more powerful engine without having to bust a gut (We all know the Intel binary compatible success story with their 80x86 microprocessors). But if you're working on a new design, how necessary is binary compatibility? If you're just looking for a souped up '51, Dallas already has the 320. If you need the advanced features, you'll need to recompile or rewrite your software anyhow. You'll also have to drag along some compatibility baggage with you in order to use the 16 bit operations - these are preceded by an escape code (A5H), the only instruction not used in the 8051 instruction set. With source code compatibility, you have to recompile your code (with a new set of development tools), since the instruction set has been recrafted to allow the biggest bang for the buck. This process isn't 100% transparent, but then again, binary compatibility isn't either. If you're upgrading an existing design, the 251 is probably your only reasonable choice (although you might also want to consider the Dallas 320). On new designs, you'll have a tough decision to make. Whichever path you choose to take, the 8051 will never be the same again. Intel MCS-251 The Intel MCS-251 is 100% binary and pin compatible with the 8051, but with a 5-15 times boost in horsepower. This is achieved by a six fold gain in bus cycles, and further hardware improvements to avoid wasted bus cycles. Further performance gains are possible by recoding critical sections to take advantage of the new features: powerful 8/16/32 bit instructions, flexible 8/16/32 registers, 16MB linear address space, 16-bit stack pointer, enhanced BIT manipulations, and improved control instructions. In addition to extra 16/32 bit instructions, the 251 includes 40 registers with Accumulator and Index functions overlayed as 16x8, 16x16, 10x32. Philips 8051XA By tossing compatibility out the window, Philips was able to develop a true 16 microcontroller while at the same time preserving the basic 8051 instruction set (source). The benefits of this break with tradition result in a chip that has dual 16MB address spaces (data and code), multitasking support with task protected memory segments, a separate SFR bus, fast context switching, and optimized code efficiency. Other features include: hardware divide and multiply (over 100 times faster than an 8051), 32 vectored interrupts, 16 hardware exceptions, and 16 trap instructions. 2.4) 8051 representatives and approximate prices (in USD $) There are many, many varieties of 8051 out there. This is only a small sampling of typical prices on Intel chips. 8031 (128 bytes RAM)...................................3.59 80C31 (CMOS version of previous).......................6.95 8051AH (256 bytes RAM).................................6.95 8051AHBASIC (w/Basic interpreter built in)............29.95 8751 (4K EPROM, 128 bytes RAM)........................26.95 87C51 (CMOS version of previous)......................39.95 2.5) Common and New 80x51 variants Thanks to Jim Granville of Mandeno Granville Electronics, Ltd. for this nice summary. Variant Pins Mfg RAM CODE XRAM Notes --------------------------------------------------------------------- MCS251 40 Intel 1K 16K 0 16 Bit 80x51FX Prelim 51C806 100 Siemens 256 64Kx 64b SIECO+CAN+appx 517A, faster 80C537A 84 Siemens 256 64Kx 2K ALU, 8 PWM, CaptComp 2UART, 10b A/D 80C517A 84 Siemens 256 32K 2K ALU, 8 PWM, CaptComp 2UART, 10b A/D 80537 84 Siemens 256 64Kx 0 ALU, 8 PWM, CaptComp 2UART, 8b A/D 80517 84 Siemens 256 8K 0 ALU, 8 PWM, CaptComp 2UART, 8b A/D 73D2910 100qfp SSI 256 128Kx 0 80C52+Ports+HDLC 80C535A 68 Siemens 256 64Kx 1K 515+10bA/D, 1K XRAM, BRG, OWD 80CE558 80qfp Philips 256 64Kx 768 Enhanced 80C552, Sep i2c, RSO 80C515A 68 Siemens 256 32K 1K 515+10bA/D, 1K XRAM, BRG, OWD 80535 68 Siemens 256 64Kx 0 Timer2, CaptComp, 6 ports, 8/10b A/D 80515 68 Siemens 256 8K 0 Timer2, CaptComp, 4 ports, 8b A/D 80C535 68 Siemens 256 64Kx 0 Timer2, CaptComp, 5 ports 8b A/D 80C51GB 68 Intel 256 64Kx 0 8051FA+PCA, 8b A/D, SPI 87C51GB 68 Intel 256 8K 0 8051FA+PCA, 8b A/D, SPI 80C592 68 Philips 256 64Kx 256 552-i2c+CAN+XRAM 87C592 68 Philips 256 16K 256 552-i2c+CAN+XRAM 87C598 80 Philips 256 32K 256 552-i2c+CAN+XRAM 80C552 68 Philips 256 64Kx 0 10b A/D, i2c, CaptComp, PWM 87C552 68 Philips 256 8K 0 10b A/D, i2c, CaptComp, PWM 80C562 68 Philips 256 64Kx 0 8b A/D, i2c, CaptComp, PWM 87C451 68 Philips 128 4K 0 7 Ports, 1 Handshake 80C451 68 Philips 128 64Kx 0 7 Ports, 1 Handshake 87C453 68 Philips 256 8K 0 7 Ports, 1 Handshake 83CL580 56,64 Philips 256 6K 0 LV 8052+ADC+i2c+More INTs, WDOG SABC503 44 Siemens 256 64Kx 0 80C52+8Ch, 10bA/D, BRG, WD, OWD 80C320 40 Dallas 256 64Kx 0 FAST, 2 DPTR 2 UART VRST 80C310 40 Dallas 256 64Kx 0 Simpler 80C320 e62Mhz 87C520 40 Dallas 256 16K 1K 16K OTP enhanced 80C320 80C51FX 40 Intel 256 64Kx 0 80C58i+PCA, AsRST 87C51FA 40 Intel 256 8K 0 8052+PCA, Enh Serial, Automotive 87C51FB 40 Intel 256 16K 0 8052+PCA, Enh Serial, Automotive 87C51FC 40 Intel 256 32K 0 8052+PCA, Enh Serial, Automotive 8XC51FB 40 Philips 256 16K 0 87C51FB with ALE RFI mode 87C51FXL40 Intel 256 32K 0 3v3 80C51FC 80C152JD68 Intel 256 64Kx 0 HDLC/SDLC Serial 80C152 48 Intel 256 64Kx 0 SDLC Serial 8044 40 Intel 192 64Kx 0 RUPI Serial 80C575 40 Philips 256 64Kx 0 8052+PCA, AnalogComp, WDOG, RSTLo 87C575 40 Philips 256 8K 0 8052+PCA, AnalogComp, WDOG, RSTLo 80C576 40 Philips 256 8K 0 8052+PCA, UPI, A/D, PWM, WDOG, VRSTLo 87C576 40 Philips 256 8K 0 8052+PCA, UPI, A/D, PWM, WDOG, VRSTLo SABC501 40 Siemens 256 64Kx 0 40MHz Enhanced 8052 U/D SABC502 40 Siemens 256 64Kx 256 8052+XRAM+8DP+WD+BRG+OWD 80C528 40 Philips 256 64Kx 256 8052+Wdog, XRAM 87C528 40 Philips 256 32K 256 8052+Wdog, XRAM 89CE528 44 Philips 256 32KF 256 Flash 528 87C524 40 Philips 256 16K 256 16K 87C528 80C550 40 Philips 128 4K 0 8b A/D WDog 80CL781 40 Philips 256 64Kx 0 Low Voltage 8052, More INTs, WDOG 83CL781 40 Philips 256 16K 0 Low Voltage 8052, More INTs, WDOG 80CL782 40 Philips 256 64Kx 0 Low Voltage, faster 781 89C52 40,44 Atmel 256 8KF 0 FLASH, Fast,LV 87C52 87C54 40 Intel 256 16K 0 16K 87C52i 87C58 40 Intel 256 32K 0 32K 87C52i 87C52 40 Intel 256 8K 0 8052+U/D+OscO+4Li 80C154 40 Matra 256 64Kx 0 Enhanced 8052 (also OKI) 83C154D 40 Matra 256 32K 0 Enhanced 8052 83C154 40 OKI 256 16K 0 Enhanced 8052 80C654 40 Philips 256 64Kx 0 i2c 87C652 40 Philips 256 8K 0 i2c 87C654 40 Philips 256 16K 0 i2c 83CE654 44qfp Philips 256 16K 0 i2c, low RFI 654 DS5000 40 Dallas 128 32KR 32K 80x51 Secure + NV support, BootLdr DS2250 40sim Dallas 128 32K 32K As 5000, but smarter package DS5001 80qfp Dallas 128 64Kx 64K Better 5000, + RPC + BatSw 80C851 40 Philips 128 64Kx 0 8051+256B EEPROM 83C852 6 Philips 256 6K 0 2K EEPROM SmartCard 80x51, Die, ALU 8052 40 All 256 64Kx 0 8051+Timer2 8752 40 Intel 256 8K 0 8051+Timer2 80C52 40 Siemens 256 64Kx 0 8051+Timer2, Philips, Oki, Matra 88SC54C 8 Atmel 256 64Kx 512 8052+PublicKey,prelim 80CL410 40 Philips 128 64Kx 0 Low Voltage, More INTs, i2c-UART 80CL31 40 Philips 128 64Kx 0 Low Voltage, More Ints, 80x51 80CL610 40 Philips 256 64Kx 0 Low Voltage, More INTs, i2c-UART 83CL411 40 Philips 256 64Kx 0 80CL31 with 256 RAM, No T2 89C51 40,44 Atmel 128 4KF 0 FLASH,Fast,LV 87C51 8751 40 All 128 4K 0 Core processor, UART, Tmr0, Tmr1 87C51 40 All 128 4K 0 Core processor, UART, Tmr0, Tmr1 8031 40 All 128 64Kx 0 Core processor, UART, Tmr0, Tmr1 8051 40 All 128 4K 0 Core processor, UART, Tmr0, Tmr1 80C31L 40 Matra 128 64Kx 0 Low Voltage 80x51 87C752 28 Philips 64 2KE 0 87751+ A/D, PWM 87C749 28 Philips 64 2KE 0 87C752 - i2c 87C751 24 Philips 64 2KE 0 Small size, bit i2c 87C748 24 Philips 64 2KE 0 87C751 - i2c 87C750 24 Philips 64 1KE 0 Small size, 89C2051 20 Atmel 128 2KF 0 20Pin 89C51,+AnaComp+LED 89C1051 20 Atmel 64 1KF 0 20Pin 2051 -uart,timer1 --------------- FLASH summary --------------- 80C509F 100qf Siemens 256 128KF 3K FLASH Super ClkDbled 517A 80C517AF84 Siemens 256 64KF 2K FLASH 517A 80C515AF68 Siemens 256 64KF 1K FLASH 515A 89C558 80qf Philips 256 32KF 1K effectively a FLASH 552 88SC54C 68 Atmel 256 16KFE 512 FLASH 8052+PublicKey 8KF + 8KEE 89C52 40,44 Atmel 256 8KF 0 FLASH, Fast,LV 87C52 89C51 40,44 Atmel 128 4KF 0 FLASH,Fast,LV 87C51 89C2051 20 Atmel 128 2KF 0 FLASH 20 Pin 89C51,+ AnaComp+LED 89C1051 20 Atmel 64 1KF 0 FLASH 20Pin 2051 - uart, timer1 Special - DECT Phones, imagine what you could control with this... PCA5097 100qf Philips 256 64KF 3K FLASH+CODEC+1K DSP+ADPCM 2.6) Advantages realized in implementing control applications on this family of microcontrollers Popular - readily available and widely supported, a full range of free and commercial support products is available Fast and effective - the architecture correlates closely with the problem being solved (control systems), specialized instructions mean that fewer bytes of code need to be fetched and fewer conditional jumps are processed Low cost - high level of system integration within one component, only a handful of components needed to create a working system Wide range - ONE set of tools covers the greatest horsepower range of any microcontroller family, other suppliers handle a number of DIFFERENT and INCOMPATIBLE (and often single-sourced) cores to cover the same power range as the 80x51, the 8051 provides a real cost savings in tools, training, and software support Compatibility - opcodes and binaries are the SAME for all 80x51 variants (unlike most other microcontroller families) Multi-sourced - over 12 manufacturers, hundreds of varieties, something for everyone with the security of ready availability Constant improvements - improvements in silicon/design increase speed and power annually, 16 bit models coming from several manufacturers, low cost skinny DIP models now available 2.7) Technical Questions and Answers Q: Why are ports P0 and P2 unavailable for I/O when using external memory? A: The output drivers of ports 0 and 2, and the input buffers of port 0, are used to access external memory. Port 0 outputs the low byte of the external memory address, time-multiplexed with the byte being read/written. Port 2 outputs the high byte of the external memory address when the address is 16 bits wide. Otherwise, the port 2 pins continue to emit the P2 SFR contents. Therefore, when external memory is being used, ports 0 and 2 are unavailable for their primary use as general I/O lines. Q: Is there anything I can do to use these ports for I/O when using external memory? A1: Not really. A2: If you really want to make your life miserable, you can try to use P2 for output when it isn't being used for memory access. The contents of the SFR latch for port 2 are not modified during the execution of a Data Memory fetch cycle on the Expanded Bus. If an instruction requiring a cycle on the Expanded Bus is not followed by another instruction requiring a cycle on the Expanded Bus, then the original contents of the port 2 SFR latch will appear during the next machine cycle. That is, when PSEN, RD and WR are all inactive, you can use port 2 for output (check the timing charts in the data book). The chip will emit the contents of the P2 SFR at that time. Do you REALLY want to bother with this though? A3: By including the external RAM "on-chip", the Dallas DS5000 makes these ports available for I/O. The SLIC2E from Xicor does the same thing for other 8051 parts. A4: If you really need the extra I/O ports, there are number of 8051 variants that have additional ports. Philips and Siemens are two such manufacturers that have these parts in their product lines. Q: I'm outputting a 1 to a pin on port 0, but I'm not getting a 1 out. If I use a pin on port 1 instead, it works fine. What am I doing wrong? A: Port 0 has open drain outputs. Ports 1, 2, and 3 have internal pullups. What does this mean? See the next question and answer. Q: Port 0 has open drain outputs. Ports 1, 2, and 3 have internal pullups. What does this mean, and why should I care? A: When used as outputs, all port pins will drive the state to which the associated SFR latch bit has been set. Except for port 0, which will only drive low (not high). When a 0 is written to a bit in port 0, the pin is pulled low (0). But, when a 1 is written to a bit in port 0, the pin goes into a high impedance state - or in other words, "disconnected", no value. To be able to get a 1 as output, you need an external pullup resistor to pull up the port (to 1) when the port is in its high impedence state. Typical values for pullups might be 470 ohm to drive a LED, and 4.7K or higher to drive logic circuits. C: Any port pin may be used as a general purpose input simply by writing a 1 into the associated SFR latch bit. Since ports 1, 2, and 3 have internal pull-up devices they will pull high and will source current when pulled low. When a port 0 bit is programmed for input (set to 1) it will go to a high impedance state. Q: Why is such an oddball crystal frequency of 11.0592 MHz used so often for 8051 designs. A1: 11.0592 MHz crystals are often used because it can be divided to give you exact clock rates for most of the common baud rates for the UART, especially for the higher speeds (9600, 19200). Despite the "oddball" value, these crystals are readily available and commonly used. A2: When Timer 1 is used as the baud rate generator, the baud rates in Modes 1 and 3 are determined by the Timer 1 overflow rate and the value of SMOD (PCON.7 - double speed baud rates) as follows: smod 2 Baud rate = ------ x (Timer 1 overflow rate) 32 Most typically, the timer is configured in the auto-reload mode (mode 2, high nibble of TMOD = 0100B). In this case, the baud rate is given as: smod 2 Oscillator frequency Baud rate = ------- x -------------------- 32 12 x (256 - TH1) Some typical baud rates for an 11.0592 crystal: Baud rate SMOD TH1 --------------------- 19200 1 0FDH 9600 0 0FDH 4800 0 0FAH 2400 0 0F4H 1200 0 0E8H 300 0 0A0H Another way to look at it, would be to rework the formula to give us the crystal frequency that we need for the desired baud rate: smod Minimum crystal frequency = Baud rate x 192 x 2 This gives us the minimum crystal frequency possible for the desired baud rate. The frequency can be evenly multiplied to obtain higher clock speeds. As an example, the minimum crystal frequency for 19.2K baud is: 3.6864 = 19200 x 192 x 2 (smod is 1 for 19.2K baud) 11.0592 = 3.6864 x 3 The multiplier (3) is then used to determine TH1: TH1 = 256 - 3 = 253 = 0FDH The formula can be changed to factor in the multiplier: smod Crystal frequency = Baud rate x (256 - TH1) x 192 x 2 As an example, the crystal frequency for 19.2K baud is: 11.0592 = 19200 x (256 - 0FDH) x 192 x 2 (smod is 1 for 19.2K baud) Other values can also give good results, but 11.0592 is one of the higher speed crystals that allows high baud rates. Q: How do I decrement the data pointer (DPTR)? Where did the DEC DPTR instruction go? A1: You can't decrement DPTR. Although there is an INC DPTR instruction, there is no DEC DPTR. In fact, there is no other way to change the contents of DPTR except for MOV and INC. A2: You can use the accumulator as an offset if you need to perform "calculations" on the DPTR. As an example: MOV DPTR,#9000 ; load base address into DPTR MOV A,#10 ; load desired offset MOVC A,@A+DPTR ; retrieve desired data A3: Another method would be to use indirect addressing. Instructions such as MOVX A,@Ri can address a 256 byte "page" of external RAM. The value represented by @Ri (@R0 or @R1) is emitted to Port 0, which is the low byte of the external RAM address bus. In addition, the contents of the P2 register is emitted to Port 2, which is the high byte of the external memory address bus. The indirect addressing register together with the P2 register, which specifies the "current page number", gives us a 16 bit pointer into the external memory address space. This technique can make moving data in external memory much faster than reloading DPTR every time. The indirect addressing register can be manipulated much easier than DPTR which can only be loaded and incremented. Just remember to make sure that P2 contains the proper value for the high byte of the address. Q: I'm trying to PUSH and POP the accumulator, but my assembler complains about the instruction PUSH A. What's wrong with this? A: In instructions that are accumulator specific, A is used to represent the accumulator. However, PUSH and POP have no accumulator specific forms, only direct addressing forms. Therefore, you need to specify the correct accumulator "address" - ACC. Use the instruction PUSH ACC. Q: The 8052 AH-BASIC interpreter seems to work OK when I perform simple interpreted commands. For example: READY > PRINT "HELLO" HELLO However, when I try to enter a [numbered] statement, I get an error: READY > 10 PRINT "HELLO" INVALID LINE NUMBER..!! I get the same error when I try LIST. No matter what value I set a variable to, it returns a 0. What's my problem? A: Faulty memory decoding or addressing is the most common cause for this error message. Your address decoding might also indicate that there is more memory than really exists. Go over your circuit design and inspect your wiring carefully. 3) SOURCES OF INFORMATION ON THE 8051 3.1) FTP sites The following is a list of the various anonymous ftp sites that have 8051 source code and programming languages. There are many others that are not listed here that contains bits and pieces. Usually you can find them using Archie and searching for "8051", "AS31", "ASM51", "MCS-51", "MCS51", and stuff like that. ftp.pppl.gov (formerly lyman.pppl.gov) - this is a great source of 8051 stuff /pub/8051 /pub/incoming - check this out for new untested/unsorted items ftp.funet.fi (nic.funet.fi) - this is a great one, too /pub/compilers/8051 /pub/microprocs/MCS-51 <mirror of ftp.pppl.gov> other subdirectories in /pub/microprocs include: 1802, 6805, 6811, 8048, 8096 and many other microprocessors ftp.intel.com - this ftp site is pretty good now, and getting better all the time! - send comments to: ftp-admin@intel.com /pub/mcs51 /pub/mcs51/tools - contains various development tools ftp.InetBSystems.us.com - lots of good stuff here! /pub/Philips-MCU/bbs - contains the following directories: .../assemblers - assemblers, disassemblers, and simulators .../basic - Basic utilities and interpreters .../forth - Forth programming tools .../debuggers - monitors and debuggers .../utilities - miscellaneous information and utilities .../examples - code examples .../unsorted - new [unsorted] files .../xa - files on the new XA "16 bit 8051" /pub/Philips-MCU/archive - email archive nctuccca.edu.tw - mirror of ftp.intel.com - /vendors/Intel ftp.zilker.net - /pub/philips - Philips "mini ftp site" set up by Phil Wood of Philips - lots of 8051 code and programming tools from their BBS ftp.mcc.ac.uk - this is a new 8051 ftp site - soon to be improved ftp.bsl.unsw.edu.au - new 8051 ftp site - accepting uploads info@circellar.com - Email (not ftp) - send Email to get information file on services available - all Circuit Cellar INK and BYTE related files available ftp.ee.ualberta.ca /pub/cookbook/digital - circuits of all types - prog51.zip is a programmer for the ATMEL 89C51 flash part by Werner Terreblanche ftp.luth.se /pub/languages/assembler asterix.inescn.pt - FORTH archive /pub/forth/8051 hpcsos.col.hp.com /mirrors/.hpib0/forth/8051 (mirror of asterix Forth archive) /misc/ns32k/beowulf/a-8051 /mirrors/.hpib0/forth/eForth ftp.armory.com (Steve Walz) /pub/user/rstevew/8051 /pub/user/rstevew/TB8051 /pub/user/rstevew/incoming ftp.oak.oakland.edu - has information and software for a wide range of microprocessors and microcontrollers, you may have to look around a bit 130.123.96.9 giovanni/51forth.zip ftp.kulnet.kuleuven.ac.be /pub/MCS-51/keil-demo ai.uga.edu /pub/hardware - stuff on the Philips 87C750/1/2 microcontrollers - assembler, an update for the software in the DS-750 kit, notebook of some early experiences and code - responses welcome, Michael A. Covington (mcovingt@ai.uga.edu) ftp.hte.com - HiTech Equipment Corporation's ftp site - information about their products including some sample code, a free 8051 simulator, and various things from around the net that relate to the 8051 family csd4.csd.uwm.edu - no longer supports 8051, don't even try 3.2) Web pages Automation and Process Control (Olaf Pfeiffer) - http://www.ba-karlsruhe.de/automation/home.html - http://www.ba-karlsruhe.de/automation/FAQ Archimedes Software - http://www.archimedes.com/devtools Brian Brown's 8051 web page - http://www.cit.ac.nz/smac/cbt/hwsys/i8051/default.htm - contains Brian Brown's 8051 course - lots of other good stuff Chip Directory and Chip Manufacturers (Jaap van Ganswijk) - http://www.hitex.com/chipdir (USA, California) - http://www.civil.mtu.edu/chipdir (USA, Michigan) - http://www.leg.ufrj.br/chipdir (Brasil) - http://www.xs4all.nl/~ganswijk/chipdir (The Netherlands) - http://bbs.cc.uniud.it/chipdir (Italy) Emulation Technology - http://www.emulation.com Forth, Inc. - http://www.earthlink.net/~forth - follow the links to chipFORTH, then to 8051 Gregory Pugh's homepage - http://sleepy.anest.ufl.edu/~glp/8051.html S. Joel Katz's web page - http://www.panix.com/stimpson/micro.html - information about 8051 and related microcontrollers - not much information yet, but it is increasing rapidly 8051 board level products - http://bailey2.unibase.com/local/beck04.html 8051 Home Page (Mike Miller) - http://www.ece.orst.edu/serv/8051/ - pointers to other 8051 pages - contains html copy of this FAQ Paul's 8051 Tools, Projects and Free Code - http://www.ece.orst.edu/~paul/8051-goodies/goodies-index.html - page contents: AS31 Assembler PAULMON 8051 Family Monitor/Debugger Low-Cost 8051 Development Board Designs 8051 Code Library Atmel 89C2051 in-circuit programmer Intel MCS(R) 51 Microcontroller Family - http://www.intel.com/embedded/051/index.html The 8051 microcontroller - http://www.ee.latrobe.edu.au/postgrad/steve/8051.html Philips - http://www.semiconductors.philips.com/ps/philips17.html Richard Grant's 8051 Based Vario - http://cougar.stanford.edu:7878/RGvario/vario.html - Hang-Gliding/Paragliding WWW server. The application is an 8751 based variometer (used by pilots to indicate the rate of ascent or descent). It includes schematics and assembly language source. 8051 Microcontrollers - http://www.cit.ac.nz/smac/cbt/hwsys/i8051/default.htm Standard Microsystems Corporation - http://www.smc.com Steve Merrifield's 8051 home page - http://www.ee.latrobe.edu.au/postgrad/steve/8051.html Nohau Elektronik AB - http://www.nohau.com/nohau 3.3) Mailing lists Philips-News@InetBSystems.us.com - Email (not ftp) - send Email with "subscribe" in the subject field to be put on list for newsletter Philips-archive@InetBSystems.us.com - Email (not ftp) - send Email message with the word "help" in the subject line to learn how to access the archive Philips-forum-request@InetBSystems.us.com - Email (not ftp) - send an Email message with the word "subscribe" in the subject line to participate in the forum, and receive usage instructions and guidelines Philips-Info@InetBSystems.us.com - Email (not ftp) - send Email message to get information on all of Philips Email services 3.4) BBSs The following BBSs have 8051 information: AM Research - (916)652-7117 Blue Earth Research - support for their line of microcontroller boards - (507)387-4007 Circuit Cellar, Inc. - contains code from their magazine articles and from the original Circuit Cellar articles in Byte magazine, also contains many other interesting items - GOOD STUFF HERE! - The BBS is mentioned in the masthead of each issue (on the table of contents page). Excerpts from the BBS appear in Ken Davidson's ConnecTime column in every issue with a description of how to access the system at the end of every column. - (203)871-1988 - Voice: (203)875-2751 - Fax: (203)872-2204 Crossware Products - +44 763 261716 Dallas Semiconductor - Support for their line of innovative products Dunfield Development Systems - support for their Micro-C compiler and development tools - includes a lot of nice goodies - CHECK THIS OUT! - (613) 256-6289 Electronics Now - contains code from their magazine articles - (516)293-2283 - 1200/2400, 8N1 Intel American Marketing Applications Support Bulletin Board System - 16 lines, hi-speed modems (14.4K) - Lots of useful info and files (including design examples)! - Full ANSI-BBS with color is recommended, but support for just about all terminal types is provided - (916)356-3600 (24 hours) Auto config: 1200 thru 14.4K Baud 8 data bits, no parity, 1 stop Iota Systems, Inc. - Support for their line of hardware and software products - 15 application notes which show how to hook up such things as clocks, A/D, D/A, and special chips to the 8051 - (702)831-4732 Jens Holm's electronics BBS: - one of a number of BBSs that are networked over most of the industrial part of Europe - +45-86-510356 (Denmark) - distributes all shareware and freeware software which relates to electronics - system administrator - Jens Holm jholm@bjarke.nrg.dtu.dk or Jens.holm@asgaard.dk Massilia Underground BBS (Marseille, France) - +33-91794120 - fidonet 2:323/25 - not a commercial BBS - microcontroller related stuff (assemblers, debuggers, boards, etc), some 8051 stuff - everything coming in is tested Micro Computer Control Corporation - (609)466-4117 Philips Semiconductor - Europe - support for: standard logic, programmable logic, in-car electronics (now open), 8 and 16 bit microcontrollers, I2C software, third party software, discrete semiconductors, cross assemblers (general), RF (planned) - PHIBBS is located in the Netherlands: +31-40-721102 - maximum 21600 baud / V42bis / HST/Vterbo - 24 hours a day available - Help desk: +31-40-722749 (9.00 AM - 16.00 PM CET) Philips Semiconductor - North America - support for their 8051 variants - contains many good source code items - partially mirrored on ftp.pppl.gov and nic.funet.fi - (800)451-6644 or (408)991-2406 PseudoCorp - support for their line of simulators and assemblers - (804)873-4838 Realtime Control & Forth Board (RCFB) - Forth and assembly for the 8051 - 300 through 14.4 baud - (303)278-0364 (24 hours) Systronix Inc. - support for their line of development tools - (801)487-2778 3.5) Help available! This is a new feature in the FAQ. Listed here are individuals who have expressed interest in helping others with hardware and software problems for 8051 systems. Does any one else out there think that they can help? Just let me know what your areas of specialization are and I'll add your name to the list. Thanks! Dick Barnett <barnettr@mace.cc.purdue.edu> Specializes in 8051 (core processors), 80C552, and 87C751 applications. Mark Hopkins <mark@omnifest.uwm.edu> Mark is the author of the CAS assembler and of the 8051.ZIP programs. He's now working on JOLT, a code generator with a C-like syntax. His areas of specialization include: multitasking, interrupts, basic stuff (like addressing, memory spaces), the 8052 BASIC chip, interfacing the chip with external inputs and outputs Hans Schou <chlor@biocat.ruc.dk> Hans is offering his assistance to users of the Standard Microsystems Corp. COM20051. He's not an expert, but he has some experience with it. Neville Miles <N.Miles@unsw.edu.au> Applications and programming the Intel 8051. He's also using Atmel parts if you need help with these. 4) 8051 PRODUCTS This section includes descriptions and references to free and commercial software for the 8051. FTP sites and BBSs contain many quality packages and code samples for free. For heavy duty use, you might prefer the many commercial packages that are available. With the public domain (or free) stuff, you're usually on your own. The commercial packages usually provide extensive documentation and support. 4.1) Free languages and development tools The following is a list of the languages and development tools that I could find on the net. Nearly all of them include source code, however not all are public domain. Assembler Program: ML-ASM51.ZIP Description: MetaLink's 8051 family macro assembler Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Program: A51.ZIP Description: PseudoSam 8051 Cross Assembler Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Program: AS31.ZIP Description: C source for an 8051 assembler, and a simple monitor Author: Ken Stauffer Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs ftp.uu.net oak.oakland.edu : /pub/msdos/crossasm/as31.zip many other locations (use Archie to find) Program: CUG292WK.ZIP Description: C source for a cross assembler, includes 8051 Author: Alan R. Baldwin Location: oak.oakland.edu : /pub/msdos/crossasm pc.usl.edu : /pub/msdos/systools many other locations (use Archie to find) Program: Frankenstein Description: C source for a cross assembler, includes 8051 Author: Mark Zenier Location: ftp.njit.edu : /pub/msdos/frankasm/FRANKASM.ZOO lth.se : /pub/netnews/alt.sources/volume90/dec ftp.uni-kl.de : /pub1/unix/languages/frankenstein.tar.Z many other locations (use Archie to find) Program: CAS 8051 assembler Description: Experimental one-pass assembler for the 8051 with C-like syntax. Includes assembler, linker and disassembler. Author: Mark Hopkins Location: ftp.pppl.gov : /pub/8051/assem ftp.funet.fi : /pub/microprocs/MCS-51/csd4-archive/assem Program: a51 Description: Portable cross assembler (source in C), other processors available Author: William C. Colley, III Location: hpcsos.col.hp.com : /misc/ns32k/beowulf/a-8051 Program: TASM Description: Table driven cross-assembler for DOS, supports many different microcontrollers and microprocessors Author: Speech Technology Inc. Location: various different places Program: HASM, HSIM Description: A configurable Makroassembler/Simulator Comment: Only for private, educational, and evaluation use Only available in German Author: Dipl.- Ing. H.P. Hohe Location: ftp.ix.de:pub/elrad/022/hasm18.zip ftp.ix.de:pub/elrad/022/hasm18.txt and mirrors of ftp.ix.de Program: as Description: Portable cross assembler (source in C), other processors available (TMS, PIC, DSP5600, 68hc11) Comments: German language only Author: Alfred Juelich Location: ftp.uni-stuttgart.de : pub/systems/pc/lang/as Basic Program: BASIC52.ZIP Description: Source files for original BASIC 52 interpreter Author: Intel Corporation, Embedded Controller Operations Location: ftp.intel.com : /pub/mcs51 Program: BAS051.ZIP Description: Converts IBM BASIC to 8051 assembly (compiler) Author: Winefred Washington Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/8051/signetics-bbs Program: BASIC-52.ZIP Description: Source files for BASIC-52 interpreter Author: Intel Corporation, Embedded Controller Operations Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Program: BASIC31.ZIP Description: BASIC-52 interpreter for 8031/8051 in external EPROM Author: Intel w/ changes by Dan Karmann Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Program: TB-51.ZIP Description: TinyBASIC for 8031 Author: JHW (from Intel InSite library) w/ fixes by Tom Schotland Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Program: TB51ML23.ZIP Description: MetaLink ASM compatible tiny BASIC Author: adapted for MetaLink assembler by Jim Lum Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Forth Program: EFORTH51.ZIP Description: eFORTH environment for the 8051 Author: C. H. Ting Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs asterix.inescn.pt : /pub/forth/8051 hpcsos.col.hp.com : /mirrors/.hpib0/forth/eForth Program: FORTH51.ZIP (FORTH86.ZIP used as host) Description: FORTH development system for 8051 with PC host Author: William H. Payne, the author of "Embedded Controller Forth for the 8051 Family" Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs asterix.inescn.pt : /pub/forth/8051 hpcsos.col.hp.com : /mirrors/.hpib0/forth/8051 Program: XD8051.ZIP Description: Development environment for use with F-PC Forth Author: Paulo A.D. Ferreira Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs Program: 51FORTH.ZIP Description: Subroutine threaded Forth Author: Scott Gehmlich Location: hpcsos.col.hp.com : /mirrors/.hpib0/forth/8051 130.123.96.9 : /giovanni/51forth.zip Program: FORTH552.ZIP Description: A Non-Standard Forth System for the Signetics 80C552 Author: Alberto Pasquale Location: asterix.inescn.pt : /pub/forth/8051 hpcsos.col.hp.com : /mirrors/.hpib0/forth/8051 Program: CamelForth/51 Description: ANSI Standard Forth for the 8051 family Comments: This is an ALPHA TEST version Author: Brad Rodriquez email: bj@genie.com amateur packet radio: VE3RHJ@VE3IJD.#CON.ON.CAN.NA Location: taygeta.oc.nps.navy.mil : pub/Forth/Camel (Be advised that there's also a Z80 CamelForth in the same directory.) Program: 8051 eForth Description: Public Domain optimized eForth for 8051 and 68HC11, written in native UCASM assemblers. Comments: Most of the documentation is in German. Supplied with EFTERM terminal emulator. Author: W. Schemmer Location: Available for $25 from: Offete Enterprises, 1306 South B Street San Mateo CA 94402 (415)574-8250 Development systems Program: 8051.zip Description: Many development tools including: debugger, monitor, LCD and stepper moter driver, communications, host client, and much more. This is a great collection of tools. Author: Mark Hopkins Location: ftp.pppl.gov : /pub/8051/signetics-bbs ftp.funet.fi : /pub/microprocs/MCS-51/csd4-archive Program: RISM and IECM51.EXE compatible host system Description: RISM is a reduced instruction set monitor and IECM51.EXE is its compatible host system for a PC Comments: These two programs together constitute a bare-bones method of developing 80C51 system code without an emulator. RISM51X is installed in the target system and connected to a host PC system through a serial port. The host PC runs the debugger IECM51.EXE. Once the system has been debugged, RISM can be removed and the target can be run in stand-alone mode. Author: Intel Location: ftp.intel.com : /pub/mcs51/tools Program: ApBUILDER 2.0 Description: Development system for the Intel MCS-51(R) family (also for the MCS-96(R) family, 80x186, and 80x386 embedded microcontrollers). Comments: Requires Windows 3.1 APBUILDR.TXT - description in ASCII APBDISK1.EXE - binary self-extracting file for disk 1 APBDISK2.EXE - binary self-extracting file for disk 2 Author: Intel Location: ftp.intel.com : /pub/mcs51 and /pub/mcs96 Program: FXDSMAN.EXE Description: 8xC51Fx data sheets and manual in Windows 3.1 hypertext style Comments: binary self-extracting file for one diskette Author: Intel Location: ftp.intel.com : /pub/mcs51/80c51 Program: sim51d Description: Shareware Simulator in German DM 50 to register for full version Author: Werner Hennig-Roleff Location: ftp.pppl.gov : /pub/8051/hannover Program: PDS51 Description: Simulator for 8051 Comments: This is a shareware version of Applied Digital's software for their hardware emulator. It runs in simulator mode when running without the emulator. Author: Applied Digital Research, New Zealand Location: http://www.he.net/~adr Program: sim552vq.zip Description: 8051/80C552 simulator (Freeware) Comments: Program is capable of reading .HEX and .S19 records, or saving memory to a file. It supports both code and data. Written in Turbo Pascal for XT and upwards. Author: Brian Brown Location: cscnt.cit.ac.nz : /pub/intel/sim552v1.zip Program: HASM, HSIM Description: A configurable Makroassembler/Simulator Comments: Only available in German Author: Dipl.- Ing. H.P. Hohe Copyright: Only private , Education and evalutation use Location: ftp.ix.de:pub/elrad/022/hasm18.zip ftp.ix.de:pub/elrad/022/hasm18.txt and mirrors of ftp.ix.de Real-Time Operating Systems (RTOS) Program: TERSE Description: - Signature-Scheduled dataflow operating system (RTOS) developed for embedded single-processor and distributed microcontroller systems. Easy to use, very compact, and encourages totally deterministic and safe performance. - The first implementation is for the 8051 family, and occupies from 260 to 450 bytes, the latter offering network support. - public domain Comments: Also available is a new type of "terse-Case" development methodology, particularly suited to embedded distributed systems. Author: Barry Kauler Department of C & C Engineering Edith Cowan University, Joondalup Drive Joondalup, WA 6027, Australia. Email: b.kauler@cowan.edu.au Location: WWW - ftp://scorpion.cowan.edu.au/pub/terse/terse.htm 4.2) Free C compilers Several commercial C compilers have evaluation versions available. These are not too useful (even for hobbyist projects) since they usually don't include libraries. However, they do afford the user the chance to inspect the quality of the code generated. Among those currently available: An evaluation version of COMPASS is available from Production Language Systems. This package includes a C compiler, assembler, debugger, simulator, etc. and runs under Windows 3.1. This package can be downloaded from the IntelC Compuserve forum or from their BBS: (817)599-8363 Enter YY8051 as password for first-time login The Keil C compiler evaluation package is available as a freeware C compiler. It can be downloaded from: ftp.kulnet.kuleuven.ac.be : /pub/MCS-51/keil-demo Thanks to Christofe Huygens for setting this up. You can now get the freeware version of the Hi-Tech C compiler from their own (rather modest) ftp site: ftp.hitech.com.au. They are also working on a Web setup too, but it's not ready yet. It will be the expected www.hitech.com.au when it's up. Mark Hopkins has changed the goal of his compiler project. Instead of implementing a C compiler, he is working on an implementation of JOLT for the '51. Its main characteristic is the complete and seamless integration of functional and imperative programming into one language. The language envisioned essentially has a C syntax and could probably be mistaken as being a dialect of C. More on this as it develops. However, the good news is that Ahmad Ibrahim informs me that he's well on his way to putting together a C compiler which will be released as freeware. The initial offering will generate code only for the 8051. By making the compiler table driven, it will be adaptable for other processors. Other features are in the works including a simulator/debugger. In most cases, it makes more sense to invest a bit, and get something serious. Also, by buying a commercial package, you have the advantage of having the documentation, and being able to get technical support. There are two low-cost C compilers currently available for 8051 development. I've been using the Dunfield Development System, and its really quite nice. I've also heard many good things about it from others. For $100 you get a near ANSI-C compiler, run-time library with source, assembler, ROM debugger, integrated development environment, monitor with source, utilities, and other extras. A high quality simulator for only $50 is also available separately. The simulator has an option allowing you to interface to your target by using an on-chip monitor. Although not freeware, the low price, the features, all of the extra goodies, and the good reviews make this a package worth looking at. Also, if you're interested in working on more than one family of microcontroller, Dunfield supports a wide range. This means only needing to learn one system, instead of many. Another low priced ($100) C compiler comes from Micro Computer Control. This package was unavailable for review, but according to the manufacturer, it features: Cross compilers running under DOS are available for the 8051 and the Z8 (including Super-8). This package includes a C compiler, assembler, linker, librarian, and extensive printed documentation. A simulator/source code debugger is available for an additional $79.95. The simulator is completely configurable, so much so that you don't even need the target hardware to test with. You can configure all I/O and other features of your target chip or environment. Micro Computer Control Corporation PO Box 275, 17 Model Ave., Hopewell, NJ 08525 (609)466-1751 Fax: (609)466-4116 BBS: (609)466-4117 Email: 73062.3336@compuserve.com 4.3) Commercially available products Many firms (large and small) offer a variety of 8051 microcontroller variants, programming languages, support packages, and development systems. No endorsement is implied by inclusion in this list. I apologize to anyone I left out; It's only because I didn't know about you. If you want to be included in this list, just drop me a line - please. Any corrections and additions appreciated. C compilers ($$$ - high, $$ - medium, $ - low priced) - 2500 A.D. - Archimedes Software $$$ & $$ same as Keil Electronics C Archimedes is introducing StartRight, a low cost 8051 C compiler for $700 - Avocet Systems $$ repackaging of the Hi-Tech Software C compiler - BSO/Tasking $$ - Crossware Products - Dunfield Development Systems $ Complete C compiler development system for MS-DOS includes: compiler, run-time library with source, assembler, ROM debugger, integrated development environment, monitor with source, utilities, and other extras low price: $100 good reputation and good support works well with the Dallas DS5000/DS2250 - Franklin Software $$$ same as Keil Electronics C - IAR Systems IAR tool kit comes with a C-Cross compiler, assembler, Xlink linker, Xlib librarian, C-SPY simulator, editor, make utility and a real-time kernel formerly licensed for distribution in the US and Canada under the Archimedes brand name - Hi-Tech Software $$ assembler, C compiler, linker, library, serial port debugger, and Windows style integrated development environment ANSI C and IEEE 32 float compatable with some very useful extensions $900US - Intermetrics Microsystems Software, Inc. Whitesmith's compiler, assembler, and C source level debugger - Keil Electronics $$$ compiler, assembler, debugger, real-time kernel, ROM monitor, libraries for special 8051's to set SFR, embedded I/O devices, A/D, etc. - Mandeno Granville Electronics, Ltd SYS51C - ANSI C Cross Compiler - Micro Computer Control $ Developer's kit includes "C"-like compiler, assembler, linker, librarian, extensive printed documentation low cost ($99.95) - Okapi Systems - Production Languages Corporation DOS- and Windows- based compilers Integrated development environment includes ANSI C compiler, assembler, linker, librarian, debugger - Signum Systems Basic interpreters/compilers - Binary Technology, Inc. - Iota Systems, Inc. Basic-752 interpreter (simulator also available) Basic-52 Plus interpreter - Micro Future Basic-52 development system - Systronix Inc. (Basic compiler) Pascal - Mandeno Granville Electronics, Ltd PASCAL51 - Advanced Turbo PASCAL compliant cross compiler - Scientific Engineering Labs Modula-2 - Mandeno Granville Electronics, Ltd Mod51 - optimizing Modula-2 Compiler, smallest program is 14 bytes, ideal for both very tight/fast projects and very large ones with multiple modules, produces smaller/tighter code than C, has extensive libraries and working examples - Vail Silicon Tools, Inc. PL/M - BSO/Tasking Board level products - Ackerman Computers Sciences (ACS) - AM Research complete FORTH based system with PC based host system - Binary Technology, Inc. - Blue Earth Research - Blue Ridge Micros (8031 and 8052-BASIC based boards) - Circuit Cellar Inc. - DataCraft International - Dunfield Development Systems - EE Systems - Forth, Inc. - HiTech Equipment Corp. - Iota Systems, Inc. (line of development packages, boards, peripherals, and components) - J & M Microtek, Inc. - L.S. Electronic Systems Design - Mandeno Granville Electronics, Ltd - Parallax, Inc. - Prologic Designs - Rigel Corporation - Software Science nice boards with prototyping area - Suncoast Technologies - URDA, Inc. Assemblers - 2500 A.D. - Archimedes Software same as Keil Electronics Archimedes is introducing StartRight, a low cost 8051 assembler for $200 - BSO/Tasking - Crossware Products - Custom Computer Consultants - Cybernetics Microsystems - Dunfield Development Systems Supports both Intel and Motorola style syntax - Emulation Technology, Inc. - Intel Corporation - Keil Electronics - Lear Com Company - Metalink - Micro Computer Control - Microtek Research - Nohau Corporation - Okapi Systems - Onset Computer Corporation (8051 Assember for MAC) - Parallax, Inc. - PseudoCorp - Raven Computer Systems - Signum Systems - Speech Technology Inc. TASM (table driven cross assembler supports many different microcontrollers and microprocessors) - Universal Cross Assemblers CROSS32 supports 40-50 different processors Forth - AM Research Development system, features kernel of less than 700 bytes - Forth, Inc. A cross-development product for the 8051 family which includes a board and extensive documentation. - Forth Systeme - MPE: MicroProcessor Engineering Ltd. A cross-development system for the 8051 family extensive documentation interactive single chip development, multitasking, bank switching for more than 64k code - Offete Enterprises 8051 eForth (C. H. Ting -- $25.00). "A small ROM based Forth system ... Source code is in MASM IBM 5.25 disk with 8051 eForth Implementation Note." ROM Monitor-based Debuggers - ChipTools (ChipView-51 looks like turbo debugger) - Dunfield Development Systems Can be used with DS5000 for single-chip in-circuit emulation Simulators - 2500 A.D. - Avocet Systems - ChipTools on a 33 MHz 486 matches the speed of a 12 MHz 8051 - Cybernetic Micro Systems - Dunfield Development Systems Low cost $50.00 500,000+ instructions/second on 486/33 Can interface to target system for physical I/O Includes PC hosted "on chip" debugger with identical user interface - HiTech Equipment Corp. - Hitex - Iota Systems, Inc. - J & M Microtek, Inc. - Keil Electronics - Lear Com Company - Mandeno Granville Electronics, Ltd - Micro Computer Control Corporation Simulator/source code debugger ($79.95) - Microtek Research - Production Languages Corp. - PseudoCorp Emulators ($$$ - high, $$ - medium, $ - low priced) - Advanced Micro Solutions $$ - Advanced Microcomputer Systems, Inc. $ - Applied Digital Research Ltd. $$ - American Automation $$$ $$ - Applied Microsystems $$ - ChipTools (front end for Nohau's emulator) - Cybernetic Micro Systems $ - Dunfield Development Systems $ plans for pseudo-ice using Dallas DS5000/DS2250 used together with their resident monitor and host debugger - Emulation Technology, Inc. $$ OpenEmulator in-circuit emulators adaptable for over a hundred microcontrollers/microprocessors - HBI Limited $ - Hewlett-Packard $$$ - HiTech Equipment Corp. - Hitex $$ - Huntsville Microsystems $$ - Intel Corporation $$$ - Kontron Electronics $$$ - Mandeno Granville Electronics, Ltd full line covering everything from the Atmel flash to the Siemens powerhouse 80c517a - MetaLink Corporation $$ $ - Nohau Corporation $$ - Orion Instruments $$$ - Philips $ DS-750 pseudo-ICE developed by Philips and CEIBO real-time emulation and simulator debug mode source-level debugging for C, PL/M, and assembler programs 8xC75x parts low cost - only $100 from Philips ($250 from CEIBO) DOS and Windows versions available - Signum Systems $$ - Sophia Systems $$$ - Zax Corporation - Zitek Corporation $$$ Real-time - Byte-BOS Integrated Systems small, prioritized, preemptive real-time kernel - Embedded System Products (formerly A.T. Barrett and Associates) ROMable embedded-system kernel: source provided. Provides programming interface identical on all target platforms. Basic, advanced, and extended library packages available. - Intellimap Engineering DCE51 real time operating system - JMI Software Systems, Inc. small, prioritized, preemptive real-time kernel - U S Software SuperTask! - multitasking executive Trainers - Advanced Educational Systems (AES) complete learning system (board, LCD, keypad, A/D, D/A, etc) - Sun Equipment Corp. trainers Miscellaneous - Creative Applications Engineering, Inc CheepTools (integrated environment) - Dallas Semiconductor evaluation/development kit for their DS5000 (very nice) - Data Sync Engineering (disassembler) - Educational Laboratories development courses: 8051 Microcontroller Based Computer Design Programming 8051 Based Computers each course $19.95, both $29.95 - Electronic Product Design, Inc. development system (integrated package with assembler, project manager, text editor, programmer) - Exor Inc. (ladder logic compiler) - Feger + Co. offers a series of German language 8051 related books they call `MC-Tools' describing the processors and/or projects for PC-addin boards: MC-Tools 1 - 80c535 project for DM 119; includes 260 page book, an empty PCB, and a diskette with assembler, debugger, PC-Oscilloscope MC-Tools 4 - same as above but based on 80c537 MC-Tools 3 - Die 8051-Microcontroller Familie vom 8051 zum 80C517A; text book on the 8051 and Siemens derivatives, 360 pages. MC-Tools 5 - handbook on the 80C517 and 80C517A, 360 pages - Iota Systems, Inc. integrated environment system - Mandeno Granville Electronics, Ltd PIC to 8051 conversion program - Parallax, Inc. programmers - Quantasm Corp. ASMFLOW - produces flowchart and tree diagrams from source code, register usage analysis, Xref, timing info - U S Software USNET - TCP/IP networking suite USFiles - file system GOFAST - floating point library - Xicor SLIC2E microperipherals - wires up directly to an 8051 and needs no glue logic, contains: - 8K x 8 EEPROM in individual 4K segments - 2 8-BIT I/O ports - 16 8-BIT RAM registers - Integrated Interrupt Controller Module - Internal programmable address decoding - code loaded at the factory allowing users to download programs into EEPROM Development Support package includes a DATA BOOK, a SAMPLE of the CHIP (PDIP or PLCC, your choice) and PC compatible software for downloading and testing your programs. $15 Development system includes a populated board. $180 2500 A.D. 109 Brookdale Ave., Box 480, Buena Vista, CO 81211 (719)395-8683 Ackerman Computer Sciences (ACS) 4276 Lago Way, Sarasota, FL 34241 (813)377-5775 Fax: (813)378-4226 Advanced Educational Systems (AES) 1407 North Batavia Street, Orange, CA 92677 (800)730-3232 (714)744-0981 Fax: (714)744-2693 Advanced Micro Devices 901 Thompson Place, PO Box 3453 Sunnyvale, CA 94088-3000 (408)732-2400 Advanced Microcomputer Systems, Inc. 1321 NW 65th Place, Fort Lauderdale, FL 33309 (305)975-9515 Fax: (305)975-9698 Advanced Micro Solutions 1033 S Imperial Dr., Hartland, WI 53029 (414)367-3577 American Automation 2651 Dow Avenue, Tustin, CA 92680 (714)731-1661 AM Research 4600 Hidden Oaks Lane, Loomis, CA 95650 (800)949-8051 (916)652-7472 Fax: (916)6642 BBS: (916)652-7117 Email: sofia@netcom.com Applied Digital Research Ltd. P.O. Box 6480, Wellesley St, Auckland, NEW ZEALAND +64 9 480-8827 Email: rossmcm@adr.co.nz Compuserve: 100351,716 WWW: http://www.he.net/~adr/ Applied Microsystems 5020 148th Ave. N.E., PO Box 97002 Redmond, WA 98073-9702 Archimedes Software 2159 Union St., San Francisco, CA 94123 (415)567-4010 WWW: http://www.archimedes.com/devtools Ashling Microsystems Ltd Ireland Plessey Technological Park Limerick, Ireland +353 61 334466 Fax: +353 61 334477 United Kingdom Butler House 19-23 Market Street Maidenhead, Berkshire, UK +0628 773070 Fax: 0628 773009 Atmel 2125 O'Nel Drive, San Jose, CA 95131 (800)365-3375 (408)441-0311 Fax: (408)436-4300 Avocet Systems 120 Union St., Rockport, ME 04856 (800)448-8500 (207)236-9055 Fax: (207)236-6713 Binary Technology, Inc. PO Box 541, Carlisle, MA 01741 (508)369-9556 Fax: (508)369-9549 Blue Earth Research 165 W. Lind Ct., Mankato, MN 56001-0400 (507)387-4001 Fax: (507)387-4008 BBS: (507)387-4007 Blue Ridge Micros 2505 Plymouth Rd., Johnson City, TN 37601 (615)335-6696 Fax: (615)929-3164 BSO/Tasking International 333 Elm Street, Dedham, MA 02026-4530 (800)458-8276 (617)320-9400 Fax: (617)320-9212 Europe Tasking Software BV P O Box 899, 3800 AW Amersfoort, Netherlands +31 33 558584 Fax: +31 33 550033 Business Data Computers P.O. Box 1549, Chester, CA 96020 Byte-BOS Integrated Systems P.O. Box 3067, Del Mar, CA 92014 (800)788-7288 (619)755-8836 ChipTools Inc (905)274-6244 Fax: (905)891-2715 Email: chiptool@hookup.net Circuit Cellar Inc. 4 Park St., Vernon, CT 06066 (203)875-2751 Fax: (203)872-2204 Creative Applications Engineering, Inc Ed Carryer (415)494-2363 BBS: (415)494-8463 Crossware Products 2 The Lawns, Melbourn, Royston, Herts SG8 6BA, UK +44 763 261539 Fax: +44 763 262983 BBS: +44 763 261716 Email: sales@crossware.com Custom Computer Consultants 1807 Huron River Drive, Ypsilanti, MI 48197 Cybernetic Micro Systems Box 3000, San Gregorio, CA 94074 (415)726-3000 Dallas Semiconductor 4401 S. Beltwood Parkway, Dallas, TX 75244-3292 (214)450-0448 Fax: (214)450-3715 International: (214)450-5351 Orders: (800)336-6933 Email: micro.support@dalsemi.com DataCraft International 2828 Ione Dr., San Jose, CA 95132 (800)873-3709 (408)259-4866 Data Sync Engineering POB 146, E. Stroudsburg, PA 18301 (717)421-1977 Dunfield Development Systems P.O. Box 31044, Nepean, Ontario Canada K2B 8S8 (613)256-5820 Fax: (613)256-5821 BBS: (613)256-6289 Web: http://www.dunfield.com Email: General information: info@dunfield.com Sales inquiries/Administration: sales@dunfield.com Technical inquiries/Support tech@dunfield.com Old Email address: ddunfield@bix.com EE Systems 50935 Hill Dr., Elkhart, IN 46514 (219)296-1754 Fax: (219)522-4271 Electronic Product Design, Inc. 6963 Bluebelle Way, Springfield, OR 97478 (503)741-0778 Embedded System Products (formerly A.T. Barrett and Associates) 11501 Chimney Rock, Houston, TX 77035-2900 (800)525-4302 (713)728-9688 Fax: (713)728-1049 Emulation Technology, Inc. 2344 Walsh Avenue, Bldg. F, Santa Clara, CA 95051 (408)982-0660 Fax: (408)982-0664 Email: et@pmail.emulation.com WWW: http://www.emulation.com FTP: ftp.emulation.com Exor Inc. 4740T Interstate Dr., Cincinnati, OH 45246 (513)874-4665 Fax: (513)874-3684 Feger + Co., Hardware + Software Verlags OHG Marienstrasse 1, D-83301 Traunreut, Germany Forth, Inc. 1-800-55FORTH http://www.earthlink.net/~forth Forth Systeme P.O. Box 1103, Breisach, Germany 7767-551 Franklin Software (408)296-8051 HBI Limited 6F, 1 Fleming Road, Hong Kong 852-891-3673 Fax: 852-834-9748 Hewlett-Packard 1501 Page Mill Rd., Palo Alto, CA 94304 HiTech Equipment Corp. 9400 Activity Rd., San Diego, CA 92126 (619)566-1892 Fax: (619)530-1458 Email: info@hte.com ftp: ftp.hte.com Hi-Tech Software PO Box 103, Alderly QLD 4051, Australia (+61-7) 300 5011 Fax: (+61-7) 300 5246 Email: hitech@hitech.com.au Hitex North America HiTOOLS Inc., 2055 Gateway Place, Suite 400 San Jose, CA 95110 (408) 451 3986 Fax: (408) 441 9486 http://www.hitex.com info@hitex.com Germany Greschbachstr 12, 76229 Karlsruhe 0721/9628-0 Fax: 0721/9628-149 info@hitex.ti.ba-karlsruhe.de http://www.ba-karlsruhe.de/BA/firmen/hitex United Kingdom Sir William Lyons Road, Science Park Coventry CV4 7EX +0203 692066 Fax: +0203 692131 Huntsville Microsystems 4040 S. Memorial Parkway, PO Box 12415 Huntsville, AL 35802 IAR Systems Software North America One Maritime Plaza, Suite 1770 San Fransisco, CA 94111 USA (415)765-5500 Fax: (415)765-5503 Sweden IAR Systems AB Box 23051 S-750 23 Uppsala, Sweden +46 18 16 7800 Fax: +46 18 16 7838 Germany IAR Systems GmbH Brucknerstrasse 27 D-81677 Munchen, Germany +49 89 470 6022 Fax: +49 89 470 9565 United Kingdom IAR Systems Ltd 9 Spice Court Plantation Wharf, York Rd London SWII 3UE, England +44 71 924 3334 Fax: +44 71 924 5341 Intel Corporation 3065 Bowers Ave., Santa Clara, CA 95051 Technical Help: (800)628-8686 (USA/Canada only) 5 am to 5 pm PST Email: james_sampson@ccm.hf.intel.com Faxback support: (800)628-2283 (USA/Canada) touch tone phones only Will only FAX to USA/Canada locations English or Japanese support is available BBS: (916)356-3600 24 Hr. Auto config: 1200 thru 14.4K Baud Intellimap Engineering 1140 Morrison Dr., Suite 222 Ottawa Ontario Canada K2H 8S9 (613)829-3196 Fax: (613)820-1773 Intermetrics Microsystems Software, Inc. 733 Concord Ave., Cambridge, MA 02138 (617)661-0072 Fax: (617)868-2843 Iota Systems, Inc. 924 Incline Way, Suite N / POB 8987 Incline Village, NV 89452-8987 (702)831-6302 Fax: (702)831-4629 J & M Microtek, Inc. 83 Seaman Rd., W Orange, NJ 07052 (201)325-1892 Fax: (201)736-4567 JMI Software Systems, Inc. P.O. Box 481, 904 Sheble Lane, Spring House, PA 19477 (215)628-0840 Fax: (215)628-0353 KC Automation GmbH (support for Sysoft products) Alfredo Knecht CH-6991 Neggio, Switzerland Fax: ++41-91591149 Email: akne@tinet.ch Keil Elektronik GmbH Europe Bretonischer Ring 15 D-85630 Grasbrunn b. Muenchen, Germany 49 89 / 46 50 57 Fax: 49 89 / 46 81 62 North America Keil Software 16990 Dallas Parkway, Suit 120, Dallas, TX 75248 (800)348-8051 (sales and tech support) (214)735-8052 Fax: (214)735-8055 CompuServe: 71715,1604 BBS: (214)713-9883 Kontron Electronics D-8057 Eching/Munich Oskar von Miller Str. 1, Germany (0 81 65) 77-0 Lear Com Company 2440 Kipling St. Suite 206, Lakewood, CO 80215 (303)232-2226 Fax: (303)232-8721 Logical Systems Corporation (Disassembler, Simulator) Micro Dialects, Inc. POB 30014, Cincinnati, OH 45230 (513)271-9100 Logisoft Box 61929, Sunnyvale CA 94086 (408)773-8465 Fax: (408)773-8466 L.S. Electronic Systems Design 2280 Camilla Rd., Mississauga, Ontario Canada L5A 2J8 (905)277-4893 Fax: (905)277-0047 Mandeno Granville Electronics, Ltd 128 Grange Rd., Auckland 3, New Zealand +64 9 6300 558 Fax: +64 9 6301 720 Matra Semiconductor 2840-100 San Tomas Expressway, Santa Clara, CA 95051 (408)986-9000 MetaLink Corporation North America 325 E. Elliot Road, Chandler, AZ 85255 (800)638-2423 (602)926-0797 Fax: (602)926-1198 Europe MetaLink Europe GmbH Westring 2, 8011<85614> Kirchseeon-Eglharting, Germany (08091)2046 Fax: (08091)2386 Micro Computer Control Corporation PO Box 275, 17 Model Ave., Hopewell, NJ 08525 (609)466-1751 Fax: (609)466-4116 BBS: (609)466-4117 Email: 73062.3336@compuserve.com Micro Future 40944 Cascado Place, Fremont, CA 94539 (510)657-0264 Fax: (510)657-5441 BBS: (510)657-5442 MicroMint 4 Park St., Vernon, CT 06066 (203)875-2751 Fax: (203)872-2204 Microtek International, Inc. North America Microtek International, Inc. 3300 N.W. 211th Terrace, Hillsboro, OR 97124 (503)645-7333 Fax: (503)629-8460 Europe Microtek Electronics Europe GmbH Starnberger Strasse 22, 82131 Gauting bei Munchen Germany +49(89)893139-30 Fax: +49(89)893139-50 MPE: MicroProcessor Engineering Ltd. 133 Hill Lane, Shirley, Southampton SO1 5AF U.K. +44 1703 631441 Fax: +44 1703 339691 Email: mpe@mpeltd.demon.co.uk sales@mpeltd.demon.co.uk 70730.3576@compuserve.com Nohau Corporation 51 E. Campbell Ave., Campbell, CA 95008 (408)866-1820 (408)378-2912 (24 hr. information center) Fax: (408)378-7869 Email: nohau@shell.portal.com WWW: http://www.nohau.com/nohau Offete Enterprises, Inc. 1306 South B Street, San Mateo, CA 94402 (415) 574-8250 Okapi Systems (206)258-1163 Onset Computer Corporation 199 Main St., P.O. Bos 1030 North Falmouth, MA 02556-1030 (508)563-9000 Fax: (508)563-9477 Orion Instruments, Inc. 1376 Borregas Avenue, Sunnyvale, CA 94089 (408)747-0440 Fax: (408)747-0688 Email: info@oritools.com http://www.oritools.com Orion Instruments 180 Independence Drive, Menlo Park, CA 94025 (800)729-7700 Fax: (415)327-9881 Parallax, Inc. 6200 Desimone Lane, #69A, Citrus Heights, CA 95621 (916)721-8217 Philips Microcontroller Product Group 811 East Arques Ave. / POB 3409 Sunnvale, CA 94088-3409 Technical documentation: Sunnyvale, CA - (800)447-1500 Fax: (408)991-3773 Eindhoven, Netherlands - Fax: 31-40-724825 Technical questions: Sunnyvale, CA - (408)991-3518 Production Languages Corporation P.O. Box 109, Weatherford, TX 76086 (800)525-6289 (817)599-8365 Fax: (817)599-5098 Prologic Designs PO Box 19026, Baltimore, MD 21204 (410)661-5950 Fax: (410)661-5950 PseudoCorp 716 Thimble Shoals Blvd., Newport News, VA 23606 (804)873-1947 Fax: (804)873-2154 BBS: (804)873-4838 Quantasm Corporation 19672 Stevens Creek Blvd. Cupertino, CA 95014 (800)765-8086 (408)244-6826 Fax: (408)244-7268 Raven Computer Systems PO Box 12116, St. Paul, MN 55112 (612)636-0365 Rigel Corporation P.O. Box 90040, Gainesville, FL 32607 Scientific Engineering Labs 255 Beacon St., Suite 3D, Somerville, MA 02143 (617)625-0288 Siemens Components, Inc. Integrated Circuit Division, 10950 N. Tantau Ave. Cupertino, CA 95014 (800)777-4363 Fax: (708)296-4805 Signetics Corporation (see Philips Microcontroller Product Group) Signum Systems Mountain View, CA (415)903-2220 Thousand Oaks, CA (805)371-4608 Software Science 3570 Roundbottom Rd., Cincinnati, OH 45244 (513)561-2060 Fax: (513)271-3181 Email: pbarnes@iglou.com Sophia Systems NS Bldg. 2-4-1, Nishishinjuku, Shinuku-ku Tokyo 160, Japan 03-348-7000 Speech Technology Inc., Software Division 837 Front Street South, Issaquah, WA 98027 (206)392-8150 Standard Microsystems Corporation 80 Arkay Dr., Hauppage, NY 11788 (516)435-6000 Fax: (516)231-6004 WWW: http://www.smc.com Email: techsupport@smc.com Sun Equipment Corporation Lodestar Electronics Corp. 616 Hawick Rd., Raleigh, NC 27615 (800)870-1955 (919)881-2141 Fax: (919)870-5720 Suncoast Technologies PO Box 5835, Spring Hill, FL 34606 (904)596-7599 Sysoft SA (closed as of 1989 - see KC Automation GmbH) Systronix Inc. 555 S. 300 E., Salt Lake City, UT 84111 (801)534-1017 Fax: (801)534-1019 BBS: (801)487-2778 URDA, Inc. (800)338-0517 (412)683-8732 US Software 14215 N.W. Science Park Drive, Portland, OR 97229 (800)356-7097 (503)641-8446 Fax: (503)644-2413 Product information available by ftp - ftp.netcom.com : pub/ussw Universal Cross Assemblers Canada (506)849-8952 Fax: (506)847-0681 Vail Silicon Tools, Inc. Box 165, Pompano Beach FL 33069 (305)491-7443 Fax: (305)974-8531 Xicor 1511 Buckeye Dr., Milpitas, CA (408)432-8888 Fax: (408)432-0640 http//www.xicor.com (new, under construction) BBS: (800)258-8864 Zax Corporation 2572 White Road, Irving, CA 92714 (800)421-0982 (714)474-1170 Zitek Corporation 1651 East Edinger Ave., Santa Ana, Ca 92705 (714)541-2931 5) 8051 DOCUMENTATION 5.1) Periodicals that cover the 8051 Various magazines and journals (journals seems to be THE popular name for magazines these days) provide articles from time to time on the 8051 family of microcontrollers: The Computer Applications Journal (Circuit Cellar Ink) - programming and construction articles - POB 7694, Riverton, NJ 08077-8784 - FAX: (203)872-2204 - Voice orders: (609)786-0409 - On-line orders (BBS): (203)871-1988 - Email orders: ken.davidson@circellar.com - $21.95, $31.95 surface Canada and Mexico, $49.95 air all other countries Computer Design - industry announcements and trends - One Technology Park Drive, P.O. Box 990, Westford, MA 01886 - (508)692-0700 The Computer Journal - programming and construction articles - PO Box 535, Lincoln 96648 Dr. Dobbs Journal - programming articles, concepts, and designs - 411 Borel Ave., San Mateo, CA 94402 - (415)358-9500 Electronic Engineering Times - industry announcements and trends - FREE to qualified engineers and managers involved in engineering decisions - Fulfillment Dept., PO Box 9055, Jericho, NY 11753-8955 - FAX: (516)733-6960 Electronics Now - construction articles - Box 55115, Boulder, CO 80321-5115 - $19.97 one year Elektor Electronics - programming and construction articles - World Wide Subscription Service Ltd Unit 4, Gibbs Reed Farm, Pashley Road Ticehurst TN5 7HE, England - 27 UK pounds or - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458 - Tel. (603)924-6371, 924-6526 - Fax: (603)924-9467 - $57 USA and Canada per year Embedded Systems Programming - programming and systems design articles - Miller Freeman Publications - 500 Howard St., San Francisco, CA 94105 - (415) 397-1881 Forth Dimensions - monthly magazine on Forth - Forth Interest Group, P.O. Box 2154, Oakland, California 94621 - (510)893-6784 Fax: (510)535-1295 - Email: johnhall@aol.com - Forth Interest Group home page: http://taygeta.oc.nps.navy.mil/fig_home.html Inquisitor Magazine - If you're the type that watched Gilligan's Island for its socio-political insights, then you'll love a new 'zine that just crossed my desk - Inquisitor Magazine. It's general philosophy seems to be ... well, it seems to be ... uh, yeah! Technical in nature, bizarre, tongue in cheek, eclectic, electric, did I mention bizarre(?), and lots of fun. Worth looking at if you like the out of the ordinary. The moving force behind this magazine is Daniel Drennan, who seems to have suffered from an overdose of radiation from his computer monitor ;-). - Planetarium Station, P.O.Box 132, New York, NY 10024-0132 - (212)595-8370 - Email: inquisitor@echonyc.com - $16 per year (4 issues) Microcomputer Journal (formerly Computer Craft) - programming and construction articles - 76 N. Broadway, Hicksville, NY 11801 - $29.70 one year Midnight Engineering - 1700 Washington Ave., Rocky Road, CO 81067 - (719)254-4553 MW Media - Product Directories - 8051 Product Directory (survey of various 8051 products) - Intel Development Tools Handbook (survey of commercial development tools for the 8051, 8096, and 80186 lines of Intel microprocessors) - This documents could very well be a "must" if you're into serious development using one of these chips. If you are "just" a hobbyist, see how the "other half" lives. - other guides on Intel development tools, Embedded Intel 386, Intel 486/Pentium, 8051 products, Hitachi microcontroller development tools, AMD FusionE86, AMD 29K; low power products, DSP, multimedia CD - FREE to qualified developers - MW Media - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA 95113 - (408)288-4721 and (408)286-4200 - FAX: (408)288-4728 Nuts & Volts Magazine - A National Publication for the Buying and Selling of Electronic Equipment - 430 Princeland Court, Corona, CA 91719 - Mailed third class, USA only: $17.00 one year $31.00 two years - Mailed first class, one year only: $34.00-USA $35.00-Canada/Mexico - Foreign/Air Mail - $70.00; Foreign/Surface - $39.00 - (800)783-4624 - Email: 74262.3664@compuserve.com 5.2) Books on the 8051 5.2.1) List of books I don't have information on all of these, only that they exist. I would greatly appreciate it if someone could provide a short synopsis and the complete book name if you are familiar with any of these titles. The 8051 Family of Microcontrollers -Richard H. Barnett -Prentice-Hall, 1995 -ISBN 0-02-306281-9 8051 Interfacing and Applications - Applied Logic Engineering - 13008 93rd Place North, Maple Grove, MN 55369 - (612)494-3704 The 8051 Microcontroller - I. Scott MacKenzie - Prentice Hall - 2nd edition, 1995 - ISBN 0-02-373660-7 - includes schematics for a single-board computer, assembly-language source code for a monitor program, and interfaces to a keypad, LEDs, and loudspeaker The 8051 Microcontroller - James W. Stewart - Regents/Prentice-Hall, 1993 - $27.50, 273 pages - includes many interfacing examples (switches, solenoids, relays, shaft encoders, displays, motors, and A/D converters) and a chapter on top-down design method The 8051 Microcontroller: Architecture, Programming and Applications - Kenneth J. Ayala - 241 pages, soft cover - 5.25" diskette with assembler and simulator - ISBN 0-314-77278-2, Dewey 004.165-dc20 - West Publishing Company - P.O. Box 64526, St. Paul, MN 55164 - (800)328-9352 - see review in next section Assembly Language Programming (for the MCS-51 family) - F. A. Lyn - L. S. Electronic Systems Design Basic-52 Programmer's Guide - Systronix, Inc. (they also sell a Basic compiler) Beginner's Guide - Suncoast Technologies C and the 8051 - Thomas W. Schultz - Prentice Hall - ISBN 0-13-753815-4 Data book / Handbook / Users' Guide - Advanced Micro Devices - Dallas (User's guide for the DS5000) - Intel - Philips - Siemens Embedded Controller Forth for the 8051 Family - Academic Press (I think) - William H. Payne - uses a Forth development system available on the Internet (see above in the Forth software section) Embedded Systems Programming in C and Assembler - John Forrest Brown - Van Nostrand Reinhold, 1994 - 304 pages, $49.95 - ISBN 0-442-01817-7 - covers Motorola and Intel processors - includes diskette with code from the book - book review in Dr. Dobb's Journal, November 1994, page 121 Experimenter's guide - Rigel Corporation Introduction to Microcontroller Design, Based on the 8051 family of Processors - Business Data Computers - P.O. Box 1549, Chester, CA 96020 The Microcontroller Idea Book - Jan Axelson (of Microcomputer Journal fame) - features the 8052-BASIC microcontroller - hands-on guide with complete plans (schematics, design theory, program listings, construction details, etc) - explains how to use sensors, relays, displays, clock/calendars, keypads, wireless links, and more - 1994, 273 pages, $31.95 + shipping - Lakeview Research, 2209 Winnebago St., Madison, WI 53704 (608)241-5824 Internet: 71163.3555@compuserve.com - contact the author at janaxel@aol.com Programming and Interfacing the 8051 Microcontroller - Sencer Yeralan and Ashutosh Ahluwalia - wealth of information, including: 8051 architecture, programming basics and techniques, on-chip features, building your own 8051 system, and interfacing to various peripherals - hardware experiments contains plans and code for: scanning a keypad, stepper motor control, a frequency generator, measuring light and temperature intensity (analog to digital), digital to analog conversion, DC motor speed regulation, interfacing to intelligent Liquid Crystal Displays, and implementing a multi-drop RS-485 network - accompanying diskette has an 8051 simulator and all source code for the projects in the book - must have book for the hobbyist or professional - $34.38, 352 pages, paperback, ISBN 0-201-63365-5 - Addison-Wesley 5.2.2) Book reviews My review of the book: Programming and Interfacing the 8051 Microcontroller by Sencer Yeralan and Ashutosh Ahluwalia Addison-Wesley has just released a GREAT new book, "Programming and Interfacing the 8051 Microcontroller" by Sencer Yeralan and Ashutosh Ahluwalia. I had actually reviewed the manuscript some time back, and the book has now finally been released. This book contains a wealth of information - it answers a lot of Frequently Asked Questions that often appear in comp.robotics, sci.electronics, and comp.arch.embedded. Among the some of the basic subjects covered include: 8051 architecture, programming basics and techniques, on-chip features, building your own 8051 system, and interfacing to various peripherals. A section on hardware experiments contains plans and code for: scanning a keypad, stepper motor control, a frequency generator, measuring light and temperature intensity (analog to digital), digital to analog conversion, DC motor speed regulation, interfacing to intelligent Liquid Crystal Displays, and implementing a multi-drop RS-485 network. The book comes with a diskette containing an 8051 simulator and all source code for the projects in the book. This is a must have book for the hobbyist or professional. Available for $34.38, 352 pages, paperback, ISBN 0-201-63365-5. Run, don't walk, to your bookstore and get one now. I mean it, this is a great book. My review of the book: The Microcontroller Idea Book by Jan Axelson This book is loosely based on a series of articles Jan wrote for ComputerCraft magazine (now the Microcomputer Journal). If you are at all familiar with her work, you already realize that you're wasting your time by reading this review and you might as well just order your copy now. This is an excellent book for hobbyists and tinkerers, as it includes complete circuit schematics and parts lists, design theory, example program listings, construction and debugging tips, and vendor listings. The example circuits and programs are based on the 8052-BASIC chip (a favorite with hobbyists due to its ease of use), and there is a lot of material on programming in BASIC52. The book is [very] useful even if you use a standard 8051 part. Lots of different interfacing ideas including: sensors, motors, LEDs, LCDs, wireless links, and a LOT more. Chapter titles: microcontroller basics, inside the 8052- BASIC, powering up, saving programs, programming, inputs and outputs, switches and keypads, displays, using sensors to detect and measure, clocks and calendars, control circuits, wireless links, calling assembly-language routines, running BASIC-52 from external memory, related products If you are just starting out with microcontrollers, and don't have a clue where to start or what to control, this book is just what you need. As the title of the book says, it's an idea book. The Microcontroller Idea Book Jan Axelson 1994, 273 pages, $31.95 + shipping Lakeview Research, 2209 Winnebago St., Madison, WI 53704 (608)241-5824 Email: janaxel@alo.com or 71163.3555@compuserve.com My review of the book: The 8051 Family of Microcontrollers by Richard H. Barnett This book VERY thoroughly discusses the design and implementation of controllers using the 8051. Dick says his book is "lots of meat, very little filler", but he's a bit off the mark here. What he means to say is this book is many large chunks of meat, no vegetables, and no potatoes - we are NOT talking Hamburger Helper here gang. The introduction alone contains circuits for 3 controllers (one 8085 design used as a comparison). Many hardware and softare examples are included. Everywhere you turn in this book, you'll find circuit diagrams and sample code, including complete designs for three different microcontroller projects in the last chapter. Clear and in-depth coverage of interfacing and peripheral use leaves very little to the imagination. This is a good book for both students and professionals who are trying to figure out how to start designing there own microcontroller. Experienced hobbyists will also appreciate the many examples. Novices might be a bit overwhelmed by this book. The 8051 Family of Microcontrollers Richard H. Barnett Prentice-Hall, 1995 ISBN 0-02-306281-9 For more info contact the author - barnettr@mace.cc.purdue.edu Richard Kendrick's review of the book: 8051 Interfacing and Applications from Applied Logic Engineering IN BRIEF An excellent collection of interfacing circuits and well commented source code in assembly. This is not a book for beginners as it assumes the user is very familiar with the architecture of the 8051 and its registers. A disk of assembly source code listings is included. CHAPTERS 1 - 8051 Interfacing and Applications 1.1 - Introduction 1.2 - Main System Core 1.3 - Simple Methods of User Input 1.4 - Interfacing a 16 digit keypad to the 8031 1.5 - Centronics Parallel Input Port 1.6 - Centronics Parallel Output Port 1.7 - Interfacing to the built-in Serial Port 1.8 - Interfacing to a Dual Channel UART 1.9 - Interfacing to an LCD 1.10 - Bank Selection of Memory - Appendix A: List of Vendors - Appendix B: Connection to an External Computer 0.1 RS-232 Serial Connection 0.2 Centronics Interface Cabling COMMENTS This spiral bound book is thin (74 pages) but manages to cover a lot of information. All of the sub-chapters have excellent code listings with full comments, partial schematic diagrams, and an occasional timing diagram. The chapter on using the serial port is based on the MAX232 chip becoming so popular. A table of timer reload values is provided to get standard baud rates but the book only mentions the required clock frequency of 11.0592 mHz in the first chapter. It also doesn't explain why a seemingly non-standard crystal frequency was chosen. The dual UART channel features the 2681 chip. The LCD chapter gives a small but adequate explaination of the Hitachi controller chip usage on LCD displays and a tiny fragment of data on display characteristics of LCDs. The bank selection of memory is useful showing code and schematic using five 62256 chips for 160K bytes of read/write memory. Richard Kendrick's review of the book: Microprocessor/Controller Design by Wayne P. Lichti of Business Data Computers A lame little book better bypassed. As an introductory text, Kenneth Ayala's book is the winner hands down. This book is a poor rehash of the same information in Intel's or AMD's data book. There is one code listing in the book and does little more than tell the reader that the 8051 family of processors exist. This book is 134 pages of wasted time. The schematics were printed on a dot matrix printer and poorly reproduced. Many of the sections are just a table or a paragraph with two or three sentences. Use Ayala's book, you'll learn a lot more useful information. John Little's review of the book: The 8051 Microcontroller: Architecture, Programming and Applications by Kenneth J. Ayala IN BRIEF A good book for those who are already moderately familiar with assembly language programming and wish to learn more about 8051 specifics. Has many example listings, all of which are very well documented in terms of comments and explanations in the text. NOT a book for absolute beginners OR hardware hackers looking for circuits and applications. CHAPTERS 1 - Microprocessors and Microcontrollers. 2 - The 8051 Architecture. 3 - Moving Data. 4 - Logical Operations. 5 - Arithmetic Operations. 6 - Jump and Call Opcodes. 7 - An 8051 Microcontroller Design. 8 - Applications. 9 - Serial Data Communication. A - 8051 Operational Code Mnemonics. B - How to Use the Assembler. C - how to Use the Simulator. D - The 8255 Programmable I/O Port. E - Control Registers. COMMENTS In his preface to the book, Mr Ayala states that that it is intended for "... a diverse audience. It is meant for use primarily by those who work in the area of electronic design and assembly language programming of small, dedicated computers". Later, he goes on to refer the reader to the manufacturer's data books for more information on hardware issues. This sets the tone for the whole book, which is very much software orientated. Anyone buying the book expecting to find reams of circuit diagrams and details on how to build their own 8051 driven, automated car assembly plant will be disappointed. In fact, most of the circuits and applications shown are very much conceptual, with generic, black-box outlines for most of the components. The single exception to this is a fairly complete system (8031, EPROM & RAM, jumper selectable memory sizes) in the chapter on microcontroller design. Even then, there's no I/O shown (the txd/rxd are unconnected). Having said that, Mr Ayala does do a fairly thorough job of working through the peculiarities of the 8051, with detailed coverage of memory organisation, bit/byte level operations, timers, interrupts and, at the end of the book, a complete chapter on 8051 communication modes. Each area has relevant assembly language listings, along with a detailed explanation of the workings of the code. Each section also has highlighted "comment" passages which point out common pitfalls and reinforce critical points. Each chapter ends with a summary of the important points covered and a series of ten to twenty pertinent problems for the reader to solve. For the most part, the answers to the problems can be found in the text. In later chapters though, the reader is asked to elaborate on various programming themes and to write assembly language programs of their own to perform various tasks. The problems range from the bland "Name twenty items which have a built in microcontroller" (Chapter 1), to the more esoteric "Compose a 40-value lookup table that will generate a sawtooth wave using a D/A converter" (Chapter 8). It should be noted that the book is not aimed at the complete novice. For instance, although assembly language listings are used throughout, it is not until Appendix B that the reader finds out what the assembler actually does and how the listings relate to machine code. Even then, the complete neophyte will be left with a rather empty feeling, as there are pages and pages of code, the schematic for a (more or less) complete system and instructions on how to use the assembler, but no information at all on how the object code should be utilised (other than with the included simulator - see below). If you don't already know how to blow an EPROM, you're in trouble. The diskette which accompanies the book contains the PseudoSam assembler (which is used throughout) and an 8051 simulator. Both being intended for use on a PC (it's a measure of how fast the computer industry is evolving that a 5.25 inch diskette seems a little archaic just three years after the publication date of the book). The PseudoSam assembler ran fine on my system and I was able to assemble several of the examples from the book and successfully run them on a small, home-brew 8031 system. I was totally unable to get the simulator to run. However, as it failed on several different systems I'm prepared to believe that my particular copy of the diskette was at fault. SUMMARY All in all, a recommended book for those who have previous assembly language experience and wish to get to know details relating to the 8051 microcontroller. While the internal architecture of the chip is covered in detail, external hardware and peripheral interfacing is not. Only the basic 8051/31 is covered, with little mention of the other variants available. There are extensive listings in the text, covering routines for handling keyboards and displays, as well as timing loops and communications. A large, clear typeface ensures that all of the listings are completely legible. The layout and presentation of the book is excellent, with a consistent, unambiguous style used throughout. Tim McDonough's review of the book: C and the 8051: Programming for Multitasking by Thomas W. Schultz Schultz's book provides a brief overview of the 8051 architecture but is primarily a discussion of multi-tasking software in an 8051 environment. He presents quite a few code examples. The examples and the accompanying text show comparisons of how to accomplish things in assembler, PLM, and C. The C examples presented are based on Version 3 of the Franklin compiler but should be easily understandable by anyone already familiar with C. Later chapters in the book deal with more advanced topics. Chapters are devoted to Real-Time Ideas, Timing and Scheduling, Communications and Synchronization, Interrupts, Priority, and Context, and Distributed Systems. The Real-Time Ideas chapter briefly discusses six Real Time Operating System (RTOS) kernels offered by several vendors. Later in the book some examples are given to simple applications with and without using a RTOS. All in all, a useful addition to my technical library. It is one of the few 8051 books that goes beyond the basics and would be particularly of interest to those contemplating their first non-trivial 8051 design. 5.3) Miscellaneous documentation on the 8051 Advanced Micro Devices - application notes Intel Corporation - application notes L.S. Electronic Systems Design - application notes (source code on diskette and schematics) Philips Semiconductors (Signetics) - application notes Software Science - application notes __________________________________________________________ I disclaim everything. The contents of this article might be totally inaccurate, inappropriate, misguided, or otherwise perverse - except for my name (hopefully I got that right). Copyright (c) 1995 by Russell Hersch, all rights reserved. This FAQ may be posted to any USENET newsgroup, on-line service, or BBS as long as it is posted in its entirety and includes this copyright statement. This FAQ may not be distributed for financial gain. This FAQ may not be included in commercial collections or compilations without express permission from the author. ----------------------------------- Russ Hersch - russ@silicom.co.il or sibit@datasrv.co.il