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.
8051 is still relevant in modern market in 2025. In any modern company designing from the ground up it's product still prefer to pick 8051 instead of something else. Chip is well documented and job market is full of people who can write code with closed eyes for it. The 8051 architecture simply refuses to die. Intel announced the 8-bit 8051, its second-generation microcontroller, in 1980. After more than 40 years, you can be pretty sure that 8051 software-development tools are mature. Atmel Corporation was acquired by Microchip in 2016, they continue to offer an extensive portfolio of proven 8051 devices. Dallas Semiconductor has improved the traditional 8051 microcontroller, creating high-performance drop-in replacements which execute up to 33MIPs. Dallas Semiconductor, founded in 1984, is since 2021 part of Analog Devices, and offer fast-speed high-performance 8051 compatible products.
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 external USB to serial RS232 converter
can be connected between computer and board.
|
Figure 1 |
Figure 2 |
Figure 3 |
Specification:
- 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.
|
Figure 4 Schematic (PDF) |
Figure 5 Monitor |
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 me.
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 11 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.
Links:
[1] - 80C51 Data Handbook
[2] - The final word on the 8051
[3] - Keil A51 Development Tools
|
|