This is a real universe. There is a real pletora of programming languages dedicated to the programming of the microcontrollers. In any case we can divide all this universe into two different galaxies: the open source galaxy (freeware) and the commercial galaxy (to be payd). To these galaxies belong all popular languages, normally created for personal computers but adapted and modified to be used with microcontrollers.
For a normal human being, all languages available can be quickly summarized in:
- assemblers
- basic (and derivates)
- pascal
- c (and derivates)
Assemblers and macro-assemblers are normally provided freeware by the house producing the microcontroller. In case of Microchip's picmicro is available a wonderful development environment periodically updated and upgraded: the MPlab ide. Unfortunately the learning curve of the assembler is quite long and, in our opinion, it is better to orientate the sight towards high-level languages, in any case it is possible to use the Mplab IDE to integrate an external compiler in theyr development environment.
High-level languages normally provides built-in definitions and routines to facilitate the whole programming and linking process to obtain the desidered 'hex' file to be written inside the memory of the microcontroller. Unfortunately the price of high-level languages can be quite high (not considering 'lite' versions limited on many aspects: lenght of the code, optimizations etc) and normally they are limited to 'families' of microcontrollers.
Here follows a table of the most common programming languages for picmicros:
FREEWARE |
COMMERCIAL |
|
Basic |
||
Pascal |
||
C |
||
Others |
...and others.
Some of them are really expensive, other are quite cheap or free, but all of them can be considered valid to obtain optimized hex codings for the microcontrollers we are programming. The choice of the compiler is simply a personal matter, probably the 'C' is more professional allowing to obtain a faster hex code, but this is not always true.