Motorola MC68HC11 Microcontroller

The **MC68HC11** is an **8-bit microcontroller** developed by **Motorola** (later Freescale, now NXP). It is widely used in **automotive, industrial, and embedded systems** due to its rich set of **peripherals, ROM, RAM, EEPROM, and I/O support**.

Architecture Overview

Memory and Storage

Peripherals and Features

MC68HC11 Variants

Model ROM RAM EEPROM GPIO Timers ADC Special Features
MC68HC11A1 8 KB 512 B 512 B 40 16-bit 8-bit Expanded bus support
MC68HC11E9 12 KB 1 KB 512 B 38 16-bit 8-bit Enhanced timer functions
MC68HC11F1 64 KB 1 KB 1 KB 40 16-bit 8-bit Extended addressing

Programming the MC68HC11

The MC68HC11 can be programmed using **assembly language, C, and BASIC**.

1. Assembly Language Example

Simple program to toggle an LED connected to **PORTB**:


ORG $1000
START:
    LDAA #$FF       ; Load A with 0xFF
    STAA PORTB      ; Output to PORTB (turn LED on)
    JSR DELAY       ; Delay
    CLRA            ; Clear A (0x00)
    STAA PORTB      ; Output to PORTB (turn LED off)
    JSR DELAY       ; Delay
    JMP START       ; Repeat
DELAY:
    LDX #$FFFF      ; Load X with max count
WAIT:
    DEX             ; Decrement X
    BNE WAIT        ; Loop until X = 0
    RTS             ; Return
        

2. C Programming with GCC

Basic **C program** to toggle an LED on **PORTB**:


#include <mc68hc11.h>
void delay() {
    volatile int i;
    for(i = 0; i < 50000; i++);
}
int main() {
    DDRB = 0xFF;  // Set PORTB as output
    while(1) {
        PORTB = 0xFF; // LED ON
        delay();
        PORTB = 0x00; // LED OFF
        delay();
    }
    return 0;
}
        

Development Tools

Applications of MC68HC11

Conclusion

The **MC68HC11** is a robust microcontroller with **on-chip memory, versatile peripherals, and low power consumption**. It remains a **popular choice in legacy embedded applications**, particularly in automotive and industrial sectors.