separate chips and have proved to be highly popular in embedded systems since their
introduction in the 1970s.
Some microcontrollers can afford to use a Harvard architecture: separate
memory buses for instructions and data, allowing accesses to take place concurrently.
The decision of which peripheral to integrate is often difficult. The
Microcontroller vendors often trade operating frequencies and system design
flexibility against time-to-market requirements from their customers and overall lower
system cost. Manufacturers have to balance the need to minimize the chip size against
additional functionality.
Microcontroller architectures are available from many different vendors in so
many varieties that each instruction set architecture could rightly belong to a category
of their own. Chief among these are the 8051, Z80 and ARM derivatives.[citation
needed]
A microcontroller (also MCU or µC) is a functio
nal computer system-on-
a-chip. It contains a processor core, memory, and programmable
input/output peripherals.
Microcontrollers include an integrated CPU, memory (a small amount
of RAM, program memory, or both) and peripherals capable of input and output.
It emphasizes high integration, in contrast to a microprocessor
which only contains a CPU (the kind used in a PC). In addition to the
usual arithmetic and logic elements of a general purpose
microprocessor, the microcontroller integrates additional elements
such as read-write memory for data storage, read-only memory for
program storage, Flash memory for permanent data storage,
peripherals, and input/output interfaces. At clock speeds of as little as
32KHz, microcontrollers often operate at very low speed compared to
microprocessors, but this is adequate for typical applications. They
consume relatively little power (milliwatts or even microwatts), and
will generally have the ability to retain functionality while waiting for
an event such as a button press or interrupt. Power consumption while sleeping (CPU
clock and peripherals disabled) may be just nanowatts, making them ideal for low
power and long lasting battery applications.
Microcontrollers are used in automatically controlled products and devices, such
as automobile engine control systems, remote controls, office machines, appliances,
power tools, and toys. By reducing the size, cost, and power consumption compared
to a design using a separate microprocessor, memory, and input/output devices,
microcontrollers make it economical to electronically control many more processes.
The majority of computer systems in use today are embedded in other
machinery, such as automobiles, telephones, appliances, and peripherals for computer
systems. These are called embedded systems. While some embedded systems are very