MC14500 - A 1-bit Industrial CPU
The Motorola MC14500B Industrial Control Unit
The Motorola MC14500 is the smallest microprocessor ever produced - it has a 1 bit data bus. You probably wouldn't want to build a general purpose computer with one, but the MC14500B was very useful in industrial control applications, where it replaced circuits built from relays or programmable logic devices. It's also perfect for learning how microprocessors are designed and constructed. If you've ever wanted to make your own CPU, cloning the MC14500B is easy and makes a great learning experience. That's what I'm going to do with this page...
The MC14500B is built around a Logic Unit (LU) and Result Register (RR). The LU performs Boolean logic functions with the results stored in the RR. Data input to the LU is from the RR and the 1 bit data bus. Instructions are presented to the MC14500B on 4 instruction pins and are latched into the Instruction Register (IR) on each clock cycle. Since 4 pins give 16 possible combinations, the MC14500B can decode and execute 16 different instructions. Thanks to the simplicity of the chip, It would be very easy to make a duplicate of the MC14500B from commonly available TTL or CMOS logic chips.
MC14500B Logic Diagram
Pin assignments for the MC14500
The MC14500B only had 16 pins, as follows:
- RST - Chip Reset
- Write - Write Pulse
- Data - Data In/Out
- I3 - Most Significant Bit (MSB) of Instruction Word
- I2 - Bit 2 Instruction Word
- I1 - Bit 1 Instruction Word
- I0 - Least Significant Bit (LSB) Instruction Word
- VSS - Negative Power Supply (Ground)
- FLGF - Flag on NOP F
- FLGO - Flag on NOP O
- RTN - Subroutine Return Flag
- JMP - Jump Instruction Flag
- X2 - Oscillator Input
- X1 - Oscillator Output
- RR - Result Register
- VDD - Positive Supply
MC14500B Instruction Set
No change in registers; RR → RR, FLG0 ← CLK
Load Result Reg.; D → RR
Load Compliment Result Reg.; D → RR
Logical AND; D ⋅ RR → RR
Logical AND Compl.; D ⋅ RR → RR
Logical OR; D + RR →RR
Logical OR Compl.; D + RR → RR
Exclusive NOR; If RR = D, RR ← 1
Store; RR → Data Pin, Write ← 1
Store Compl.; RR → Data pin, Write ← 1
Input Enable; D → IEN Reg
Output Enable; D → OEN Reg
Jump; JMP Flag ← CLK
Return; RTN Flag ← CLK, Skip next inst.
Skip next instruction if RR = 0
No change in registers; RR → RR, FLGF ← CLK
Where to find them...
Sometimes out of production parts are hard to find and command high prices. A few years ago I auctioned one on eBay that went for over $100 (with an original handbook) and another without the handbook for around $60 with inquiries from bidders as far away as Japan. Usually things are a little saner though, and they go for around $20 or less. You may have to be patient though as they aren't always available - in which case you can either wait or build your own from discreet logic. Currently there seems to be a lot of them available and you can get brand new ones (not "pulls") for around $10.
An MC14500 Clone - Video demo of a clone circuit built from discrete logic...
When I started writing this page I didn't know that others had already built clones of the MC14500, but while researching for this page I found this really cool video on YouTube. The video description has a link to a circuit diagram for an MC14500 built from discreet logic and I can't tell you how hard it is to not look at the circuit diagram... I want to design my own! I did download the diagram though so I can compare it to my own design once I'm finished. Actually, the architecture is so simple it might be fun to design and build one from individual transistors...
Useful MC14500 Links
The Soul of A New Machine
More by this Author
The Mopar 273 was Chrysler's first LA small block V8. It was introduced in 1964 with a 2-barrel carburetor and made 180 HP.
Building a 318 engine step-by-step with resources, recommendations, and suggestions from experience.
Tips and resources to build a small-block Mopar 360.