Introduction Download Installation Sample programs Experimentation board
The MC-Tools package contains an Integrated Development Environment (IDE) for the 8051 family of microcontrollers (Siemens, Philips, Atmel, etc.).
ASEMW, Turbo51 and SDCC are command line-controlled programs. To compile sources, MC-51 calls these programs with adequate parameters. The output (especially error messages) is displayed in the bottom part 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 function registers (SFR), you have to include the appropriate Assembler or C module or Pascal unit in your source code. The MC-Tools package contains modules and units for all 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 top right in the toolbar). On the other hand, when loading a source file from disk, the module used 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.
In terminal mode the screen is split 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 such as PAULMON installed on the microcontroller, hex files created by the assembler, Pascal or C compiler can be downloaded into the microcontroller memory.
The simulator and debugger of MC-51 allows
small programs to be tested 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 an LED-like status display. Changing a bit is made simply by clicking one of these buttons (only possible when set as an input in the program to be tested).
Furthermore, two timers and the serial port (output as displayed text and input from keyboard) are simulated. Interrupt controlling of these devices is possible. The two external interrupts can be triggered by dedicated buttons using mouse clicks. Controlling the priority of interrupts is not implemented. Additionally the symbol and opcode tables of derivated family members can be loaded directly.
Furthermore MC-51 contains a module for flash programming 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 (German).
The integrated text editor uses components from the open source project
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.
With version 6.3 it is possible to use a new structure of source directories.
Sources associated to the different supported compilers and their includes, units resp. libraries
and outputs will be stored in separate directories (see figure at the left).
After a new installation, this new structure will automatically be created on starting
the program for the first time, in case of an update, the existing structure from the
previous version will be retained. Changing to the new structure can be performed by
calling the menu item Settings ⇒ Root folder for sources ...
After selection of a new root directory, the new subdirectory structure shown at the left
will be created.
Already existing sources created under the previous version must be manually copied to the new folders. From inside the program, this can also be performed by using the function Save as ...
To make the software development more efficient, moving frequently-used program parts into separate modules (include files for Assembler, units for Pascal) is recommended. The project manager of 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). Opening a project, saved in this way, will restore all files and settings automatically to the IDE.
Languages: English and German (additional languages possible)
Operating systems: Windows XP, Vista, 7, 8, 10 and 11
Download: Version 5.9.3 (4,35 MB) released 2019-05-17 (Release notes):
Download: Version 6.3.3 (6.03 MB) released 2022-10-21 with optional integration of SDCC (Release notes):
The setup contains the programs described above, the default editor settings, the Pascal compiler Turbo-51 (Vers. 0.1.3.17), the Assembler ASEM-51 by W.W. Heinz, as well as modules and units for many microcontrollers of the 8051 family.
The C compiler SDCC must be downloaded and installed separately. On starting, MC51 will check if SDCC is installed on your system and will integrate it automatically into the IDE.
MC-Tools 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 on 32-bit systems, resp. C:\Program Files(x86)\Mc-Tools on 64-bit systems). To do this, administrator rights are required. Optionally, shortcuts can be 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) mc51-cco.hlt Preferences for syntax highlighting (C compiler)) opcodes.mco List of 8051 opcodes for simulator 8051.mcu List of basic symbols for simulator mcprojects.exe Project manager checkisp.exe Program for checking a flash programmable Atmel microcontroller (e.g. AT89S8253) diffisp.exe Program for checking for differences of flashed programs <locale> Language specific files for MC-Tools (current: German) <Asem-51> Directory for Assembler AsemW.exe Assembler for use under Windows ... A few other programs and documentation <Mcu> Directory for include modules (see above) *.mcu Include modules for the different microcontrollers <Turbo-51> Directory for Pascal <bin> Pascal compiler <rtl> Runtime libraries <manual> Documentation <Units> Directory of system units Sys_*.pas Units for the different microcontrollers
On starting MC-51 (MC51.EXE) the first time, all necessary settings (location of Assembler, Pascal and C compiler, etc.) will be carried out automatically by the program.
If an experimentation board is connected to the computer,
the serial port used must be selected prior to the first operation:
Depending on which monitor program you are using, a few more settings are required:
If you are using PAULMON as monitor program, you can leave all settings at their default values (9600 baud, 0 ms and 50 ms). After powering up the experimentation board with this monitor implemented, the enter key within the terminal window must be pressed to cause the microcontroller to set itself to the chosen baud rate.
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:
; comment /project:<project name> ; name of project /compiler:1 ; Pascal /main:<mainfile> ; main file of the project /options:-A -J -T <source1> ; other source file(s) of project <source2> ..
Assembler:Download as zip file
Pascal:Download as zip file
For a course regularly held at the University of Kiel to teach Physics students the use and programming of microcontrollers, I developed an experimentation board that can be assembled by anyone having some experience in soldering electronic parts. The board provides connectors for several external components:
The following documents are currently available only in German.