Google

Jan 10, 2008

Analog-to-Digital converter with 8086 using 8255

AIM:- To Interface Analog-to-Digital converter to 8086 using 8255 and write Assembly Language Program to read Digital value from ADC.

APPARATUS:-
Microprocessor trainer kit, ADC kit, power supply, data cable etc

THEORY:

ANALOG TO DIGITAL CONVERTER (0809):-
The ADC-0809 data acquisition component is a monolithic CMOS device with an 8-bit analog to digital converter, 8 channel multiplexed control logic. The 8 bit A/D converter uses successive approximation as the converter technique. The converter features a high impedance chopper stabilized comparator, a 256R voltage divider with analog switch free and a successive approximation register. The 8 channel multiplexed can directly access any of 8 single ended analog signal.

FEATURES:-
  1. Resolution 8 bits
  2. Conversion time 100 micro sec.
  3. Single supply 5V
  4. 8 channel multiplexed with latched control logic
  5. easy interface to all microprocessor
  6. 0 to 5V analog input voltage range with single 5V supply
  7. low power consumption 15mW
  8. latched tristate output

WORKING:-
ADC interface consists of a NAND gate oscillator witch feeds 50 KHz as the input clock to ADC, input to channel is given through terminal blocks provided on the card. Channel selection is done using port lines PC0, PC1 & PC2, START OF CONVERSION and ALE is controlled by port line PC7. Converted digital output is read by ADC through PORTA lines by enabling OE. OE line is connected to port line PC6.
In this method of interfacing microprocessor is continuously monitoring EOC line (which is connected to port line PA7). When this goes high, make OE (PC6) high & then low, this will put the digital equivalent of analog voltage of the given channel on data lines of ADC. Read the digital data through port lines PA0 to PA7 and display the same data.


ASSEMBLY LANGUAGE PROGRAM:-
MODEL SMALL
.STACK 100
.DATA
CONTROL EQU FFC6H ; Control port address for 8255
PORTA EQU FFC0H ; Port A address for 8255
PORTB EQU FFC2H ; Port B address for 8255
PORTC EQU FFC4H ; Port C address for 8255
CHANNEL EQU 07H

.CODE
START:
MOV AL,90H ;CONTROL WORD FOR 8255
MOV DX,CONTROL ;TO INITIALIZE PORTA AS INPUT, PORTB AS OUTPUT
OUT DX,AL ;PORTC AS OUTPUT PORT
MOV AL,CHANNEL ; OUTPUT CHANNEL NUMBER IS PLACED ON
MOV DX,PORTC ; PC0, PC1, PC2 LINES OF 8255 WHICH ARE CONNECTED
OUT DX,AL ; TO ADC TO SELECT RESPECTIVE CHANNEL OF ADC TO
; TAKE ANALOG INPUT
MOV AL,0FH ; AS PC7 OF 8255 IS CONNECTED TO START OF
MOV DX,CONTROL ; CONVERSION (SOC) OF ADC SO TO START CONVERSION
OUT DX,AL ; PC7 IS SET HIGH
MOV CX,3FFFH
DELAY: LOOP DELAY

MOV AL,0EH ; RESET PC7
MOV DX,CONTROL
OUT DX,AL

MOV AL,0CH ; AS PC6 IS CONNECTED TO OE i.e. OUTPUT ENABLE OF
OUT DX,AL ; ADC SO TO DISABLE OE AND AND TO CHECK EOC
; (CONNECTED TO PA7) RESET PC6
UP: MOV DX,PORTA
IN AL,DX ; CHECK FOR EOC BY READING PORTA
AND AL,80H ; MASK PC7 BIT
CMP AL,80H ; COMPARE PC7 BIT WITH 1
JNZ UP ; IF EOC THEN READ DIGITAL VALUE FROM ADC

MOV AL,0DH
OUT DX,CONTROL ; TO CONFIGURE ADC TO OUTPUT THE DIGITAL DATA
OUT DX,AL ; SO SET OE (PC6) TO READ VALUE

MOV DX,PORTA ; READ DIGITAL DATA FROM PORTA
IN AL,DX ; DIGITAL DATA IS IN AL
INT 03H

END START



PROCEDURE:-
1. Connect power supply 5V & GND to both microprocessor trainer kit & ADC interfacing kit.
2. Connect data bus between microprocessor trainer kit & ADC interfacing kit.
3. Enter the program to read digital data from ADC.
4. Execute the program by typing GO E000:4610 ENTER.
5. “ENTER THE CHANNEL NUMBER “, will be displayed on screen.
6. Now enter the channel number and apply the analog input to respective channel.
7. Equivalent digital output is displayed on screen.

Analog input Digital output
1V 33H
2V 66H

3V 99H
4V CCH
5V FFH

You might be also interested in:
:: Temperature Control system using 8086
:: Traffic light control system using 8086
:: Assembly Language Program to serve NMI


1 comment:

Unknown said...

Thanks for the blog post :) This is cool stuff on microprocessors