8051 system for software development

This is a system for developing and testing software used to run on microcontrollers based on 8051 architecture built by me in 1999. Comparing to other similar development boards, this one has some particularities such as: two banks of RAM, an additional serial interface and input for infrared remote control. If necessary, additional sections of prototyping circuit board with corresponding components can be added to increase number of I/O. The system was used a long period of time without any problem.

The board is connected to a PC with the RS232 serial interface (main interface). Nowadays, computers do not have a serial interface anymore. There is a workaround for this issue. An USB to serial RS232 converter can be connected between computer and board.

Figure 1
Figure 2
Figure 3

- RS232 Rx/Tx bidirectional serial interface to computer (main serial)
- Jumper for use RS232 TTL on main serial (connect an external converter)
- Additional RS232 Tx/Busy serial interface, output only
- 8051 series microcontrollers have only one serial interface. Switching to first or to second interface must be controlled by software. The two interfaces cannot work simultaneously.
- Our board has one 80C31 microcontroller mounted on socket (can be replaced by 80C32, 89C51 and so on)
- 32 Kbytes of EPROM (mapped to 0000H-7FFFH, loaded with a monitor code, for example)
- 64 Kbytes of static RAM (there are two IC's: first is mapped to 0000H-7FFFH - used as external RAM only and 8000H-FFFFH - used as external RAM memory and/or external code memory - von Neumann)
- 8 Kbit Serial I2C Bus EEPROM
- LCD display, 2x20 characters
- buzzer
- one LED output
- reset button
- power supply: 5V DC
- quartz crystal: 11.0592 MHz
- infrared receiver for remote control systems - SFH5110-36
- all integrated circuits are on sockets. The components can be tested on this system before soldering to real application board.

The 8051 series microcontrollers use Harvard architecture. This means code memory and data memory are physically separated. You can't write to the code memory. But the monitor software requires the program you are running to be located in external RAM so you have to configure a von Neumann memory. This means you have to read physically the same memory bytes from code and xdata (external RAM) space. Also you have to provide the possibility to load your program into xdata space since the 8051 does not provide CPU instructions to write into code memory. These requirements are fulfilled by the development board presented here. The external RAM memory mapped on 8000H-FFFFH can be used for both external RAM and external code memory (von Neumann memory). Usually the program to be tested should be loaded on the development board starting 8000H. After switching power off or pressing reset button the program must be loaded again to run.

Software: There are a lot of development software tools for 8051, either freeware or commercial. I suggest the use of Keil 8051 Development Tools. Without license, this product can run as a Lite/Evaluation edition with some limitations.

Figure 4
Schematic (PDF)
Figure 5
Figure 6
Test prog.
Figure 7
Monit sub.

In above figures you can find the schematic of the development board, a print screen of the monitor, an example program written in assembly language for testing the functionality of the board and a program sequence to be included in EPROM. All these were designed by us. Because of the particularities in schematic design, it is required to run an initialization subroutine (figure 7) at the beginning of the program resident in EPROM. If a monitor program is used, the initialization sequence must also be included. In Windows 7 or Vista you will no longer find the HyperTerminal software used for serial connection. As an alternative, you can use Putty (Telnet, SSH, terminal emulator), an excellent free software.

Disclaimer: The information on this web site is provided "AS IS", without warranty of any kind. The author has made the best efforts to ensure the design and the information provided are reliable. Under no circumstances shall the author be liable for any direct, indirect, incidental, special or consequential loss, damage, expense or injury incurred or suffered which is claimed to resulted from use of this site, even if expressly advised of the possibility of such loss, damage, expense or injury, including, without limitation, any fault, error, omission, interruption or delay with respect thereto.

[1] - Philips Data Handbook IC20: 80C51 Based 8-Bit Microcontrollers
[2] - The final word on the 8051 by Matthew Chapman
[3] - Keil C51 Development Tools