Gestione ADC0803 con scheda 8051

Datasheet ADC0803
Datasheet LF398

Schema elettrico


 

 

Software 

Untitled
  org 8200h
  
SOC      = T1
INTR     = T0
DATA_BUS = P1
RD1	 = int0

init:
  mov DATA_BUS,#0ffh  ;P1 in modalità input
  setb INTR           ;Configuro INTR come ingresso 
  setb SOC            ;WR a riposo
  setb RD1  
  
main:
  clr SOC
  setb SOC
  jb INTR,$
  clr RD1
  mov 10h,DATA_BUS 
  setb RD1
  jmp main 
  end

Main alternativo per esperimento di acquisizione dati

SOC      = T1
INTR
     = T0
DATA_BUS
= P1
RD1  = int0

init:
  mov DATA_BUS,#0ffh  ;P1 in modalità input
  setb INTR           ;Configuro INTR come ingresso
  setb SOC            ;WR a riposo
 
setb RD1 

main:
  mov dptr,#9000h
  mov r0,#200
 
loop: 
 
clr SOC
  setb SOC
  jb INTR,$
  clr RD1
  mov a,DATA_BUS
 
setb RD1
  movx @dptr,a
 
inc dptr
  djnz r0,loop

 
jmp $
 
 
end

 


Main per esperimento di acquisizione dati con S/H
 

SOC      = T1
INTR
     = T0
DATA_BUS
= P1
RD1      = int0
SH       = int1 

init:
  mov DATA_BUS,#0ffh  ;P1 in modalità input
  setb INTR           ;Configuro INTR come ingresso
  setb SOC            ;WR a riposo
 
setb RD1 

main:
  mov dptr,#9000h
  mov r0,#200
 
loop:

 
setb SH
 
mov r1,#3; (anche 4-5 è il ritardo di 4us da usare se C2=1nF se C2=10nF bisogna arrivare fino a 20us)
 
djnz r1,$
 
clr
SH

 
clr SOC
  setb SOC
  jb INTR,$
  clr RD1
  mov a,DATA_BUS
 
setb RD1
  movx @dptr,a
 
inc dptr
  djnz r0,loop

 
jmp $
 
 
end

acquisizione.xls