Assignment

17
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

Transcript of Assignment

Page 1: Assignment

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.

Page 2: Assignment

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

Page 3: Assignment

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)

Page 4: Assignment

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

Page 5: Assignment

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.

Page 6: Assignment

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

Page 7: Assignment

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.

Page 8: Assignment

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

Page 9: Assignment

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.

Page 10: Assignment

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.

Page 11: Assignment

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:

Page 12: Assignment

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

Page 13: Assignment

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. 

Page 14: Assignment

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.