Esempio: realizzazione dei LEDs di Supercar™
Verrà ora descritta una semplice applicazione che utilizza un microcontrollore. Poiché si è voluto creare un esempio che fosse molto semplice, in modo da permetterne la realizzazione e la perfetta comprensione anche a chi si avvicina ai microcontrollori per la prima volta, le soluzioni adottate per il circuito e per il programma che il PIC andrà ad eseguire sono le più semplici possibili. Cercando in rete si trovano programmi e schemi più completi e complessi che, ad esempio, implementano l'effetto scia utilizzando il PIC (i LEDs precedenti a quello acceso attualmente vengono illuminati debolmente). Ciò si ottiene con l'ausilio del modulo PWM illuminando i 2 (o 3) LEDs precedenti al 40% e 10% (o al 50%, 25%; 10%). Chi fosse interessato ad implementare anche questo effetto può consultare il datasheet del PIC nella sezione dedicata al PWM e applicare le modfiche necessarie, oppure, più semplicemente, può utilizzare dei condensatori (mettere in parallelo ad ogni LED la serie di un condensatore e una resistenza), dimensionandoli tramite un semplice calcolo del transitorio di scarica (ad esempio un condensatore da 470 µF e una resistenza da 370 Ω). Il circuito utilizza solo 6 LEDs, ma risulta semplicissimo aggiungere altri LEDs connettendoli a PORTA o a PORTB e modificando in modo opportuno il software.
Materiale occorrente
1 PIC16F84
1 quarzo da 4 Mhz
2 condensatori da 22 pF
1 condensatore da 100 nF
1 resistenza da 10 KOhm
6 resistenze da 470 Ohm (opzionali)
6 LEDs rossi
Schema circuitale(Clicca per scaricare lo schema elettrico)

Sorgente ASM
PROCESSOR 16F84
RADIX DEC
INCLUDE "P16F84.INC"
ERRORLEVEL -302
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_ENABLE_ON & _LVP_OFF
;Dichiarazione variabili
ORG 20H
Count RES 2
Shift RES 1
;Start point al reset della CPU
ORG 00H
goto INIZIO_CODICE
ORG 04
;VETTORE INTERRUZIONI
retfie ;ritorno dall'interruzione
;Procedure
Delay
MOVLW 128D
MOVWF Count
Delayloop
DECFSZ Count,1
GOTO Delayloop
RETURN
Back
MOVLW 00100000B
MOVWF Shift
BackBack
MOVF Shift,W
MOVWF PORTB
BCF STATUS,C
RRF Shift,F
BTFSC Shift,0
RETURN
CALL Delay
MOVF Shift,W
GOTO BackBack
INIZIO_CODICE
BSF STATUS,RP0
MOVLW 11000000B
MOVWF TRISB
BCF STATUS,RP0
MOVLW 00000001B
MOVWF Shift
MainLoop
MOVF Shift,W
MOVWF PORTB
BCF STATUS,C
RLF Shift,F
BTFSC Shift,6
CALL Back
CALL Delay
MOVF Shift,W
GOTO MainLoop
END

Pagine totali: 6 - 1 2 3 4 5 6

Inserisci un commento
(solo il nome è obbligatorio; tutti gli altri campi sono facoltativi)

|
|
finalmente della documentazione in italiano, grazie!!!
|
|

Pagine di commenti: 1
|