M
manish12
Guest
Io sono la progettazione del caricabatterie solare, per l'utilizzo dello f72,
i fronte alle difficoltà durante la lettura della ADC.
Spero che questo sarà utile per i principianti.
;------------------------------------------------- --------------------------
; 8 led a porta b
; Analogico ch1 RA1
p = elenco PIC16F72; elenco direttiva per definire processore
# include <p16F72.inc>; processore specifico variabile definizioni
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _BODEN_OFF & _XT_OSC
; Mainline di ADC
Bank0RAM equ H'20 '
;
;------------------------------------------------- ---------------------------
; Definire le variabili nella RAM zona
cblock Bank0RAM
Temp1
Temp2
endc
;------------------------------------------------- ---------------------------
org 0
movlw 0x0FF
movwf PORTB; Spegnere tutti i LED
BSF STATUS, 5; selezionare Bank1
movlw 0x00; w = 00h
movwf TRISB; trisb = 00 ossia portb-outport
movlw b'00000000 '; selezionare RA3-RA0
movwf ADCON1; come ingressi analogici
bcf STATUS, 5; selezionare Bank0
movlw b'10001001 '; selezionare: osc/32, ch1 ...
movwf ADCON0; accendere A / DConvertire
chiamata delay1; fornire il necessario tempo di campionamento
BSF ADCON0, 2; avviare nuove conversione A / D
loop
btfsc ADCON0, 2, A / D oltre?
goto loop; quindi non loop
movf DISCORSO, w; poi sì A / D a valore
movwf PORTB
Convertire goto;
;------------------------------------------------- ------------
delay1 movlw 0x20; Delay subroutine
movwf temp1
movwf temp2
ddelay1
decfsz temp1, F
goto ddelay1
decfsz temp2, F
goto ddelay1
ritorno
;------------------------------------------------- ------------
fine
;------------------------------------------------- --------------------------
i fronte alle difficoltà durante la lettura della ADC.
Spero che questo sarà utile per i principianti.
;------------------------------------------------- --------------------------
; 8 led a porta b
; Analogico ch1 RA1
p = elenco PIC16F72; elenco direttiva per definire processore
# include <p16F72.inc>; processore specifico variabile definizioni
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _BODEN_OFF & _XT_OSC
; Mainline di ADC
Bank0RAM equ H'20 '
;
;------------------------------------------------- ---------------------------
; Definire le variabili nella RAM zona
cblock Bank0RAM
Temp1
Temp2
endc
;------------------------------------------------- ---------------------------
org 0
movlw 0x0FF
movwf PORTB; Spegnere tutti i LED
BSF STATUS, 5; selezionare Bank1
movlw 0x00; w = 00h
movwf TRISB; trisb = 00 ossia portb-outport
movlw b'00000000 '; selezionare RA3-RA0
movwf ADCON1; come ingressi analogici
bcf STATUS, 5; selezionare Bank0
movlw b'10001001 '; selezionare: osc/32, ch1 ...
movwf ADCON0; accendere A / DConvertire
chiamata delay1; fornire il necessario tempo di campionamento
BSF ADCON0, 2; avviare nuove conversione A / D
loop
btfsc ADCON0, 2, A / D oltre?
goto loop; quindi non loop
movf DISCORSO, w; poi sì A / D a valore
movwf PORTB
Convertire goto;
;------------------------------------------------- ------------
delay1 movlw 0x20; Delay subroutine
movwf temp1
movwf temp2
ddelay1
decfsz temp1, F
goto ddelay1
decfsz temp2, F
goto ddelay1
ritorno
;------------------------------------------------- ------------
fine
;------------------------------------------------- --------------------------