Misura della corrente di spunto del motore c.c. con scheda 8051

 

ispunto.gif (9091 byte)

 

 

;++++++++++++++++++++Analisi corrente di spunto motore cc+++++++++++++++++++
    
    org 8200h
DATA_OUT = INT1 
IO_CLOCK = T0
CS    = T1 
ADCValue = 30h
Buffer = 9000h 
Soglia = 10

;Inizializzazione porta P1
Init:
setb CS ;CS:inattivo (uscita)
clr IO_CLOCK ;IO_CLOCK=0 (uscita)
setb DATA_OUT ;DATA_OUT=1 (ingresso)

mov p1,#0ffh ; 

call ReadADC
main: 
    call ReadADC
clr c
subb a,#Soglia
jc main

Acquisiz:
mov 3,#250
mov dptr,#Buffer 
LoopAcq call ReadADC
movx @dptr,a
call Ritardo
inc dptr
djnz 3,LoopAcq
    
Riproduz:
mov 3,#250
mov dptr,#Buffer 
LoopRipr movx a,@dptr
mov p1,a 
inc dptr
djnz 3,LoopRipr
jmp Riproduz 

Ritardo mov 2,#50
djnz 2,$
ret

ReadADC:
    clr CS
mov r0,#8
LReadADC:
mov c,DATA_OUT
    rlc a 
    setb IO_CLOCK
clr IO_CLOCK
djnz r0,LReadADC
setb CS
mov ADCValue,a    
    ret

    end