NOTE:
We are currently using Atmel processors for this course
We are currently using the Atmel 328P microcontroller
for this course (Arduino Nano). Since the following text is specific
for the Motorola (Freescale) 68.332 processor and assembly language is
machine-specific (and manufacturer-specific), the following online tutorial is
not being used this year.
For information about the Atmel controller and assembly language, see the
Nano directory or use our
Online Q&A Library for online learning.
Tutorial 3: Assembly Code with MC68332
This tutorial and associated laboratory will show you
how to write assembly code for the MC68332 CPU. It is suggested that
you also look at a detailed
explaination of the MC68332 from Motorola. (Note: After following
the link, click 'Controller' -> 'Hardware' -> 'Data Sheets')
Introduction
Motorola introduced the MC6600 microprocessor in 1974. It was an 8-bit
microprocessor designed for personal computers and specialized products
requiring microprocessor control. In the years that followed, Motorola
and other manufacturers introduced 16-bit and 32-bit microprocessors
and also began combining other capabilities (like memory, timing circuits,
and I/O circuitry) to create an integrated circuit chip called a microcontroller.
The microcontroller contained in the Eyebot is the Motorola MC68332
microcontroller, which was first released in 1989. This microcontroller
is what we will be using for this embedded systems course. Some typical
applications for the MC68332 are
- Automotive (antiskid braking, fuel injection and ignition control,
electronic instrumentation panel, and ride control)
- Data Acquisistion and Control (real-time control systems, industrial
process control)
- Scientific Instruments (oscilloscopes, spectrum analyzers)
- Consumer Products (printers, copiers, cameras, appliances)
Motorola MC68332 Microcontroller Unit (MCU)
The emphasis for a MCU is rapid response to external
events such as interrupt requests. The core of the MCU is the MC68332
CPU, which will be refered to as the CPU32 for the rest of the tutorial.
As with many microprocessors, the circuit-level operation of the CPU32
is controlled by a microprogrammed sequence of instructions stored in
ROM. The machine-language instructions from external memory are fetched
and decoded, causing the execution of the microprograms. The microprograms
are stored in the ROM during the chip manufacture and cannot be modified
by the programmer.
The CPU32, with its pipeline and highly parallel internal
architecture, is capable of executing a new instruction every two clock
cycles if the instructions reside in the on-chip memory.