Alessandro Grazioli
Alessandro Grazioli Alessandro Grazioli

Alessandro Grazioli



Username
                 

                  Password(dimenticata?)
                 
                       
                         Registrazione
 
 

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)

Non compilare questo campo 
Nome:    

E-mail:   

Sito web:

Città:       





   1            2009-12-08 10:45:00

Commento di:  luxxx  
finalmente della documentazione in italiano, grazie!!!




Pagine di commenti: 1



 
Alessandro Grazioli