Applicazioni dei microcontrollori PIC

Похожие документы
Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1.

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti

progettare CHIAVE progettare & costruire

Lezione 8. Figura 1. Configurazione del registro INTCON

VOLTMETRO/AMPEROMETRO DIGITALE (MK3980)

Marcia e Arresto di un Motore elettrico

Lezione 2. Figura 1. Schema del circuito necessario per le prove

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic.

Termometro digitale. Ivancich Stefano

PROCESSOR 16F84A. ;configurazione FUSES: oscillatore XT, WDT disabilitato PWRT abilitato, CP disabilitato config 0x3FF1

MICROCONTROLLORE PIC16F84A

CRONOMETRO DECIMALE 1/10 Second Stopwatch with PIC16F886 MANUALE TECNICO e ISTRUZIONI

Manuale per la programmazione del PIC 16F84

Lettore di Frequenza per VFO a conversione

GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876

DISPLAY LCD HD44780U(LCD-II)

Kit Assembling. (board rev 002)

con il microcontrollore Microchip PIC16F887 MANUALE TECNICO Revisione manuale: Luglio 2016

APPUNTI SUL PIC16F84

Far lampeggiare un led o forse un semaforo?

Esercizi di verifica del debito formativo:

Lezione 1 Caratteristiche principali del PIC16C84 L'hardware

LaurTec. Scheda LED con Pulsanti. Versione N 1.0. Autore : Mauro Laurenti. ID: PJ7004-IT

PRIMI PASSI CON ARDUINO

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

PIC Esempi - LED. Per i primi esempi viene utilizzato soltanto un LED sulla porta B (PortB), successivamente si utilizzano più LED.

Esperimentazioni di Fisica II. Esercitazione 0 Utilizzo strumentazione di laboratorio. Misure di resistenze.

LaurTec. Scheda di controllo motori DC e Stepper bipolari. Versione N 1.0. Autore : Mauro Laurenti.

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

Interfacciamento di periferiche I/O al μp 8088

Camar Elettronica s.r.l. Via Mulini Esterna n CARPI (Modena) ITALY

Camar Elettronica s.r.l. Via Mulini Esterna n CARPI (Modena) ITALY. 2 Temperature Pt100 - Collegamento 3 fili

MANUALE TECNICO E ISTRUZIONI

Relazione di laboratorio. Studente COGNOME Nome

Real Time Clock, in I2C BUS, Provvisto di RAM.

Microcontrollori. L ultima parte del corso prevede un approfondimento sui microprocessori, in particolare sul PIC 16F876.

ESERCIZI SUI SISTEMI DI NUMERAZIONE

Contatore asincrono esadecimale

DMX 30. PLC visualizzato per montaggio a quadro. CARATTERISTICHE ELETTRICHE Min 20Vcc ; Max 26 Vcc Min 15 Vac ; Max 21 Vac

Corso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3).

PROGRAMMAZIONE ASSEMBLER

Misure voltamperometriche su dispositivi ohmici e non ohmici

Cronotermostato settimanale, a batteria

PUNTATORE LASER AUTOMATICO CON COMANDO VIA ETHERNET

Programmazione del microcontrollore PIC 16F84

OROLOGIO DIGITALE con DISPLAY GIGANTI

ITIS MAX PLANCK ( Lancenigo di Villorba )

Fagor Automation S. Coop. MANV-I/O. Manuale di installazione e funzionamento. Manual code: Manual version: 0404

Progetto di un Interruttore a Combinazione

VELA-RX MOTORE 220V 500W

15. Verifica delle tabelle della verità di alcune porte logiche

Misure su linee di trasmissione

Programma di simulazione per Arduino

Esempi di Programmi con TIO 1 6 (1).

Sch ed e Ser ie RD7 7

è possibile selezionare la durata del tempo dell uscita ad impulso. 6 possibilità: 1.0s, 0.5s, 0.2s, 0.1s, 0.05s, 0.01s

Descrizione Sistema Monitoraggio Contametri

Davide Gennaretti, Matteo Nicolini

CORSO di AUTOMAZIONE INDUSTRIALE

Il µcontrollore PIC 16F84

Internetworking V a nno

CONTA METRI PESCA ALLA TRAINA

POLMONE PER AVVOLGITORE O SVOLGITORE A GRANDE ACCUMULO MANUALE ISTRUZIONI

MICROCONTROLLORE AT89C2051

MANUALE UTENTE PMA480 PMA240 FINALE DI POTENZA

Collaudo statico di un ADC

A.S. 2015/16 CLASSE 5 AEE MATERIA: LABORATORIO DI T.P.S.E.

P-9910B PROGRAMMATORE PORTATILE

GENERATORE DI FUNZIONI PROGRAMMABILE

Versione N 1.0. LaurTec. Orologio con display 7 segmenti. 4 Digits Clock. Autore : Ivo Colleoni ID: UP0012-IT. Copyright 2016 Mauro Laurenti 1/19

Ricevitore AC-RX2/CS. AC-RX2/CS Manuale d istruzioni. Pin-out. Connessioni. Caratteristiche tecniche. Component Side

Anno scolastico Supervisore Prof. Giancarlo Fionda Insegnante di Elettronica

MST_K12. Regolatore di velocita per motori in CC. Realizzazione e Applicazione

Guida all assemblaggio e al testing del modulo LNPC

Controllori programmabili serie AC31 Dati applicativi serie 90

MANUALE D'ISTRUZIONI GENERATORI DI FUNZIONI

Manuale del prodotto. ABB i-bus KNX. Interfacce universali US/U 2.2 US/U 4.2. Building Systems Engineering

Console KVM per montaggio a Rack 1U con hub USB incorporato - Schermo da 17" con layout tastiera Americana p

NMRONDOAS1-NMATX3-NMATX2S

OROLOGIO DIGITALE a MICROCONTROLLORE con PIC 16F628A

ABB i-bus KNX Interfaccia universale, 12 canali, FM US/U 12.2

TIMER 5-90 sec. TIMER da 5 a 90 secondi MANUALE TECNICO e ISTRUZIONI

XTR SE 2,4 Manuale d uso

PANNELLO DI RIPETIZIONE E COMANDO REMOTO

Progetto per il corso di Microcontrollori: Gestore Ambientale

MANUALE PER L OPERATORE Versione software: 1.0

List p=16f84 ;Tipo di processore include "P16F84.INC" ;Definizioni di registri interni. goto Inizio

Транскрипт:

Applicazioni dei microcontrollori PIC In questa unità vengono esposte le modalità di realizzazione di un circuito hardware con il microcontroller PIC16C84 (o PIC16F84), per la prova dei programmi presentati nel Modulo 11, unità 3. La scheda presenta caratteristiche tali da risultare particolarmente versatile, permettendo ampie possibilità di configurazione delle linee di I/O. In questo modo è possibile realizzare numerose esperienze oltre quelle proposte. Nell unità verranno forniti tutti gli elementi necessari per procedere alla realizzazione della scheda. Per facilitare l inserimento sul circuito del microcontrollore, è previsto uno zoccolo di tipo ZIF a 20 pin con levetta. Il circuito presentato offre al lettore un esempio di interfacciamento del microcontroller con periferiche di I/O. 1 Presentazione della scheda Il circuito elettrico Nella figura 1 è raffigurato lo schema elettrico del sistema. Le 8 linee RB0 RB7 del 16C84 sono portate verso l esterno, con in serie un resistore di protezione da 100 Ω. Le linee RA0 RA4 possono essere invece, per mezzo dei ponticelli J2 J5, o portate verso l esterno (con in serie i resistori da 100 Ω) o collegate a 4 LED (D1 D4) e contemporaneamente al display TIL311 (con decodifica interna BCD 7 segmenti). Per generare il clock del sistema è possibile utilizzare un oscillatore al quarzo (con frequenza di 4 MHz o inferiore) o una semplice rete RC. In questo caso nel circuito non deve essere montato il quarzo ed il condensatore C3, ma solo il condensatore C4 e il resistore R12 1, e deve essere chiuso il ponticello JP1. Con la rete RC il valore di C4 non deve essere inferiore a 20 pf e R12 deve essere compreso tra 3 kω e 100 kω; in questo caso, per alcuni valori di C4 e R12 si hanno approssimativamente le seguenti frequenze: [pf] R12 [kω] f [MHz] C4 [pf] R12 [kω] f [MHz] 20 5,1 3,94 20 10 2,34 100 5,1 1,49 100 10 1,12 In fase di programmazione del dispositivo si deve poi selezionare la modalità di funzionamento dell oscillatore scegliendo, nell apposita finestra Oscillator RC o XT a seconda del circuito utilizzato ( unità 4, Modulo 11). La linea di reset MCLR (Master Clear) è portata anche essa verso l esterno ed è dotata di un resistore di pull-up che la mantiene in condizioni di funzionamento normale a livello alto. Il reset del sistema viene fatto portando la linea RST a livello basso (con un pulsante normalmente aperto). Con i ponticelli J2 J5 in posizione 1 le linee sono portate verso l esterno e possono essere programmate come linee di input o output indipendenti. Si ricorda che la linea 1 Il resistore R12 non deve essere montato se è utilizzato l oscillatore al quarzo.

RA4, quando svolge la funzione di output, è open drain e pertanto necessita di un resistore di pull-up esterno collegato a V DD. Con i ponticelli J2 J5 in posizione 2 le linee sono collegate con i LED e con il display TIL 311 e quindi debbono essere programmate esclusivamente come output. È comunque sempre possibile utilizzare ciascuna linea, indipendentemente dalle altre, come ingresso o uscita, spostando in modo opportuno il ponticello ad essa collegato. Fig. 1 Fig. 2 Il layout Come è possibile osservare dalla figura 3, le linee di I/O sono portate all esterno su due lati distinti, da una parte le linee RB0 RB7 suddivise in due gruppi, e dall altro RA0 RA4. Ogni gruppo di linee è dotato di connettori di alimentazione V CC (V DD ) e GND indipendenti, per facilitare il collegamento di periferiche esterne che necessitano di alimenta-

zione. Sono presenti, inoltre, i due connettori per l alimentazione della scheda che deve essere fatta con tensione stabilizzata a 5 V. Per il montaggio del PIC16C84 (18 pin) è prevista la possibilità di montare un semplice zoccolo a 18 pin oppure uno zoccolo del tipo Textool a 20 pin con levetta (due pin rimangono non utilizzati). È consigliabile utilizzare per il collegamento delle linee di I/O e di alimentazione verso l esterno dei connettori per circuito stampato a due pezzi del tipo con base fissa (collegata permanentemente alla basetta) e morsettiera estraibile su cui effettuare i collegamenti. Sulla basetta i piedini sono disposti con passo 5,08 mm. Il circuito stampato Nella figura 3 è riprodotto il layout della scheda (vista dall alto) con la disposizione dei componenti e le piste che sono poste sul lato opposto. La scheda è monofaccia. Bisogna effettuare, sul lato componenti, alcuni ponticelli di filo rappresentati in nero sul disegno. Il TIL311 (U2) è montato su normale zoccolo a 14 pin. Tutti i LED hanno il catodo (lato smussato) collegato a GND. Nella figura 3 i resistori R8 R11 da 820 Ω, sono colorati in grigio per non confonderli con gli altri da 100 Ω. Nella figura 4 è riportato il master del circuito in scala 1:1. Fig. 3 Fig. 4

2 Applicazioni software A complemento degli esempi proposti nel Modulo 5, unità 3, ne vengono presentati altri con alcuni programmi applicativi che fanno uso della scheda presentata. Programma 1 Alla scheda è collegata una tastiera a matrice come in figura 5. Per semplicità sono usati solamente 4 tasti. Ma l applicazione può essere estesa anche a tastierini 4 4. Agli ingressi collegati con le linee RB4 e RB5 devono essere connessi due resistori di pull-up collegati av CC di 4,7 kω. Fig. 5 Il programma legge in continuazione la tastiera e visualizza sul dispaly il valore numerico (1 4) del tasto premuto. Il programma per controllare se è stato premuto un tasto, pone a livello basso la prima riga (RB0) e a livello alto la seconda (RB1). Legge poi la colonna RB4 e se la trova a livello basso significa che è stato premuto il tasto 1, e quindi salta a visualizzare il corrispondente numero. Se la colonna fornisce livello alto viene letta la colonna RB5. Se la trova a livello basso significa che è stato premuto il tasto 2, e quindi salta a visualizzare il corrispondente numero. Se la colonna fornisce livello alto inverte lo stato di RB0 e RB1 e prosegue come il caso precedente potendo in questo caso localizzare i tasti 3 e 4. La routine di ritardo serve per minimizzare l effetto dei rimbalzi dei pulsanti. Prog. 1 ;TAST1A.ASM LIST P=16C84, F=INHX8M ;RB0 -> R0 RB1 -> R1 RB4 -> C0 RB5 -> C1 ;RESISTORI DI PULL-UP SU C0 E C1 ;TASTO PREMUTO PORTA BASSA LA COLONNA port_a EQU 5 port_b EQU 6 conta1 EQU 2Eh ;indirizzo di un registro per il 1 contatore conta2 EQU 2Fh ;indirizzo di un registro per il 2 contatore ORG 0 inizio: MOVLW 0F0h TRIS port_b ;RB7-RB4 input RB3-RB0 output MOVLW 00h TRIS port_a ;pin porta A tutti d'uscita ancora: BCF port_b,0 ;RB0 = 0 BSF port_b,1 ;RB1 = 1 GOTO num1

BTFSS port_b,5 ;salta istruzione seguente se RB5 = 1; GOTO num2 BSF port_b,0 ;RB0 = 1 BCF port_b,1 ;RB1 = 0 GOTO num3 BTFSS port_b,5 ;salta istruzione seguente se RB5 = 1; GOTO num4 num1: MOVLW 01 ;01 in accumulatore num2: MOVLW 02 ;02 in accumulatore num3: MOVLW 03 ;03 in accumulatore num4: MOVLW 04 ;04 in accumulatore delay: MOVLW 0FFh MOVWF conta1 loop1: DECFSZ conta1,1 ;decr. reg. conta1 e salta istruz. seguente se zero GOTO loop3 GOTO fine loop3: MOVWF conta2 loop2: DECFSZ conta2,1 ;decr. reg. conta2 e salta istruz. seguente se zero GOTO loop2 GOTO loop1 fine: RETURN END Programma 2 Un miglioramento del programma precedente che permette una più facile applicazione a tastierini a matrice con un numero maggiore di tasti è fornita dal programma 2. Il rilevamento del tasto premuto segue sempre il procedimento già esposto, quindi per aumentare le righe bisogna utilizzare anche le linee RB2 e RB4 (come output) e per le colonne le linee RB6 e RB7 (come input). La visualizzazione del tasto premuto questa volta è effettuata sempre dallo stesso pezzo di programma. Si usa infatti un contatore che tiene conto, man mano che si procede nella scansione delle colonne, della posizione raggiunta. Prog. 2 ;TAST2.ASM LIST P=16C84, F=INHX8M ;RB0 -> R0 RB1 -> R1 RB4 -> C0 RB5 -> C1 ;RESISTORI DI PULL-UP SU C0 E C1 ;TASTO PREMUTO PORTA BASSA LA COLONNA port_a EQU 5 port_b EQU 6

conta1 EQU 2Eh ;indirizzo di un registro per il 1 contatore conta2 EQU 2Fh ;indirizzo di un registro per il 2 contatore tasto EQU 2Dh ;indirizzo di un reg. per numero tasto premuto ORG 0 inizio: MOVLW 0F0h TRIS port_b ;RB7-RB4 input RB3-RB0 output MOVLW 00h TRIS port_a ;pin porta A tutti d'uscita ancora: MOVLW 0 MOVWF tasto ;IL REGISTRO TASTO CONTIENE 0 BCF port_b,0 ;RB0 = 0 BSF port_b,1 ;RB1 = 1 INCF tasto,1 ;il registro tasto contiene 1 INCF tasto,1 ;il registro tasto contiene 2 BTFSS port_b,5 ;salta istruzione seguente se RB5 = 1; BSF port_b,0 ;RB0 = 1 BCF port_b,1 ;RB1 = 0 INCF tasto,1 ;il registro tasto contiene 3 INCF tasto,1 ;il registro tasto contiene 4 BTFSS port_b,5 ;salta istruzione seguente se RB5 = 1; numero: MOVF tasto,0 ;il valore del registro tasto in accumulatore delay: MOVLW 0FFh MOVWF conta1 loop1: DECFSZ conta1,1 ;decr. reg. conta1 e salta istruz. seguente se zero GOTO loop3 GOTO fine loop3: MOVWF conta2 loop2: DECFSZ conta2,1 ;decr. reg. conta2 e salta istruz. seguente se zero GOTO loop2 GOTO loop1 fine: RETURN END