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...
MC14500B Architecture
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
MC14500B Pinout
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
Inst
Code
Mnemonic
Action
#0
0000
NOP0
No change in registers; RR → RR, FLG0 ← CLK
#1
0001
LD
Load Result Reg.; D → RR
#2
0010
LDC
Load Compliment Result Reg.; D → RR
#3
0011
AND
Logical AND; D ⋅ RR → RR
#4
0100
ANDC
Logical AND Compl.; D ⋅ RR → RR
#5
0101
OR
Logical OR; D + RR →RR
#6
0110
ORC
Logical OR Compl.; D + RR → RR
#7
0111
XNOR
Exclusive NOR; If RR = D, RR ← 1
#8
1000
STO
Store; RR → Data Pin, Write ← 1
#9
1001
STOC
Store Compl.; RR → Data pin, Write ← 1
#A
1010
IEN
Input Enable; D → IEN Reg
#B
1011
OEN
Output Enable; D → OEN Reg
#C
1100
JMP
Jump; JMP Flag ← CLK
#D
1101
RTN
Return; RTN Flag ← CLK, Skip next inst.
#E
1110
SKZ
Skip next instruction if RR = 0
#F
1111
NOPF
No change in registers; RR → RR, FLGF ← CLK
Parts Availability
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
- MC14500 into an FPGA
Pure overkill - building an MC14500 with an FPGA... - MC14500 wiki
Unfortunately not a lot of info, but what is there is useful...
The Soul of A New Machine
Please Sign my Guestbook
anonymous on September 20, 2013:
I evaluated the MC14500 for my final year project in 1980.
You must be crazy to do this.
My kind of crazy. Hope you had fun.
anonymous on November 15, 2011:
14500 I want to simulate it