Microcontrollers - The hidden computers in our lives
Created | Updated Jan 28, 2002
A microcontroller can be thought of as a specialised computer which is dedicated to performing one particular job. Physically, it is often just a single chip and does not need very much power to run - many can be battery operated.
They do fairly mundane jobs, such as controlling your dishwasher, microwave oven and video recorder.
My favourite microcontroller family is the 8051 series. These were originally (and still are) produced by Intel in the '80s and have evolved into a vast range of variants, supplied by many major manufacturers. It is reckoned that some 4 billion 8051 type microcontrollers have been produced.
Given that microcontrollers perform tasks which seem quite 'simple', one might mistakenly think that the job of programming these devices is simpler than writing a program for the average PC. Nothing could be further from the truth. A good microcontroller developer needs to understand not only the application in hand, but the hardware which is being controlled, the relevant timing parameters, tolerances, failure conditions, and so on.
When writing a program for a microcontroller, the programmer does not usually have an rich operating system environment (like Windows or Linux or Solaris or HPUX etc.) to rely upon. The code tends to be rather more self sufficient and self contained.
Unit cost is also an important factor. If the program which you are developing requires a few dozen bytes of memory less than a competitor offering, a few pence/cents might be saved from the cost of the microcontroller part. Not really worth considering if you only plan a production run of 2000 units - but consider the savings if you plan a run of 8 million units!
Over the years, good developers of embedded microcontroller code have built tools which they wanted to share in order that others might be more productive. These tools include high level language compilers and interactive debuggers. Many are available as freeware systems.