INTRODUCTION
The 6800 was an 8-bit microprocessor designed and first manufactured
by Motorola in 1974. The MC6800 microprocessor was part of the M6800
Microcomputer System that also included serial and parallel
interface ICs, RAM, ROM and other support chips. A significant design feature
was that the M6800 family of ICs required only a single five-volt power
supply at a time when most other microprocessors required three voltages.
The M6800 Microcomputer System was announced in March 1974 and was in
full production by the end of that year.
The 6800 architecture and instruction set were influenced by the then
popular Digital Equipment Corporation PDP-11 mini computer. The 6800 has
a 16-bit address bus that could directly access 64 KB of memory and an 8-bit
bi-directional data bus. It has 72 instructions with seven addressing modes
for a total of 192 opcodes. The original MC6800 could have a clock frequency
of up to 1 MHz. Later versions had a maximum clock frequency of 2 MHz.
In addition to the ICs, Motorola also provided a complete assembly
language development system. The customer could use the software on a
remote timeshare computer or on an in-house mini-computer system. The
Motorola EXORciser was a desktop computer built with the M6800 ICs that
could be used for prototyping and debugging new designs. An expansive
documentation package included datasheets on all ICs, two assembly
language programming manuals, and a 700-page application manual that
showed how to design a point-of-sale computer terminal.
The 6800 was popular in computer peripherals, test equipment applications
and point-of-sale terminals. The MC6802, introduced in 1977, included 128
bytes of RAM and an internal clock oscillator on chip. The MC6801 and
MC6805 included with RAM, ROM and I/O on a single chip were popular in
automotive applications.
Motorola MC6800 Microprocessor.
6800 FAMILY
The 6800 family of 8-bit microprocessors (µPs) and microcontrollers (µCs) is
based upon the Motorola 6800 CPU. The architecture also inspired the MOS
Technology 6502, and that company initially started business producing
6800 clones. The first working MC6800 chips were produced in February
1974 and engineering samples were given to select customers. Hewlett
Packard in Loveland, Colorado wanted the MC6800 for a new desktop
calculator and had a prototype system working by June.
The MC6800 used a new single voltage N-channel MOS process that proved
to be very difficult to implement. The M6800 microcomputer system was
finally in production by November 1974. In addition to releasing a full set of
support chips with the 6800 microprocessor, Motorola offered a software and
hardware development system. The software development tools were
available on remote time-sharing computers or the source code was
available so the customer could use an in-house computer system. The
software that would run on a microprocessor system was typically written in
assembly language. The development system consisted of a text editor,
assembler and a simulator. This allowed the developer to test the software
before the target system was complete.
The hardware development was a desktop computer build with M6800 family
CPU and peripherals known as the EXORcisor. Motorola offered a three to five
day microprocessor design course for the 6800 hardware and software.This
systems-oriented approach became the standard way new microprocessor
were introduced.
Motorola 6800
Motorola 6801 (includes RAM and ROM)
Motorola 6803 (includes RAM)
Motorola 6805
Motorola 6808
Motorola 6809
Motorola 68HC05
Freescale 68HC08
Freescale 68HC11
Freescale 68HC12 (16-bit)
Motorola 68HC16 (16-bit)
PIN DIAGRAM OF 6800 MICROPROCESSOR FAMILY:
VSS 1 40 Reset
Halt 2 39 TSC
Phase1 3 38Not
connected
IRQ 4 37 Phase2
VMA 5 36 DBE
NMI 6 35Not
connected
BA 7 34 R/W
VCC 8 33 D0
A0 9 32 D1
A1 10 31 D2
A2 11 30 D3
A3 12 29 D4
A4 13 28 D5
A5 14 27 D6
A6 15 26 D7
A7 16 25 A15
A8 17 24 A14
A9 18 23 A13
A10 19 22 A12
A11 20 21 VSS
MC6800 MICROPROCESSOR DESIGN
Block diagram of a M6800 microcomputer system.
The Motorola 6800 and the Intel 8080 were designed at the same time and
were similar in function. The 8080 was a superset of the Intel 8008 which
was based on the Datapoint 2200 processor. The 6800 architecture was
modeled after the DEC PDP-11 processor. Both are TTL compatible, have an
8-bit bidirectional data bus, a 16-bit stack pointer, a 16-bit address bus that
can address 64 KB of memory and come in a 40-pin DIP package. The 6800
has two accumulators and a 16-bit index register. The Direct Addressing
mode allows fast access the first 256 bytes of memory. I/O devices are
addressed as memory so there are no special I/O instructions. The 8080 has
more internal registers and instructions for dedicated I/O ports. When the
8080 was reset, the program counter was cleared and the processor started
at memory location 0000. The 6800 loaded the program counter from the
highest address and started at the memory location stored there. The 6800
has a three-state control that will disable the address bus to allow another
device direct memory access. A disk controller could transfer data into
memory with no load on the processor. It is even possible to have two 6800
processors access the same memory.
MOS ICs typically used dual clock signals (a two-phase clock) in the 1970s.
These were generated externally for both the 6800 and the 8080. The next
generation of microprocessors incorporated the clock generation on chip.
The 8080 had a 2 MHz clock but the processing throughput was similar to the
1 MHz 6800. The 8080 require more clock cycles to execute a processor
instruction. The 6800 had a minimum clock rate of 100 kHz while the 8080
could be halted. Higher speed versions of both microprocessors were
released by 1976.
Other divisions in Motorola developed components for the M6800 family. The
Components Products Department designed the MC6870 two-phase clock IC;
the Memory Products group provided a full line of ROMs and RAMs. The
CMOS group's MC14411 Bit Rate Generator provided a 75 to 9600 baud clock
for the MC6850 serial interface. The buffers for address and data buses were
standard Motorola products. Motorola could supply every IC, transistor and
diode necessary to build a MC6800 based computer.
A Motorola MC6800 microprocessor registers and I/O lines.
6800 ARCHITECTURE
MEMORY:
Program, data and stack memories occupy the same memory space. The
total addressable memory size is 64 KB.
Program memory - Program can be located anywhere in memory. Jump
and subroutine call instructions can be used to jump anywhere in memory.
Conditional and unconditional branches are limited to memory addresses
positioned no farther than -125 - +129 bytes from the branch instruction.
Data memory - Data can be anywhere in memory space.
Stack memory - Stack can be placed anywhere in memory space.
Reserved memory locations:
FFF8h - FFF9h: Pointer to IRQ interrupt-processing routine.
FFFAh - FFFBh: Pointer to software interrupt-processing routine.
FFFCh - FFFDh: Pointer to NMI interrupt-processing routine.
FFFEh - FFFFh: Pointer to RESET handling code.
Some memory addresses may be reserved for memory mapped I/O as the
processor doesn't have hardware I/O capability.
INTERRUPTS:
IRQ (Maskable interrupt) When the interrupt occurs the program counter,
index register, accumulators and condition code registers are stored in the
stack, the further interrupts are disabled and the processor jumps to memory
location address of which is stored in memory FFF8h - FFF9h. To return from
the interrupt the processing routine should use RTI instruction. This interrupt
can be enabled/disabled using CLI/SEI instructions.
NMI (Non-maskable interrupt) When the interrupt occurs the program
counter, index register, accumulators and condition code registers are stored
in the stack, the further interrupts are disabled and the processor jumps to
memory location address of which is stored in memory FFFCh - FFFDh. To
return from the interrupt the processing routine should use RTI instruction.
This interrupt can not be disabled.
SWI (Software interrupt) This interrupt can be only invoked from the
program. When the interrupt occurs the processor stores the program
counter, index register, accumulators and condition code registers in the
stack, disables the further interrupts and jumps to memory location address
of which is stored in memory FFFAh - FFFBh. To return from the interrupt the
processing routine should use RTI instruction. This interrupt can not be
disabled.
REGISTERS:
Accumulator A (ACCA) is an 8-bit register used for arithmetic and logic
operations.
Accumulator B (ACCB) is an 8-bit register used for arithmetic and logic
operations.
Index (IX) is a 16-bit register usually used for temporary storage or as an
index when indexed addressing is used.
Program counter (PC) is a 16-bit register.
Stack pointer (SP) is a 16-bit register.
Condition code register contains the following flags:
Half carry (H) - set if there was a carry from bit 3 to bit 4 of the result
when the result was calculated.
Interrupt mask (I) - set if the IRQ interrupt is disabled.
Negative (N) - set if the most significant bit of the result is set.
Zero (Z) - set if the result is zero.
Overflow (V) - set if there was an overflow during last result
calculation.
Carry (C) - set if there was a carry from the bit 7 during last result
calculation.
INSTRUCTION SET:
6800 instruction set consists of 72 instructions:
Data moving instructions.
Arithmetic - add, subtract, negate, increment, decrement and
compare.
Logic - AND, OR, exclusive OR, complement and shift/rotate.
Control transfer - conditional, unconditional, call subroutine and return
from subroutine.
Other - clear/set condition flags, bit test, stack operations, software
interrupt, etc.
ADDRESSING MODES
There are 7 different address modes on the Motorola 6800 microprocessor.
ACCX (accumulator only):
In accumulator only addressing, either accumulator A or accumulator B is
specified. These are one-byte instructions.
Implied:
If the instruction is implied (eg. Inc A) then the contents of Accumulator A are
incremented by 1 and the fetch-instruction action is complete. This
instruction operates with the internal registers only.
Immediate:
If the instruction is immediate (eg. Lda A #$02) then the next byte is
fetched and treated as data, in this example 2 is placed into the
Accumulator A.
Direct:
If the instruction is direct (eg. Lda A $42) then the next byte is fetched and
00 is placed as the High Byte of the address ((00)42) of the data to be acted
upon. So it can only be used with addresses from $0000 to $00FF.
Extended:
If the instruction is extended (eg. Lda A $C300) then the next two bytes are
fetched at the address ($C300) and the data to be acted upon are the
contents of this address. So the contents of address ($C300) will be placed
into Accumulator A.
Indexed:
If the instruction is Indexed then the contents of the Index register are added
to the Displacement byte ($00 to $FF) and this forms a pointer to the
contents of the data to be acted upon.
Relative:
If the instruction is relative then the next byte is fetched and treated as an
offset to the PC during the following execution. This offset is a Signed
Number and allows the programme to branch forward up to +127 steps and
backwards to a maximum of -128 steps.
The final phase is the execution cycle. This depends on what the instruction
is. For example if it is sta A 42h than it will take the contents of the
Accumulator out to the Data register and onto the Data bus, will place the
address (00)42h on the Address bus and bring the R/W line low to write the
data into the memory at the specified address.
APPLICATIONS
The impact of 6800 family of microprocessors in different lures of fields is
significant. The availability of low cost, low power and small weight ,
computing capability makes it useful in different applications. Now a days , a
microprocessor based systems are used in instructions, automatic testing
product, speed control of motors , traffic light control, light control of
furnaces etc. Some of the important areas are:
Instrumentation:
It is very useful in the field of instrumentation. Frequency counters, function
generators, frequency synthesizers, spectrum analyses and many other
instruments are available , when microprocessors are used as controller. It is
also used in medical instrumentation.
Control:
Microprocessor based controllers are available in home appliances, such as
microwave oven, washing machine etc., microprocessors are being used in
controlling various parameters like speed, pressure, temperature etc. These
are used with the help of suitable transduction.
Communication:
They are being used in a wide range of communication equipments. In
telephone industry, these are used in digital telephone sets. Telephone
exchanges and modem etc. Their use in television, satellite communication
have made teleconferencing possible. Railway reservation and air
reservation system also uses this technology.
Office Automation and Publication:
Microprocessor based micro computer with software packages has changed
the office environment. Microprocessors based systems are being used for
word processing, spread sheet operations, storage etc. The microprocessor
has revolutionize the publication technology.
Consumer:
Their use in toys, entertainment equipment and home applications is making
them more entertaining and full of features. The use of microprocessors is
more widespread and popular.