Integrated Development Environment for 8051 Microcontrollers


Introduction  Download  Installation  Sample programs

New in version 5.8

Project manager for Assembler and Pascal projects


MC-51 is an Integrated Development Environment (IDE) for the 8051 family of microcontrollers (Siemens, Philips, Atmel, etc.).
The IDE contains:

ASEMW and Turbo51 are command line controlled programs. To compile sources MC-51 calls these programs with the adequate parameters. The output (especially the error messages) is displayed in the bottom port of the desktop window. Clicking on an error message will move the editor cursor directly to the line containing the error.

As there are many controllers in the 8051 family that differ in the structure of special funtion registers (SFR), you have to include the appropriate Assembler module (MCU file), resp. Pascal unit into your source code. The MC-51 package contains modules and units for many common microcontrollers of the 8051 family. When creating a new source file, the program will automatically insert the code into the text that is needed for the selected microcontroller type (see at upper right in the toolbar). On the other hand, when loading a source file from disk the used module is recognized automatically.

To communicate with a microcontroller experimentation board via the serial interface, MC-51 provides a terminal mode. The required parameters for the connection can be adjusted using the main menu. The microcontroller needs to be programmed with an appropriate monitor program (e.g. PAULMON).

The simulator lets you test small programs without any external hardware. It contains all common debugging features (Run, Stop, Single step, Step over subroutine, Run to selected line). You can execute the program step-by-step or set breakpoints anywhere in the program. The simulator displays the source code with program labels as well as the compiled hex code and the program addresses. All registers and memory locations can be inspected and changed if desired. Numbers may be displayed as hex, decimal or binary values.
The port connections are displayed as SFRs and as buttons with LED-like status display. Changing a bit is made just by clicking one of these buttons (only possible when the program to be tested set them as input). Further two timers and the serial port (output as displayed text and inmput from keyboard) are simulated. Interrupt controlling of these devices is possible. The two external interrupts can be triggered by dedicated buttons per mouse clicks. Controlling the priority of interrupts is not implemented. Symbol and opcode tables of family derivates can be loaded.

In terminal mode the screen is splitted into two windows: Data received from serial interface (upper part) and data to be sent to the microcontroller (lower part). If there is a monitor program like PAULMON installed in the microcontroller, hex files created by the assembler or the Pascal compiler may be downloaded into the microcontroller memory.

Furthermore MC-51 contains a module for flash programming of some Atmel microcontrollers (AT89S51/52 and AT89S8252/8253) using the serial interface. How to connect the serial port to the microcontroller can be taken from the description of the experimentation board.

The integrated text editor uses components from the open source project SynEdit. In addition to many extended editor functions, SynEdit supports syntax specific highlighting of source code. Most of these features can be individually adjusted by the user.

Project management

To make the software developement more efficient, it is recommended to move frequently used program parts into separate modules (include files for Assembler, units for Pascal). Mc-Tools can save all files belonging to a software project (main file and modules) and the optionally required compiler options into a file (see below). Loading a project from such a file will restore all files and settings automatically to the IDE.


Languages: English and German (additional languages possible)
Operating systems: Windows XP, Vista, 7, 8 and 10
Download: Vers. 5.9.2 (4,35 MB) released 2018-01-10 (Release notes):

MC-51 setup including Turbo51 and ASEM-51

The setup contains the program, default editor settings, the Turbo-51 compiler (Vers., the Assembler ASEM-51 as well as modules and units for many microcontrollers of the 8051 family.

Installing the program

MC-51 is distributed as an executable Windows setup file (mc-setup-5.x.yy.exe, where x.yy represents the applicable version). You can install the program into any folder on your system (default: C:\Program Files\Mc-Tools). To do this, Administrator rights are required. Optionally shortcuts are created in the Windows start menu and on the desktop.

The following directory and file structure is created beneath the installation folder:

   <Install directory>
     mc51.exe                Program
     mc51.ini                Default settings for the program
     mc51.key                Keyboard settings for the integrated editor
     mc51-asm.hlt            Preferences for syntax highlighting (Assembler))
     mc51-pas.hlt            Preferences for syntax highlighting (Pascal))
     opcodes.mco             List of 8051 opcodes for simulator
     8051.mcu                List of basic symbols for simulator
     notes-en.txt            Brief instruction
     mcprojects.exe          Project manager
     checkisp.exe            Program to check a flash programmable Atmel microcontroller (e.g. AT89S8253)
     diffisp.exe             Programm to check for differences of flashed programs
     <locale>                Language specific files for Mc-51 (current: German)
     <Asem-51>               Directory for Assembler
       AsemW.exe             Assembler to use under Windows
       ...                   Some other programs and documentation
       <Mcu>                 Directory for modules (s.o.)
         *.mcu               Modules for the different microcontrollers
     <Turbo-51\bin>          Directory for Pascal compiler
       Turbo51.exe           Pascal compiler
       <units>               Directory for the units
         *.pas               Units for the different microcontrollers

Starting MC51.EXE for the first time, all necessary settings (location of Assembler, Pascal compiler, etc.) will be made automatically by the program.

If an experimentation board is connected to the computer, the connected serial port has to be selected prior to the first operation:

Main menu ⇒ Settings ⇒ Terminal ⇒ Com-Port ⇒ COM1, COM2, ..

Depending on which monitor program you are using some more settings are required:

Main menu ⇒ Settings ⇒ Terminal ⇒ Baudrate ⇒ 1200, .. ,115200
Main menu ⇒ Settings ⇒ Terminal ⇒ Delay ⇒
Delay between two characters in ms
Delay after end of line in ms

If you are using PAULMON as monitor program, you can leave all settings at the default values (9600 baud, 0 ms and 50 ms). After power on or a reset on the experimentation board having this monitor implemented, you have to strike once the enter key inside the terminal window to cause the microcontroller to adjust itself to the selected baud rate.

Command line options

Having started the program via a desktop shortcut or having invoked it from another program , you can control it by setting the following command line options:

The MC51 program will reload all files opened in the previous session.
[<Source1>] [<Source2>] ..
The MC51 program will only load the specified source files.
/term [<Filename>.hex]
Start the program in terminal mode and prepares the download of the optional denoted Hex file.
If no filename is specified, the MC51 program will start the simulator immediately after opening all active sources loading the last program that was edited. if an OMF or Hex filename is specified, the MC51 program will start the simulator and load the specified binary file immediately after opening all active sources.
By default the user configuration is saved in the file Mc51.ini. This file is located in the Application Data directory of the user: Using the "ini" option you can select an alternative configuration file at any other location (e.g. E:\MyConfiguration\mc-1.ini).
The command line options are loaded from a project file with the following structure:
    ; comment
    /project:<project name>   ; name of the project
    /options:-A -J -T
    /main:<mainfile>          ; main file of the project
    <source1>                 ; source files
/project:<project name>
Specifies the name of the project
Specifies the options for the Turbo51 compiler
/main:<main file>
Specifies the main file of the project

Sample programs:


Download as zip file

  • Programs:
    • Simple flasher using the timer interrupt
    • Use of the serial port
    • Interrupt buffered reading of data via the serial port
    • Convert a decimal number (ASCII) to binary
    • Convert a binary number to decimal (ASCII)
    • Minimum/maximum thermometer using the LC display
  • Several subroutines as include files:<
    • Add and subtract 16 bit numbers
    • Multiply and divide 16 bit numbers
    • Square root of 16 or 32 bit numbers
    • Simple generator for random numbers
    • Interrupt buffered serial port
    • Control of an LC display
    • Routines for the I2C bus
    • Input from a decimal keyboard


Download as zip file

  • Programs:
    • Simple flasher using the timer interrupt
    • Use of the serial port
    • Test for output data to an LC display
    • Test for input from a decimal keyboard
    • simple thermometer
  • Several subroutines as units:
    • Using the timer
    • Interrupt buffered serial port
    • Control of an LC display
    • Routines for the I2C bus
    • Input from a decimal keyboard