You're currently on: Catalog » Guides » Build a complete 80C31 computer on breadboards
The Philips P80C31SFPN is a ROM-less 8051-family CPU. It cannot run from power alone: it needs a clock, a reset circuit, an external program ROM, and a latch to separate the low address byte from the data bus. This build adds 8 KB of external RAM and two diagnostic LEDs. Every active part named below is sold by iMania; the remaining materials are ordinary passives, hookup wire, a regulated 5 V supply, and the tools needed to program the ROM. This is a wiring guide, not a claim that the assembled circuit has been bench-tested.
Also use a regulated 5 V supply, hookup wire, a 100 nF ceramic capacitor directly across each IC's supply pins, one 10 µF rail capacitor, two 22 pF ceramic capacitors for the crystal, one 10 µF reset capacitor, one 10 kΩ resistor, two 1 kΩ LED resistors, and an optional normally-open reset button. A 40-pin socket is optional; the shop has a DIP-40 socket. The SMT crystal needs two short soldered wires; do not jam its surface-mount pads into breadboard contacts. A ROM programmer is a preparation tool, not part of the running circuit. An unprogrammed OTP ROM will not boot.
The CPU first puts A0–A7 on port 0 and A8–A15 on port 2. ALE goes high, making the SN74ALS873BNT transparent; when ALE falls, the latch holds A0–A7. Port 0 can then become the D0–D7 data bus. A low PSEN lets the ROM drive the bus for an instruction fetch. A low RD lets the RAM drive it for a MOVX read; a low WR writes RAM. The ROM and RAM have separate address spaces even though they share the same data wires. Never join their output-enable pins: that would make both chips drive the bus together.
MOVX
n=0…7
The supplied test program source and 64 KB ROM binary start at code address 0000h. The program writes 5Ah to external RAM address 0000h and reads it back. If it matches, P1.0 blinks; if it fails, P1.1 stays lit. Program the 64 KB binary into a blank AT27C512R-55PC with a programmer that explicitly supports that exact device, and verify the programmed ROM byte-for-byte. It is one-time programmable: a wrong image needs another blank chip. Disconnect power before inserting or removing any IC.
Power the breadboards from a current-limited regulated 5 V source. Check for 5 V and ground at each chip before inserting the ROM. On boot, P1.0 should blink and P1.1 should remain off. If neither responds, check reset release, oscillator activity, EA low, ALE pulses, ROM PSEN/OE, and the first three code bytes at address 0000h. If P1.1 lights, re-check the RAM's two chip selects, RD/WR, and the shared data/address mapping. Do not probe the crystal with a heavy scope lead: its loading can stop oscillation. This design has not been physically bench-verified; long breadboard wires can make an otherwise correct 11 MHz circuit unreliable.
Pin numbers and timing were checked against the Philips 80C31/80C32 datasheet, TI SN74ALS873B datasheet, Microchip AT27C512R datasheet, and the original Hitachi HM6264LP-15 datasheet (1985 Hitachi IC Memories Data Book, page 158). Check the markings and notches on your actual parts before applying power.
We use cookies to provide you with the best possible experience. They also allow us to analyze user behavior in order to constantly improve the website for you.