apogeeweb title
Home  Technical Articles   0804

Sep 21 2020

Introduction to ADC0804: 8bits A/D Converter


There are multiple kinds of Analog to Digital Converters (ADC) which are used to convert the signal for microprocessors or controllers. Every “ADC” has its own specification and advantages on the base of the requirement. Here we are going to discuss “ADC0804 IC” which is known as the low voltage 8-bit Analog to Digital Converter. ADC0804 is a low voltage IC use to convert the low voltage analog signal to an 8-bit digital signal. It works with 0-5 Volts, has 1 Analog input and 8 output pins. ADC0804 comes with an internal clock but to increase or change the clock the cycle we could use the external clock. Always keep in mind that conversion speed cannot be faster than 110us either we are using an internal clock or external clock.



Documents and Media

Pinout and Configuration


Where to Use ADC0804

How to Use ADC0804



Documents and Media


ADC0804 Datasheet

Pinout and Configuration

ADC0804 Pinout

Pin Number

Pin Name



Chip Select (CS)

Chip select is used if more than 1 ADC module is used. By default grounded


Read (RD)

Read pin must be grounded to read the Analog value


Write (WR)

Write pin should be pulsed high to start data conversion



External clock can be connected here, else RC can be used for accessing internal clock


Interrupt (INTR)

Goes high for interrupt request.


Vin (+)

Differential Analog input +. Connect to ADC input


Vin (-)

Differential Analog input -. Connect to ground



Analog Ground pin connected to ground of circuit



Reference voltage for ADC conversion.



Digital Ground pin connected to ground of circuit

11 to 18

Data bit 0 to bit 7

Seven output Data bit pins from which output is obtained



RC timing resistor input pin for internal clock gen



Powers the ADC module, use +5V


  • Easy to interface with all Microprocessors or works Stand alone.
  • Single channel 8-bit ADC module
  • On chip Clock available, no need of external Oscillator(Clock)
  • Digital output various from 0 to 255
  • When Vref = 5V, for every 19.53mV of analog value there will be rise of one bit on digital side (Step size)
  • Available in 20-pin PDIP, SOIC packages

Where to Use ADC0804

The ADC0804 is a commonly used ADC module, for projects were an external ADC is required. It is a 20-pin Single channel 8-bit ADC module. Meaning it can measure one ADC value from 0V to 5V and the precision when voltage reference (Vref –pin 9) is +5V is 19.53mV (Step size). That is for every increase of 19.53mV on input side there will be an increase of 1 bit at the output side.

This IC is very Ideal to use with Microprocessors like Raspberry Pi, Beagle bone etc.. Or even to use as a standalone ADC module. Every ADC module requires a clock to function; this IC comes with its own internal clock so you don’t have to worry about it. Hence, if you are looking for a compact ADC module with a decent resolution of 8-bit then this IC is for you.

How to Use ADC0804

Since the IC comes with an internal clock we do not need many components to make it work. However to make the internal clock to work we have to use a RC circuit. The IC should be powered by +5V and the both ground pins should be tied to circuit ground. To design the RC circuit simply use a resistor of value 10k and capacitor of 100pf (approx) and connect them to CLK R and CLK IN pins as shown in the circuit below. The chip select (CS) and Read (R) pin should also be grounded. The Vref pin is left free because by default without any connection it will be connected to +5V.

The digital output will be obtained from the pins DB0 to DB7 and the analog voltage should be connected to V in(+) pin as shown in the circuit. Also note that another end of the voltage source (sensor/module) should also be grounded to the circuit for the ADC conversion to work. Now, for the ADC Conversion to start we have o make the Write(WR) pin to go high momentary this can be done connecting the pin to I/O of MPU and toggling it high before every ADC read. Only if this is done the ADC value on the output side will be update.

How to use ADC0804

In the above circuit I have used a potentiometer to feed in a variable voltage of 0V to 5V to the Vin pin and the present Voltage is read using a voltmeter. As you can see in the image the voltage value is 1.55V and the resulting binary value is 01001111. Let us see how this binary value can be converted to Analog value, since we will need it while programming/designing.

Binary Value = 01001111

Converting to Decimal  =  (0*128)+(1*64)+(0*32)+(0*16)+(1*8)+(1*4)+(1*2)+(1*1)

                                         =   79

Analog Voltage = Decimal Value * Step size

                             = 79 * 19.53mV

                             = 1.54V

The obtained value is 1.54V and the measured voltage is 1.55V which are very much close. So this is how you use an ADC0804 IC.


  • Transducer-to-microprocessor interface
  • Digital thermometer
  • Digitally-controlled thermostat
  • Microprocessor-based monitoring and control systems


  • What is adc0804?

The ADC0804 is a commonly used ADC module, for projects were an external ADC is required. It is a 20-pin Single channel 8-bit ADC module. Meaning it can measure one ADC value from 0V to 5V and the precision when voltage reference (Vref –pin 9) is +5V is 19.53mV (Step size).

  • What is the difference between adc0804 and max1112?

ADC0804 is used for parallel ADC and MAX1112 is used for serial ADC.

  • Which pin of the adc0804 indicates end of conversion?

PIN-5 – Interrupt (INTR) This pin automatically goes low when conversion is done by ADC0804 or when digital equivalent of analog input is ready.

PIN-6 – Vin (+) connect input analog sensor pin/input voltage to this pin.

  • What is ADC and DAC?

ADC stands for Analog to Digital Converter, which converts the analog signal into the digital signal. DAC stands for Digital to Analog Converter and it converts the Digital signal into an analog signal.

  • What is the resolution of 8 bit ADC?

For example, an ADC with a resolution of 8 bits can encode an analog input to one in 256 different levels (28 = 256). The values can represent the ranges from 0 to 255 (i.e. as unsigned integers) or from −128 to 127 (i.e. as signed integer), depending on the application.


0 comment

Leave a Reply

Your email address will not be published.