SOD are ideal for many applications which involve critical I/O timing, the timing techniques used here may be of interest to software designers. Accord- ingly, the mathematical derivation of the timing parameters is included in this analysis, as well as a justification for the BRID algorithm. The algebra involved might be a bit too tedious for designers unconcerned with generating software delays. If so, they (and other bored readers) have the freedom of choice to skip over the sections they find objec- tionable.

OUTPUT ROUTINE

It would seem natural to write data in the standard format in three stages: output a zero start bit, then the 8 data bits (using a loop sequence), then the stop bits. Each stage would incorporate its own appropriate delay and output sections, leading to unnecessary duplication. Instead, the code below executes the same main loop 11 times. Its bit manipulation routine inherently results in the cor- rect data sequence being formed. It accomplishes this by using the carry and C register as a 9-hit pseudo-circular shift register. Initially CY=O. The algorithm outputs CY, waits one bit time, sets CY=I, and then rotates the pseudo-register right one bit. This repeats for 11 cycles. On the tenth and all subsequent loops, the output bit will be a logical one, since that bit had been set nine loops earlier while in the CY (see Figure 24).

When COUT is called the registers to be used must be preserved and interrupts disabled so the timing loop will not be disrupted. Clear the CY in prepara- tion for outputting the start bit, and set the loop counter for 11 bits (if 110 baud will never be used, the counter could be set to 10):

COUTo PUSH e

PUSH H

fi1

:v:RP. R

t~VI e.11

Output of the contents of the CY:

COl' MVI

PAR

The numbers in brackets indicate how many ma- cine cycles are req uired for each instruction. They will be referred to in the timing analysis section.

REGISTER C:

OUTPUT

STC

START BIT

CV:

OUTPUT

DO

OUTPUT

01

OUTPUT

06

OUTPUT

STOP BITS

-----------------~

Figure 24. Data Serialization Algorithm

Get stuck in a loop for the appropriate time (don't worry for now how "BITTIME" is determined):

 

LHlC'

8IiTIl~E

(1t.::

CO2

[:t(:R

CO2

.[I

 

.TNZ

•.:[1 !

 

(lCP

H

'.[.:.

 

JN2

CO2

I,D.!

Rotate the contents of register C right into the CY, while moving a one into the left end. Continue until all bits have been transmitted:

STC

MOV A.·C

PAP

t'10~' C.R

(:OCF.: B

.J~t2 COl

Restore processor status and return:

!

I

I,

I'"~

I

I

II

,

I

I

I

I'

A1-34

Page 175
Image 175
Intel MCS-80/85 manual Output Routine, Fi1

MCS-80/85 specifications

The Intel MCS-80/85 family, introduced in the late 1970s, is a seminal collection of microprocessors that played a pivotal role in the early days of computing. The MCS-80 series, initially targeting embedded systems and control applications, gained remarkable attention due to its innovative architecture and flexible programming capabilities.

The MCS-80 family is anchored by the 8080 microprocessor, which was one of the first fully integrated 8-bit microprocessors. Released in 1974, the 8080 operated at clock speeds ranging from 2 MHz to 3 MHz and featured a 16-bit address bus capable of addressing up to 64KB of memory. The processor’s instruction set included around 78 instructions, providing extensive capabilities for data manipulation, logic operations, and branching.

Complementing the 8080 was a suite of support chips, forming the MCS-80 platform. The most notable among them was the 8155, which integrated a static RAM, I/O ports, and a timer, tailored for ease of designing systems around the 8080. Other support chips included the 8085, which provided improvements with an integrated clock generator, making it compatible with more modern designs and applications.

The MCS-85 series, on the other hand, revolves around the 8085 microprocessor, which provided a more advanced architecture. The 8085 operated at clock speeds of up to 6 MHz and came with a 16-bit address bus, similar to its predecessor. However, it introduced more sophisticated features, including an enhanced instruction set and support for interrupt-driven programming. These enhancements made the 8085 especially appealing to developers working in real-time processing environments.

The MCS-80/85 family utilized NMOS technology, known for its lower power consumption and higher performance compared to previous technologies like TTL. The family’s architecture allowed for easy interfacing with a variety of peripherals, making it a favorite for educational institutions and hobbyists embarking on computer engineering projects.

With its robustness, versatility, and affordability, the Intel MCS-80/85 microprocessors laid the groundwork for many subsequent microcomputer systems and applications. The legacy of this powerful family continues to influence modern microprocessor design, emphasizing the importance of reliable architecture in a rapidly evolving technology landscape.