Introduction: 4 Bit Binary Calculator

If you need to quickly add numbers from 0 to 15, and you know how to rapidly convert to binary and back to decimal, this is for you...But if your human then this is just a fun project!!  I'm going to show you how to make a 4 bit (0-15) adding calculator using 74xx series IC chips.

The chips that I used are the very basic gates like OR, AND, XOR, NOR, NAND, etc.  No actual adding chips are used so its one level up from transistors, and it's totally TLL!**

By the way, this is another addition to the unofficial "Macroelectronics" catagory for all of you who have seen my diy ram instructables!

**If you use the 74hc series or 74hct series, then its technically not TLL, but who cares about the techincal details!!

Step 1: The Materials

This project only requires a few parts:

1 Breadboard, maybe 2 - It should have atleast 50-60 rows
2 74xx AND chips - I used the 74hc08
2 74xx XOR chips - I used the 74hc86
1 74xx OR chip - I used the 74hc32
1-2 DIP Switches - I used 2 8 switch DIP switches (I'm gonna expand to 8 bits)
8 1K ohm -or greater- resistors
Lots of wire - Don't yell at me but I use bare copper! Its a bad habit, (some may argue that it's a dangerous one) I know, but I don't care!
 

Step 2: How It Works - Part I

The basic adding circuit is just that, basic!  It consists of a XOR gate and an AND gate to give you the basic output with a carry bit.

The XOR gate is short for exclusive or.  In a regular OR gate, 0 and 0 equal 0, 1 and 0 equal 1, 1 and 1 equal 1.  In an exclusive or gate, 0 and 0 equal 0, 1 and 0 equal 1, 1 and 1 equal 0.  This is important because when adding 1 and 1 in binary you get 10, so the ones place has a zero, something that can't be done with a basic OR gate.

OR:
A  B  Y
0  0  0
1  0  1
0  1  1
1  1  1

XOR:
A  B  Y
0  0  0
1  0  1
0  1  1
1  1  0

So now, when you add 1 and 0, you get 1, but hold on...When you add 1 and 1, you get 0?? That can't be right! In order to fix that, we need to be able to have 1 and 1 equal 10. Welcome to the AND gate.  As the name implies, an AND gate equals 1 when A=1 AND B=1.  This it tied in parallel with the XOR gate and is the carryout bit, so that when you add 1+1, you CAN get 10!

Step 3: How It Works - Part II

Ok, so we can add 1 and 1, but what if we want to add 11 and 11, well the problem is that there is no carryin bit on the second adder. We need a full adder. In order to make a full adder, we have to use 2 XOR gates, 2 AND gates and an OR gate. The circuit for the full adder is shown below:

The full adder works by putting inputs A and B through a XOR gate, then taking the output from that and XORing it with the Carry-in.  This gives you the bit output.  To make the Carry-out, you have to put A and B through an AND gate, and put the output of the A XOR B gate and the Carry-in through an AND gate as well. When you put those 2 outputs into an OR gate, you get a Carry-Out bit. So now we can put a bunch of these together and get a calculator.

Step 4: How It Works - Part III

Now that we have full adders, its time to put them together to make a calculator.  To connect all of the adders together, you have to connect the carry-outs to the carry-ins in a cascading fashion.  So the carry-out of the first adder connects to the carry-in of the second adder and so on.

Below shows the concept.  The blocks represent the adders and the arrows are the carry-ins and carry-outs.

Step 5: Building It on a Breadboard

Ther are a few tricks to building this on a breadboard.  The organization of the chips on the board is very important, I found that putting the chips in this order works well: XOR, AND, OR, AND, XOR, then the DIP switches.

Another good idea is to build each adder one at a time and on one side of the logic gates.  There are 2 XOR and 2 AND gates on each side of the chips so that makes construction a lot easier.  The order that I put the wires on were: connections to the DIP switches, inter-gate connections, and finally connections to the LEDs.

To wire up the switches, you first (this may only apply to cmos versions of the chips, I haven't been able to experiment TTL versions yet) connect the side not connected to the adder inputs to the supply voltage.  Next connect the other side (the pins connected to the adder inputs) to ground through a 1K ohm, or greater, resistor.

The LED's are connected to the outputs of the adders through a 1K ohm resistor.  If you are using the 74LS series or similar (any series that can't source 5 mA or more) you will have to connect the output to a transistor to get to the required current.

Step 6: For Those Who Don't Understand or Are So-So With Binary

If you understand the phrase "There are 10 kinds of people in the world, those who understand binary and those who don't" go on to the next step! If not, stay here!

The number system we know and love is base 10. This means that each new column of numbers is 10x the last column (if you don't believe me, divide 10 by 10 and you get 1 or divide 100 by 10 and you get 10, these relate to the 100's, 10's, and 1's columns).  Binary, or base 2, is different in that each column is a power of 2 (so each new column is 2x the last) and it uses only 1s and 0s.

Let's look at binary numbers.  Take the number 10 for example. In binary, 10 is 2 in base 10 because the  first column is the 1's column and the second is the 2's column (1*2=2). If we break this number down, we get 1 in the 2's place and 0 in the 1's. 2+0=2, so 10 is 2. Another number example could be 101.  Now we have 3 columns to work with.  In binary this is the 4's column because 1*2=2, in the 2nd column, and 2*2=4 in the 3rd column.  Let's break this down, there is a 4 and a 1 and no 2s.  4+1=5 so 101=5.

Now that you get the basics of binary, we can learn to convert to binary from base 10.  To convert to binary, you have to subtract the power of 2 that it is greater than the number until you reach 0. This may sound confusing, as it is hard to explain without examples, so thats what we are going to do.  Let's take the number 15.  15 is greater than 8 (powers of 2 include 1, 2, 4, 8, 16, 32, etc.) so we do 8-15=7. We also put a 1 in the 8's column. The next power of 2 is 4. 7-4=3, so we put a 1 in the 4's column. Next is 2. 3-2=1, so we put a 1 in the 2's column. And finally 1-1=0, so we put a 1 in the 1's column.  When we put all of these together we get 1111.

Now let's lake the number 11.  11-8=3, so we put a 1 in the 8's column. 3 isn't bigger than 4, so we have to put a 0 in the 4's column. 3-2=1, so we put a 1 in the 2's coulmn. And finally, 1-1=0, so we again put a 1 in the 1's column. This gives us the binary number, 1011.

Step 7: Going Farther and Final Notes

Now you have a 4 bit adding calculator, congrats!

I know that there are adding chips in the 74 logic family, and that there is a calculator much more sophistocated in my kitchen drawer, but this fun little project helped me, and hopefully you too, learn more about adding numbers with electronics and logic.

I hope to build an 8 bit adder, as a 4 bit adder is wimpy with up to 15+15, along with subtraction too!

Comments

author
rswanson3141 made it! (author)2017-04-29

I just made this for my 11th grade physics class. I added some of my own little features. It can add and subtract, determined by the switch. The LEDs in between the switches are intended to look like a plus or minus sign. Whenever the output is negative, the output is displayed in twos complement. One flaw however, is that there is no indicator to show when the output is twos complement. I also added a 7 segment display, BCD converter, and NAND gate to control when to turn certain stuff off.

If anybody wants a video, this one by Ben Eater helped me out:

Photo Apr 24, 10 05 56 PM.jpgPhoto Apr 24, 10 05 17 PM.jpgPhoto Apr 24, 10 04 47 PM.jpgPhoto Apr 24, 10 03 48 PM.jpgElectrical Shematic.pngLogical Diagram.png
author
HeadlessHamster made it! (author)2017-01-16

What do you connect to the carry-in of the first adder (bit 0)? Does it go to another switch?

author
ThomasL56 made it! (author)2016-10-15

I followed your instructions, I just did it in Minecraft. It works great!

2016-10-15_03.15.44.png2016-10-15_03.16.11.png2016-10-15_03.16.17.png2016-10-15_03.16.27.png2016-10-15_03.16.38.png2016-10-15_03.16.48.png2016-10-15_03.17.00.png2016-10-15_03.17.19.png2016-10-15_03.17.25.png2016-10-15_03.17.39.png2016-10-15_03.17.57.png2016-10-15_03.18.28.png2016-10-15_03.18.55.png2016-10-15_03.19.15.png2016-10-15_03.19.28.png2016-10-15_03.19.45.png2016-10-15_03.20.13.png2016-10-15_03.20.20.png2016-10-15_03.20.35.png
author
DineshK87 made it! (author)2016-03-09

i Saw a Black Flat Circle on the Calculater Board ,it is not IC . Can anyone Explain me about the Black Flat Circle Part on the Board & How its Work & how to made it

author
LochyB made it! (author)LochyB2016-06-28

it's an IC just with a black epoxy coating (glue) directly on the board under neath it is the silicon circuit directly attached to the board

author
reidbecker made it! (author)2015-11-11

Connection
Problem: IC 74LS83A 4-Bit Binary Full Adder

I created a 4-bit Adder using IC 74LS83A

Set-up Description

Four breadboards are connected with the + power rails connected via red
cables and the – power rails connected with black cables. I used a multimeter to verify that all the
power rails have power. I used two 4-bit
Dip Switches (left for A input and right for B input) which were inserted into
the E8-11 and E14-17 breadboard positions, respectively, and terminate on the
F8-11 and F14-17 positions, respectively.
I used a multimeter to verify continuity when the DIP switches are in
the closed positions. The two DIP switches
(input A and B) are connected to the IC pins as specified in the Motorola
Connection Diagram which is attached; specifically: A1-Pin 10, A2-Pin 8, A3-Pin 3, A4-Pin 1,
B1-Pin11, B2-Pin7, B3-Pin4, B4-Pin16.

There are five LED’s: Led1 (left most LED) is the one’s place, LED4 is
in the 8’s place, and LED5 is the C4 Carryover place. The four ∑
output pins are connected using dark blue wires. The C4 (Pin14) is connected to
LED5 with a white wire. The anode leads
of each LED are connected to the IC pins as follows: LED1-Pin9, LED2-Pin6,
LED3-Pin2, LED4-Pin15 and LED5-Pin14.
Pin13 (C0) pinout is connected to the negative power rail with a black
wire, as there is no carry-in value. Pin5 (VCC) is connected to the + Power Rail
with a red wire. Pin12 (GND) is
connected to the – Power Rail using a black wire.

The 4-bit DIP switches are in series with 100K Ohm resistors which in
turn are connected to the + Power Rail.
There are 10K Ohm resistors in series with the cathode side of the
LED’s.

A Power Supply powers the circuits.
The Power Supply delivers a constant voltage of 4V and maximum amperage
of .3 mA. The emitter-collector circuits
are lighting the LED’s and the measured amperage is .15 ma. If there were a circuit through the base
pins, it would measure 39 micro-amps (I measured it via a multimeter with a
simple circuit not through the IC’s).

I am not currently using an IC carrier to mount the IC onto the
breadboard. This was ordered; however it
will not be received from China for another 2-4 weeks. However, a multimeter continuity test
verifies a good connection for each of the 16 IC pins to the breadboard. I have not used anti-static wrist straps.

Problem

When I turn on the power supply and all DIP switches are in the “off”
position, all LED’s light. There is no
amperage when measuring current going into any of the input A or B pins of the
IC. There are no changes when I slide
any of the DIP input switches (inputs A and B) to the “on” or “off” positions.

I have ordered two batches of 74LS83A and the results are the same.

A picture of the setup is attached.
A pdf file of the 74LS83A is attached.
Note this is a 4-Bit Binary Full Adder with Fast Carry.

Questions


  • 1.Can you see any reason why I am getting incorrect
    results (i.e. all the LED’s are lit all the time)?
  • 2.Can you suggest any way I can further test the
    IC with just a multimeter? I do not have
    access to an automated IC test system?

Problem.No.Flash_DSC03395.jpgSN74LS83D.pdf
author
karol_pogorzelski made it! (author)karol_pogorzelski2015-11-29

As far as I see, you have connected DIP switches incorrectly. They need to be connected to both + and - Voltages, in order to provide both high and low (when on/off) input signals. Read more about assembling DIP switches.

author
reidbecker made it! (author)reidbecker2015-11-30

Thank you very much for your help. We actually resolved the problem. It turns out we needed to drop the resistor values at the DIP switches down to 1K ohms. It appears at the 100K ohm values, the input voltage was not detected. Since the voltage was not detected, they "drifted to high," causing all the sum values to be high (i.e. all LED's were on).

author
Bushra487 made it! (author)2014-12-20

Can you privide binary subtractor circuit??

author
The Answer Guy made it! (author)The Answer Guy2015-08-20

Sorry I'm 8 months late but if you are still interested: To substract with an adder, add 4 XOR gates and connect their outputs to the B input of every 4 full-adders. Then the B inputs of each of your 4 adders will become one of the XOR gate input. Then connect the carry in and every other XOR input to a switch. That switch should toggle between add and subtract.

author
Csfmwccc made it! (author)2015-05-13

Can you add a full circuit schematic for reference.

author
shiny.safwan made it! (author)2015-04-17

Can you just give the 4 bit logic circuit of addition , subtraction and multiplication that if user wants to muliply or add numbers on run time, they can do it just like simple calculator???

author
nobody.gg made it! (author)2014-12-31

author
Shortcircui made it! (author)2014-11-19

so these gates are each quad versions, which means if I wanted to do this completely with discrete components, I would need to make 4 pf each gate per chip, right?

author
• The Inventor • made it! (author)2014-08-27

perfect project, no other word

author
karneek made it! (author)2014-02-15

Ok I got it !!!

Screenshot (48).png
author
nrmhsri made it! (author)nrmhsri2014-08-23

did you do this project as it is above given circuit

then how to give inputs and check for outputs

author
nrmhsri made it! (author)2014-08-23

how to check the output

author
nrmhsri made it! (author)2014-08-23

how to check the output

author
karneek made it! (author)2014-02-05

Hey man i want to build this one but I couldn't understand which wire goes where ... so I am asking you for an on board instructions ( what you wired where and to ic which leg ) if you can give a diagram of that 1(2) breadboard ! please ? If you can :) It'll be a great thing for people like me :) thank you :) (Y)

author
fahadshihab made it! (author)2014-01-24

I used another complicated system of using 555 timers and 4017 ICs to convert binary into decimals...

author
nyo tom made it! (author)2013-12-02

how could I connect this to an LCD that would tell me the value instead of LEDs so it would actually read me the sum in binary?

author
tridecagon made it! (author)2013-10-15

I, personally, prefer the 4000 family of ICs for these types of projects over the 7400 family. The 4000 family has a wider operating voltage range of 3(?)V - 15V. And at 9V, the outputs can push enough current to drive LEDs directly (just remember the resistors). And to answer my month old question, yes you can start with a half adder.

author
tridecagon made it! (author)2013-09-17

By "TLL", do you mean "TTL" (Transistor-Transistor Logic)? But I do have one question I think I have the answer to: since we do not have any carry bits in the very first part of the adder, could we start off with a half-adder? I don't see why not, as it would always be low anyways, but I just want to be sure.

author
jnowak made it! (author)2013-05-19

oh ok. gotya.
I have one bit put together right now and i'm pretty sure the schematic matches yours, but I'm having a good deal of trouble and seem to be inducting power into it or something when i bring my hand close or something. I end up with something like:

0 + 0 = 1
0 + 1 = 10
1 + 0 = 10
1 + 1 = 11

any ideas?

author
jnowak made it! (author)2013-05-19

Do you need that OR gate? ether one or the other AND gates has an output so you could just have both the AND's output go right to the carry out, right?
also, if you powered a input with Vcc, would it fry? I'm not quite understanding, but nice job!

author
Teslaling made it! (author)Teslaling2013-05-19

Yes the OR gate is necessary and no powering an input with Vcc won't fry it. Let me explain: The chips use CMOS logic. CMOS has to important properties: 1) inputs are voltage dependent not current dependent (no current flows into or out of the input); 2) outputs source current when high and sink current when low. The first property means that even if you connect an input to Vcc, no current will flow. The second property means that if you have two outputs connected together and one is high and the other is low, then a ton of current will flow from one to the other, frying them both. The solution is to put an OR gate there so that both of the outputs are connected to inputs that do not sink or source current.

I hope this clears things up!

author
Marat1998 made it! (author)2013-01-16

Where can you actually buy 74hc chips?

author
Teslaling made it! (author)Teslaling2013-01-16

The 74hc chips can be found at various electronics suppliers such as Mouser, Digikey, or Jameco.

author
uditkotnis made it! (author)2012-12-12

May I ask you which battery terminals have you connected to the vcc and gnd points on the chips?
Also I did not understand the way you connected the dip switches.
Sorrry if I sound a little dumb but this is my first electronics project with transistors.

author
uditkotnis made it! (author)2012-08-25

Hey I tried making this project but when I switch on the dips to make inputs the current bypasses the entire circuit.
P.S.
can you please tell me what is your supply voltage,
I used two 9v batteries in series.
P.P.S.
When I dont have a input all the LEDs glow even if all the dip switch keys are open.

author
Teslaling made it! (author)Teslaling2012-08-27

I think your supply may be the issue. According to the datasheets, the chips have a maximum supply of 6v. two 9v batteries gives 18v which is way more than enough to fry the chips. This is probably why the LEDs are glowing, the chips are dead. The best thing you can try is replacing all of the chips and lowering your supply voltage. I have a converted computer PSU that gives stable 5v but a 2 or 4 battery pack would work. Just keep your supply below 6v.

Good Luck!

author
thatrandomguy80 made it! (author)2012-05-27

hey i have all the same parts as you except my or gate is a 74LS32 and i cant get it to work when i test it so any trouble shooting or things i need to know when using gates? ps its not a bad gate because i have tried 2 of them now

author
Teslaling made it! (author)Teslaling2012-05-27

I think that might be the problem. 74hc is CMOS logic levels whereas 74ls is TTL logic so there are incompatibilities when interfacing between the two. If you want, you can do a little more research on the issue, but what you need to know for this is that 74ls won't work with 74hc.

I believe that 74hct can work at both CMOS and TTL levels.

author
techno guy made it! (author)2012-01-13

You could make this subtract by putting a signal into the carry-in of the first and unused carry-in input and then inverting your b value. e.g.: 1011=0100. That is how I made the calculator I built in minecraft to be able to also subtract. When you do the subtract thing, the carry-out of the last adder will turn on but will not mean anything, you could put a switch there to turn it off while subtracting.

author
Macattacku made it! (author)2011-10-07

sorry its been awile but a npn transitor would work very well with a 100k resistor on its base and with that combo the data could last maybe ten seconds which is more than enough. i dont quite know quite how to show the the circuit.

author
Macattacku made it! (author)2011-09-27

I dont mean to brag but I happen to have a very wide knowledge of the inner workings of computers, logic gates, and computer arithmatic and data flow and i was wondering I already know how to do it but i dont really have the time. could you make an instructible on making a byte of d-ram memory? if you want to make or have questions please leave a comment to talk to me.

author
Teslaling made it! (author)Teslaling2011-09-28

Awesome! I actually started some work on that and another project after I published the results of my SRAM project. I've been working on a dram cell and a 555 timer circuit. I developed a fairly reliable long tail differential comparator for both and I'm in the process of simulating the circuits. I don't know if I can do a full byte, but I would be happy to attempt a few bits.

author
Macattacku made it! (author)Macattacku2011-09-28

its actually very simple for just one byte just 16 n channel mosfets, 8 small value capacitors 0.1 or 1 uf, and 8 comparators. since there is only one byte it does not need a transistor per cell because that is just for selection. how long the data will last is based on the size of the capacitors and the amount of current drawn into the comparator. so a regular comparator will work fine but a comparator with low input current draw would work the best.

author
Teslaling made it! (author)Teslaling2011-09-29

Actually, the mosfets have reverse current body diodes in them, so any transistor that will have current going both directions will need two mosfets per gate. (32 total mosfets) I would then need 3 bjts per comparator (2 pnp and an npn). It's going to be large and I don't have the room without ripping up some other circuits I've been working on.

No offense, but why do you want me to make a full byte? Personally, I would think a few bits or a nybble would suffice.

author
Macattacku made it! (author)Macattacku2011-09-29

actually it just need to amplify a signal so you could just use an npn transistor with a 1 k resistor on the input no pull up resistor required. but yes a byte is sorta large so how about a nybble? also there is one thing i missed to tell you an OR gate per bit is also required but you can just used two resistors ten k would be ideal.

author
Teslaling made it! (author)Teslaling2011-09-30

The problem with a single npn is that if 3 bits are 1 and one is 0, there is going to be leakage to that one. If the voltage is high enough to be amplified enough to be a 1 (<.5 volt is needed) With a comparator, however, the threshold could be 2.5v (5v supply) so anything less is a 0 and anything over is a 1. It's a less temperamental solution, and a bit of a personal preference. Besides, real dram uses a comparator, but using an IC just doesn't sit well with the spirit of it, for me at least.

A nybble will definitely work, but if I have the room, I will try a byte too :)

author
tarantado made it! (author)2011-08-18

I JUST WANDERED..WHAT WOULD BE THE SUPPLY FOR THIS BINARY CALCU?lol XD

author
Teslaling made it! (author)Teslaling2011-08-19

3V to 5V should work fine. 2 or 3 AA will do it, or if you can get power from USB that is regulated 5v.

author
tarantado made it! (author)2011-08-18

ALSO WHAT IS THE SEQUENCE OF THE IC's FROM LEFT TO RIGHT?
I REALLY NEED HELP.. T_T

author
shane11 made it! (author)2011-02-12

I cant seem to find a XOR GATE with the model number 74HC86 on jemeco thats an OR gate.

author
Teslaling made it! (author)Teslaling2011-02-12

Are you sure? 74HC86N - Quad 2 Input Exclusive OR Gate??

author
shane11 made it! (author)shane112011-02-18

oooo whoops sorry bout that!!!!!!!!!

author
dungeon runner made it! (author)2010-12-31

Damn! After seeing your DIY RAM instructables I was going to do just this myself. Oh well, beat to the punch. Maybe I'll post a more complete version, with subtraction and such. Good job.

author
Teslaling made it! (author)Teslaling2010-12-31

Thanks man! Yeah, I have the entire schematic for an 8-bit adder/subtractor (number range 127 to -128) I just need another breadboard and a few hours of free time (the hard part) and I can start. But if you beat me to it, good luck to you!!

About This Instructable

141,111views

66favorites

License:

Bio: I like to make things that move, sense, calculate, compute, blink, and make noise. I like making things that create high voltages, electrical arcs, and ... More »
More by Teslaling:The Valve Caster 2.0: Tube Boost and OverdriveBuild Your Own 555 TimerHelios 3: Homemade Rocket Candy Powered Rocket
Add instructable to: