Home

Advertisement

Customize
 
 
08 July 2009 @ 09:07 am
Free Pascal Compiler for 8051 Microcontrollers  
Category: Computers and Technology

The majority of computer systems in use today are embedded in other machinery, such as automobiles, telephones, mp3 players, and most of peripherals for computer systems. These computers are called embedded systems. An embedded system is a special-purpose computer system designed to perform one or a few specialized functions, often with real-time processing. It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal computer, can do many different tasks depending on programming. Embedded systems control a lot of common devices in use today.

While some embedded systems are very sophisticated, many have minimal requirements for memory and program length, with no operating system, and low software complexity. Typical input and output devices include switches, relays, solenoids, LEDs, small or custom OLED displays, RF devices, and sensors for data such as temperature, atmospheric pressure, motion etc. Embedded systems usually have no keyboard, screen, disks, printers, or other recognizable I/O devices of a PC, and may lack human IO devices of any kind.

A key component in many embedded systems is a microcontroller. A microcontroller (also MCU or uC) is a complete computer system-on-a-chip (SoC). It contains a processor core, memory, and programmable input/output peripherals. Microcontrollers include an integrated CPU, memory (a small amount of RAM, nonvolatile program memory, or both) and peripherals capable of input and output. Microcontrollers are used in automatically controlled products and devices, such as car engine control systems, remote controls, office machines, appliances, mobile phones, and consumer electronics. By reducing the size, cost, and power consumption compared to a design using a separate microprocessor, memory, and IO devices, microcontrollers make it economical to electronically control many more processes. One of the still very popular 8-bit microcontrollers is Intel 8051.

The 8051 microcontroller is a Harvard architecture, single chip microcontroller which was developed by Intel in 1980 for use in embedded systems. Intel's original versions were widely used in the 1980s and also in 1990s, but has today largely been superseded by a vast range of faster and functionally enhanced 8051-compatible microcontrollers manufactured by more than 20 independent manufacturers including Atmel, Infineon Technologies (formerly Siemens AG), Maxim Integrated Products (via its Dallas Semiconductor subsidiary), NXP (formerly Philips Semiconductor), Nuvoton (formerly Winbond), ST Microelectronics, Silabs (formerly Cygnal), TI and Cypress Semiconductor. Intel's official designation for the 8051 family of microcontrollers is MCS-51.

Many C compilers are available for the 8051 family, most of which feature extensions that allow the programmer to specify where each variable should be stored in its six types of memory, and provide access to 8051 specific hardware features such as the multiple register banks and bit manipulation instructions. Other high level languages such as Pascal, BASIC, Forth, PL/M and Modula 2 are available for the 8051 , but they are less widely used than C and assembler. In embedded world C is almost a standard for programming. There are many debates on which language is better, in particular between C and Pascal programmers. There is no clear winner.

C is a general, structured, procedural, cross-platform, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. Although C was designed for implementing operating systems and system software, it is also widely used for developing application software. It is widely used on many different software platforms and computer architectures, and several free compilers exist. C has greatly influenced many other popular programming languages, most notably C++, which originally began as an extension to C .

Pascal is an influential, imperative and procedural programming language, designed by Niklaus Wirth in late 1960s as a small and efficient language intended to encourage good programming techniques using so-called structured programming and data structuring. A derivative known as Object Pascal was designed for object oriented programming.

Until recently there was no reliable and efficient Pascal compiler for the 8051 microcontrollers. Now this has changed. There is Turbo51, a free Pascal compiler for 8051 microcontrollers. If you like Pascal programming language and yoy are programming for 8051 microcontrollers then you will find Turbo51 an indispensable tool.

Turbo51 is a Win32 command line optimizing compiler with Borland Turbo Pascal 7 syntax. It has full floating point support, you can mix Pascal and assembly language using all register banks. Advanced multi-pass optimizer and smart linker generate high quality code in many formats: binary (.bin), Intel HEX (.hex), OMF-51 (.omf), assembler source code (.asm). Source-level debugging is also possible with extended object (OMF) file.

One of the key strengths of Turbo51 are optimizations to generate compact code. Turbo51 uses the following compiler optimizations: constant folding, dead code elimination, branch elimination, integer arithmetic optimizations, loop-invariant code motion, code-block reordering, loop inversion, induction variable elimination, instruction combining, instruction selection, register allocation, common sub-expression elimination, peephole optimizations and many more.

Turbo51 is released as a freeware. You can download it and use it for hobby projects or serious work. On the Turbo51 web page you will find documentation and code examples that show the syntax, features and generated files. This should be enough to start a 8051 project development with Turbo51. And if you are still missing some command or have a problem you can always ask author for help.

If you are already familiar with the 8051 instructions you can start with Turbo51 as 8051 assembly language compiler and then add some Pascal statements until you become familiar with Turbo51 and Pascal syntax. A good approach is also to compile some Pascal code and then check generated code. This way you can learn 8051 instructions, get some ideas on how to write effective code and become familiar with the compiler. Turbo51, like many common C compilers for 8051, generates optimized code and supports source-level debugging with OMF object file.

With Turbo51 you have a choice. You can choose between plethora of C compilers and Turbo51 - a free Pascal compiler for 8051 microcontrollers.
 
 
 
 

Advertisement

Customize