The previous section has described the 8 bit processors. While most of the original devices are no longer available, their architectures live on in the form of microcontrollers. These devices do not need much processing power — although this is now undergoing a radical change as will be explained later — but instead have become a complete integrated computer system by integrating the processor, memory and peripherals onto a single chip.
The MC68HC05 is microcontroller family from Motorola that uses an 8 bit accumulator-based architecture as its processor core. This is very similar to that of the MC6800 except that it only has a single accumulator.
It uses memory mapping to access any on-chip peripherals and has a 13 bit program counter and effectively a 6 bit stack pointer. These reduced size registers — with many other 8 bit processors such as the Z80/8080 or MC6800, they are 16 bits is size
— are used to reduce the complexity of the design. The microcontroller uses on-chip memory and therefore it does not make sense to define registers that can address memory that doesn’t exist on the chip. The MC68HC05 family is designed for low cost applications where superfluous hardware is removed to reduce the die size, its power consumption and cost. As a result, the stack pointer points to the start of the on-chip RAM and can only use 64 bytes, and the program counter is reduced to 13 bits.
The MC68HC11 is a powerful 8 bit data, 16 bit address microcontroller from Motorola that was on its introduction one of the most powerful and flexible microcontrollers available. It was originally designed in conjunction with General Motors for use within engine management systems. As a result, its initial versions had built-in EEPROM/OTPROM, RAM, digital I/O, timers,
8 channel 8 bit A/D converter, PWM generator, and synchronous and asynchronous communications channels (RS232 and SPI). Its current consumption is low with a typical value of less than 10 mA.
The basic processor architecture is similar to that of the 6800 and has two 8 bit accumulators referred to as registers A and B. They can be concatenated to provide a 16 bit double accumulator called register D. In addition, there are two 16 bit index registers X and Y to provide indexing to anywhere within its 64 kbyte memory map.
Through its 16 bit accumulator, the instruction set can support several 16 bit commands such as add, subtract, shift and 16 by 16 division. Multiplies are limited to 8 bit values.