A
Allen Bong
I have wired a simple SBC based on the basic 8085 chip. Using 74LS373
as a latch clocked by
ALE, 2716 for program storage, 2x 74LS138 for decoding the /CE for
2716 and the /IOR, /IOW,
/MR and /MW signals. I need only 1 bit input and 1 bit output so I
used 74LS373 for input
and 74LS244 for output. The input is connected to a switch and output
conmected to a LED.
When the switch is making, the LED will flash at about 1Hz. When the
switch is off, the LED
goes off. There was no RAM as my program doesnt use subroutines.
Actually the program is
less than 256 bytes so I tie A8-A10 of the 2716 to ground.
Below is the connection of the 2 decoders and the I/O.
74LS138 74LS138
.------. .------.
1 | Y0o----- /ROM CS 1 | Y1|-----/MR
A13----|A | /WR----|A |
A14--2-|B Y1o----- /RD----|B Y2|-----/MW
A15--3-|C | IO/M----|C |
| Y2o----- | Y5|-----/IOR
VCC--6-| | VCC---6| |
+--4-o | +---4| Y6|-----/IOW
+--5-o | +---5| |
| | | | | |
| '------' | '------'
| |
=== === VCC
GND GND |
.-.
| |
OUTPUT INPUT | |10K
74LS373 74LS244 '-'
.------. .------. |
D0-----3|D0 Q0|2----+ D0--18-|Y0 A0|-2---++
| | | | | |
| | .-. | | o |
/IOW--+ | | | | | | |=|
| | | | |470 | | o |
+------+ | | '-' | | |
| |\ | | | | | |
+-| >O--11|LE | | | | ===
|/ | | LED - | | GND
-----1|/OE | ^ -> /IOR---1-|/OE |
| '------' | '------'
=== VCC
GND
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
And the program I wrote to test the circuit.
.equ sensor, h'00
.equ led, h'00
.org h'0000
start: mvi a,h'ff ;turn off led at start
out led
mloop: in sensor ;check sensor
rar
jnc led_on
jmp mloop
led_on: mvi a,h'00 ;turn on led
out led
delay1: lxi d,h'ffff
dloop1: nop
dcx d
jnz dloop1
mvi a,h'ff ;turn off led
out led
delay2: lxi d,h'ffff
dloop2: nop
dcx d
jnz dloop2
jmp mloop
.code
.end
I was wondering if I didnt fully understand the instructions correctly
or the hardware was
in problem. On the 74LS138 I used for memory decoding, I was getting
pulses on all the
output instead of just Y0 output. The IO/M pin was a permanent lo and
the /WR signal from
8085 was always high.
Do I need extra signals on the enables for the decoders to decode
correctly?
Any feedback is much appreciated. Thank you.
Allen
as a latch clocked by
ALE, 2716 for program storage, 2x 74LS138 for decoding the /CE for
2716 and the /IOR, /IOW,
/MR and /MW signals. I need only 1 bit input and 1 bit output so I
used 74LS373 for input
and 74LS244 for output. The input is connected to a switch and output
conmected to a LED.
When the switch is making, the LED will flash at about 1Hz. When the
switch is off, the LED
goes off. There was no RAM as my program doesnt use subroutines.
Actually the program is
less than 256 bytes so I tie A8-A10 of the 2716 to ground.
Below is the connection of the 2 decoders and the I/O.
74LS138 74LS138
.------. .------.
1 | Y0o----- /ROM CS 1 | Y1|-----/MR
A13----|A | /WR----|A |
A14--2-|B Y1o----- /RD----|B Y2|-----/MW
A15--3-|C | IO/M----|C |
| Y2o----- | Y5|-----/IOR
VCC--6-| | VCC---6| |
+--4-o | +---4| Y6|-----/IOW
+--5-o | +---5| |
| | | | | |
| '------' | '------'
| |
=== === VCC
GND GND |
.-.
| |
OUTPUT INPUT | |10K
74LS373 74LS244 '-'
.------. .------. |
D0-----3|D0 Q0|2----+ D0--18-|Y0 A0|-2---++
| | | | | |
| | .-. | | o |
/IOW--+ | | | | | | |=|
| | | | |470 | | o |
+------+ | | '-' | | |
| |\ | | | | | |
+-| >O--11|LE | | | | ===
|/ | | LED - | | GND
-----1|/OE | ^ -> /IOR---1-|/OE |
| '------' | '------'
=== VCC
GND
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
And the program I wrote to test the circuit.
.equ sensor, h'00
.equ led, h'00
.org h'0000
start: mvi a,h'ff ;turn off led at start
out led
mloop: in sensor ;check sensor
rar
jnc led_on
jmp mloop
led_on: mvi a,h'00 ;turn on led
out led
delay1: lxi d,h'ffff
dloop1: nop
dcx d
jnz dloop1
mvi a,h'ff ;turn off led
out led
delay2: lxi d,h'ffff
dloop2: nop
dcx d
jnz dloop2
jmp mloop
.code
.end
I was wondering if I didnt fully understand the instructions correctly
or the hardware was
in problem. On the 74LS138 I used for memory decoding, I was getting
pulses on all the
output instead of just Y0 output. The IO/M pin was a permanent lo and
the /WR signal from
8085 was always high.
Do I need extra signals on the enables for the decoders to decode
correctly?
Any feedback is much appreciated. Thank you.
Allen