Gestione ADC0803 con scheda 8051


Software
Untitled
org 8200h
SOC = T1
INTR = T0
DATA_BUS = P1
RD1 = int0
init:
mov DATA_BUS,#0ffh setb INTR setb SOC 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 setb INTR setb SOC 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 setb INTR setb SOC 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