1 bit microcontroller

Forget PIC, AVR and ARM with this powerful microcontroller :-)

This circuit is based on the CMOS chip MC14500. This chip is an ICU (industrial control unit) built from Motorola few years ago, it is a 1 bit processor that can do some logical operations. This chip is now discontinued but can be found on ebay and other sites.
My circuit probably doesn't have an application in real world, but can be useful for didactic purposes, to learn how a simple microprocessor works.

This is the pinout and internal structure:



The circuit

The circuit diagram is very simple and easy to build.
There aren't memories, eproms or programming/debugging adapters, and every operation is done manually using some switches. The clock frequency depends from your fingers speed :-)

The MC14500 has a set of 16 instructions, so I use four dip-switch (SW1) to select the istruction to execute.

The MC14500 can work at 1Mhz, but in my circuit a clock pulse is generated manually pressing the SW2 key. A simple monostable based on NOR ports IC2C and IC2D is used to debounce the switch, to have a single and clean clock pulse on pin 13 of MC14500. The LED1 connected to pin 14 with the NOR port IC1C is used to show the clock pulse.

Switch SW4 is used to apply a level 0 or 1 to the Data input of the microprocessor (pin 3) and the LED2 show the state of this pin. The NOR port IC1D is used as buffer to drive the LED. This pin is a bidirectional I/O port, so R9 resistor protect it if the switch SW4 is closed when it is set as output.

There are two other leds LED3 and LED4, connected to pin 2 (RR result register) and pin 15 (WRITE) with two NPN transistors. LED3 show the status of internal RR register, and LED4 show the WRITE pulse after a STORE instruction.

Capacitor C2 is used to to reset the microcontroller when power is applied, and there is another switch (SW3) to reset it manually.

The circuit can be powered from 3-4 AA batteries (4.5V or 6V) or from a power supply. It can also works at 9 or 12Vcc.

Schematic diagram:




COMPONENTS

R1 = 1Mohm 1/4W
R2 = 1.5Mohm 1/4W
R3 = R4 = 5.6Kohm 1/4W
R5-R8 = 470ohm 1/4W  (1Kohm for 9/12V supply)
R9 = 470ohm 1/4W
RN1A = resistor network 22Kohm x 9

C1 = 390nF polyester
C2 = 22nF polyester or ceramic
C3 = 100nF polyester or ceramic
C4 = 47uF 25V electrolitic

T1 = T2 = BC547 or similar NPN transistors
LED1-4 = led diodes

IC1 = MC14500
I2c = CD4001

SW1 = dip switch x 4
SW2 = SW3 = tact switch NO
SW4 = on/off switch


How to use

The first raccomandation is to read the datasheet and application notes about MC14500 where there are a lot of informations.

This is the instruction set with corrispondent positions of dip-switch SW3 (0=switch open, 1=switch closed) :



MC14500 datasheet PDF
MC14500 handbook PDF


Some examples

After a reset or power-up the first operation is to enable input and output with instructions IEN (1010) and OEN (1011) with DATA set to 1 (SW4 closed).  Every instruction must be followed by a clock pulse with SW2.

An example to do a simple AND operation :

1 -   0001   LD    load first bit (position of SW4)
2 -   0011   AND   logical AND with second bit (position of SW4)
3 -   1000   STO    store result to Data Pin  (SW4 should be left open)

For a NAND operation the 3rd instruciont changes to STOC :

1 -   0001   LD    load first bit (position of SW4)
2 -   0011   AND   logical AND with second bit (position of SW4)
3 -   1001   STOC   store complement result to Data Pin  (SW4 should be left open)

Another example for a 3 bit OR operation :

1 -   0001   LD    load first bit (position of SW4)
2 -   0101   OR   logical OR with second bit (position of SW4)
3 -   0101   OR   logical OR with third bit (position of SW4)
4 -   1000   STO    store result to Data Pin  (SW4 should be left open)

Example for EXOR (exclusive OR) :

1 -   0001   LD        load first bit (position of SW4)
2 -   0111   XNOR   logical exclusive NOR with second bit (position of SW4)
3 -   1001   STOC    store complement result to Data Pin  (SW4 should be left open)

A basic NOT function :

1 -   0001   LD        load bit (position of SW4)
2 -   1001   STOC    store complement result to Data Pin  (SW4 should be left open)

The same result can be done with this program :

1 -   0010   LDC    load complement bit (position of SW4)
2 -   1000   STO    store result to Data Pin  (SW4 should be left open)

These are very simple examples, but the operations can be combined to do a more complicated logic.

Photos and videos

My working prototipe



A sample video showing some simple NOT operations






(c) Giuss 2012  -  project for DP  7400 logic competition  2012