A titolo dimostrativo viene proposto un piccolo circuito in cui un led viene fatto lampeggiare. Le fasi da seguire sono essenzialmente quelle descritte alla sezione precedente e sono: creazione del progetto in MPLAB, scrittura del programma, compilazione, debugging, inserimento del codice nel microcontrollore e realizzazione del circuito.
Il programma
Una possibile soluzione per poter far lampeggiare un led e' quella ad esempio di avere una linea di I/O che emette un segnale in cui si alternano le tensioni di 0 e +5 volt. A tale linea collegheremo in serie il led ed una resistenza limitatrice di corrente. Allo scopo puo' essere utilizzato il programma precedente che alterna i valori 0 e 1 sul bit meno significativo (il primo bit) del registro PORTB.Riportiamo il codice del programma:
;****************************************************** ; Programma di prova ; Alterna 1 e 0 sul primo bit di PORTB ogni 100ms ;****************************************************** ;direttive PROCESSOR 16F84A RADIX HEX ;definizioni R1 EQU 0x20 R2 EQU 0x21 R3 EQU 0x22 PORTB EQU 0x06 TRISB EQU 0x06 TRISA EQU 0x05 PORTA EQU 0x05 PORTB EQU 0x06 STATUS EQU 0x03 FSR EQU 0x04 INDF EQU 0x00 ;inizio programma ORG 0x0000 bsf STATUS,5 movlw 0x00 movwf TRISB bcf STATUS,5 loop: bsf PORTB,0 call wait bcf PORTB,0 call wait goto loop ;routine di attesa (circa 100ms) wait: movlw 0xBE movwf R1 longloop1: movlw 0xBE movwf R2 longloop2: decfsz R2,1 goto longloop2 decfsz R1,1 goto longloop1 return ;fine del programma END
In ogni caso andremo ad utilizzare un oscillatore al quarzo da 4Mhz quindi in ICPROG occorrera' selezionare l'oscillatore XT. Il Watch-Dog non serve percio' deve essere disabilitato (WDT non selezionato). Possiamo lasciare disabilitate le rimanenti due opzioni PWRT e CP.
Circuito di prova
Una volta compilato e programmato correttamente il PIC occorrera' realizzare questo piccolo circuito:
In alto abbiamo il modulo alimentatore, costituito da un regolatore di tensione 78L05. DCIN deve essere collegato ad una tensione continua da almeno 9 volt.
In basso abbiamo il circuito principale costituito dal pic e da pochi altri componenti. Al piedino #MCLR e' collegato il circuito standard di reset visto nella prima sezione mentre in OSC1 e OSC2 e' collegato l'oscillatore da 4Mhz al quarzo (tipo XT). VDD e VSS sono ovviamente il piedino del positivo e di massa. Ad RB0 sono collegati il led e la resistenza limitatrice: dato che i pin di I/O del pic possono assorbire/fornire all'incirca 20mA ciascuno, allora la resistenza dovra' avere un valore non inferiore a:
(5-0.7)volt / 0.02A = 215 ohm
Dove 0.7 e' la caduta di potenziale introdotta dal led e 5 e' la tensione massima sul piedino (corrispondente al livello logico 1). Per stare sicuri e non stressare la linea con assorbimenti al limite e' stata inserita una resistenza da 330ohm.
Di default le linee della porta A sono impostate come input e siccome non vengono utilizzate occorre inserire delle resistenze di pull-up da 10K per definirne i valori di tensione. Queste resistenze possono essere evitate semplicemente impostando da programma le linee della porta A come output.
No comments:
Post a Comment