1
\$\begingroup\$

I am toying with the idea of building an Intel 8085 demonstration/study kit which would consist of an Intel 8085 microprocessor on a PCB, where all input nodes (including the clock X1, X2) would be connected to switches and the output nodes would be connected to LEDs. The user would then manually simulate the memory step-by-step by using the switches and storing the data on paper.

My question is whether this would be feasible. In particular, can the 8085 handle a "clock" signal that is activated by hand, i.e. very very low and irregular frequency? Moreover for the bidirectional bus, what would be a good design to keep the read and write modes? And is there anything that I should be especially aware of, or that may easily go wrong?

\$\endgroup\$
  • \$\begingroup\$ Any reason why someone would study an extremely obsolete MCU from the 1970s? What you want is probably some manner of "PLD" programmable logic written in VHDL or similar. Or if you want to teach students how a computer works, then hook up a modern Cortex M to a decent debugger, then single-step through the assembly as you watch the physical outputs. It doesn't have the sexiest assembler language, but neither did the 80xx junk. \$\endgroup\$ – Lundin Jan 7 at 14:52
  • \$\begingroup\$ Trust me, clocking a CPU manually gets old really fast. You quickly realize that it takes dozens, hundreds or even thousands of instructions in order to accomplish anything useful -- with a LOT of boring repetition! If you really want to study how a CPU works at this low level of detail, you should take a look at Ben Eater's project. \$\endgroup\$ – Dave Tweed Jan 7 at 16:49
2
\$\begingroup\$

No. The 8085 uses dynamic logic internally, which means that it has a minimum required clock frequency for operation. The maximum clock period is 2000 ns, which corresponds to a minimum frequency of 500 kHz.

You need to look for a processor that's rated for "static" operation, whose clock frequency specification goes all the way to 0 Hz. (There might be CMOS 8085 "clones" from other manufacturers that meet this requirement.1) Even then, you'll have to add circuitry to "debounce" the switches you use for the clock and certain other critical (i.e., edge-sensitive) signals.


1 Maybe not. I just checked, and the OKI 80C85 used in my TRS80 Model 100 still has the maximum clock period of 2000 ns.

\$\endgroup\$
  • \$\begingroup\$ Thanks a lot! Could you elaborate on what you mean by "debounce" the switches? What would be the issue? \$\endgroup\$ – citronrose Jan 7 at 13:43
  • 3
    \$\begingroup\$ @citronrose Without wishing to cause offence, if you're not aware of switch bounce, I fear you would be unsuccessful in your endeavour to build a working computer from the component level. Switch bounce is exactly as it sounds, the contacts of the switch bouncing creating multiple low/high transitions per press. \$\endgroup\$ – Colin Jan 7 at 13:46
  • \$\begingroup\$ @Colin I see, no offense taken. \$\endgroup\$ – citronrose Jan 7 at 13:53
  • \$\begingroup\$ A Z80 is substantially similar and fully static, but IMHO the project is a bad idea. Simulate it first and you'll see how painful it will be to use. Don't spend budgets on hardware for such a purpose; do an instruction or two as a paper exercise if you like, but spend the hardware money on something that can actually run and maybe be interacted with via a monitor routine. \$\endgroup\$ – Chris Stratton Jan 7 at 16:26
  • \$\begingroup\$ @Chris what about interfacing the processor with an arduino and program the arduino so that it sends the appropriate signals and logs the processor output? Would that make more sense? \$\endgroup\$ – citronrose Jan 8 at 13:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.