Equivalent schematic for 8255 (8086 Interfacing)

Thread Starter

Xavier Pacheco Paulino

Joined Oct 21, 2015
728
Hello,
Does anyone know how I can use TTL such as 74245, 74373 to build a circuit which works same as the 8255? I attach the picture below.

I want to use that 4x4 keyboard and show a 5-digit number so I need five 7segment displays. But what I would like to know first is how I can change the 8255 for another equivalent schematic.

I would appreciate any hints.

Thanks
 

Attachments

MrChips

Joined Oct 2, 2009
21,041
The 8255 equivalent circuitry is probably overkill for what you want to do.
All you really need is one input port and one output port with the associated I/O address decoder and read/write control.
How many bits of input and how many bits of output do you really need?
 

Papabravo

Joined Feb 24, 2006
13,688
This would be a tall order, since the device implements functionality that was not available from TTL devices of that era. If I was doing this the only practical way would be to use an FPGA. I could not even hazard a guess as to which FPGA might be suitable, but one that can emulate an antique 8-bit processor would be a good start.
 

ian field

Joined Oct 27, 2012
6,539
The 8255 equivalent circuitry is probably overkill for what you want to do.
All you really need is one input port and one output port with the associated I/O address decoder and read/write control.
How many bits of input and how many bits of output do you really need?
I'd agree with that - bus buffers or flip-flops might be the way to go in the first place.

Around the late 70s early 80s; there were occasional magazine articles to use interface controller chips from other CPU families.

The 6800 variety had memory mapped I/O while anything starting with 8 used port addressed I/O - that was probably the biggest hurdle to playing mix & match with peripheral support chips.
 

Papabravo

Joined Feb 24, 2006
13,688
I'd agree with that - bus buffers or flip-flops might be the way to go in the first place.

Around the late 70s early 80s; there were occasional magazine articles to use interface controller chips from other CPU families.

The 6800 variety had memory mapped I/O while anything starting with 8 used port addressed I/O - that was probably the biggest hurdle to playing mix & match with peripheral support chips.
Trying to get a bunch of chips on a small board was really hard with those "gunboat" 40-pin DIPs. Then the first Motorola 68000 DIPs showed up and we were blown away at the required real estate.
 

hp1729

Joined Nov 23, 2015
2,304
Hello,
Does anyone know how I can use TTL such as 74245, 74373 to build a circuit which works same as the 8255? I attach the picture below.

I want to use that 4x4 keyboard and show a 5-digit number so I need five 7segment displays. But what I would like to know first is how I can change the 8255 for another equivalent schematic.

I would appreciate any hints.

Thanks
Latches and buffers would be practical. Forget about emulating the 8255. The 8255 has many configurations,.
 

Attachments

absf

Joined Dec 29, 2010
1,943
You may use transparent latches for outputs and HC244 non-inverting buffers for inputs.
Assuming the display is common-cathode type.

8255 SUBST.PNG

Not sure how to decode the RD and WR signals to work with 8086.

Allen
 

ScottWang

Joined Aug 23, 2012
6,892
Is this a homework or just the personal leaning?
You want the function equal to 8255 or just similar as its input and output?
 

ian field

Joined Oct 27, 2012
6,539
Hello,
Does anyone know how I can use TTL such as 74245, 74373 to build a circuit which works same as the 8255? I attach the picture below.

I want to use that 4x4 keyboard and show a 5-digit number so I need five 7segment displays. But what I would like to know first is how I can change the 8255 for another equivalent schematic.

I would appreciate any hints.

Thanks
Having looked over the replies so far - I'd suggest clocking out the data on one line into a 20 stage shift register. For each digit; you need 4 bit BCD nibble - the real estate is pretty much the shift register (might be 2 packages) and 5x BCD to 7-segment decoder drivers.

If you're into programming anyway - the extra coding is probably much less ordeal than the hardware you avoid.
 

Papabravo

Joined Feb 24, 2006
13,688
You may use transparent latches for outputs and HC244 non-inverting buffers for inputs.
Assuming the display is common-cathode type.

View attachment 122548

Not sure how to decode the RD and WR signals to work with 8086.

Allen
This is just a partial solution for solving the problem at hand without access to an 8255. I was thinking that the original question was the complete emulation of the 8255 with bi-directional port configuration and extra registers inside for interesting uses of the device as a parallel data exchange device.

To add RD* and WR*, you combine the active low output from the address decoder with either RD* for an I/O READ or WR* for an I/O WRITE. We used the gate which implements the following logic: a LOW AND a LOW is a LOW. IIRC that would be a 74HC32. If you are not sure about the 8086 electrical characteristics, I would us 74HCTxxx parts to match the TTL (not CMOS) characteristics of the original, non-CMOS, parts (ca. 1978).
 
Last edited:

absf

Joined Dec 29, 2010
1,943
This is just a partial solution for solving the problem at hand without access to an 8255. I was thinking that the original question was the complete emulation of the 8255 with bi-directional port configuration and extra registers inside for interesting uses of the device as a parallel data exchange device.

To add RD* and WR*, you combine the active low output from the address decoder with either RD* for an I/O READ or WR* for an I/O WRITE. We used the gate which implements the following logic: a LOW AND a LOW is a LOW. IIRC that would be a 74HC08. If you are not sure about the 8086 electrical characteristics, I would us 74HCTxxx parts to match the TTL (not CMOS) characteristics of the original, non-CMOS, parts (ca. 1978).
I took a few minutes and modified the circuit as below. Does it look OK now?

8522 INTERFACING 2.PNG
Allen
 

Papabravo

Joined Feb 24, 2006
13,688
That looks better, but are you sure you need both U5\C and U5\D? I think one will suffice.
Sorry for the back slashes colon-D looks like an SEG.
The gate you should use is a 74HCT32. That gate provides the following function:
  • A LOW AND a LOW is a LOW
 
Last edited:

MrChips

Joined Oct 2, 2009
21,041
Allen, the logic gates don't look right to me.
You want ADDRESS AND CONTROL.
Now use DeMorgan's equivalents when working with negative logic.
 

MrChips

Joined Oct 2, 2009
21,041
Allen, I should have said it differently from what I posted in post #14.

The AND function is correct. What you needed to change was the input and output levels to take into account the inverted signals.

In my books, one needs to show the logic function and not the actual gate used to implement it.

In this case we need the (ADDRESS OUTPUT) AND (CONTROL SIGNAL). Hence we would show an AND-gate.
If the inputs and output are negated, then we show the DeMorgan's equivalent of a 7432 OR-gate using figure U1B in the diagram below.

Hence U6-A and U6-B should be drawn as U4B while U7A should be U1B.


DeMorgan's Equivalent Gates
 

Papabravo

Joined Feb 24, 2006
13,688
A 2-input OR gate, e.g. 74HCT32, simultaneously implements the following two functions, which are de Morgan equivalents:
  1. a HIGH OR a HIGH is a HIGH
  2. a LOW AND a LOW is a LOW
Similar statement pairs can be made for each of the 2-input gates, e.g. 74HCT00, 74HCT02, and 74HCT08
 

absf

Joined Dec 29, 2010
1,943
Yes, in Proteus, I do have all the gates in the alternate DeMorgan represenations in the "Modelling Primitives" but not in the real TTL or CMOS part bins.

demorgan gates.PNG

For example the U1 "OR_2 gate" can also be drawn as U2 "OR_2 DM" etc. Except the inverter and non-inverted buffer have no alternative drawings.

Today I learned something new, though I have seen the gates being drawn that way, I did not realize the implication on the clarity of schematics drawing this way.

Thanks for teaching this to me. :)

Allen
 

MrChips

Joined Oct 2, 2009
21,041
Another thing to note, it helps if you draw logic schematics with a "bubble" to indicate NEGATIVE LOGIC on the IC drawing (along with the bar over the label).

For example, /RD, /WR and /OE should be drawn with bubbles at the source and load.

Hence, mentally you can slide a "bubble" along the "wire" and two bubbles will cancel leaving you with the AND function in this example.
If you are consistent with this notation it works most the time but not always.
 
Top