La comunicazione con l esterno

Documenti analoghi
Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio.

Calcolatori Elettronici T Ingegneria Informatica A2 - Gestione di una matrice di LED (8x8)

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer

CALCOLATORI ELETTRONICI II

TIMER H-M-S CON PIC [2] - IL PROGRAMMA 1

Arduino/Raspberry Board and GSM Library

cpu CONTROLLORI DI I/O ADDRESS BUS CONTROL BUS DATA BUS D[0:7] dec CS# RD# WR# A0,..An RESET ...?

/***********************************************************/ /**** Prototipi /***********************************************************/

D.A.M. Bros Robotics -

TERMOSTATO APRICANCELLO TELECONTROLLO GSM-CA70

Davide Gennaretti, Matteo Nicolini

Guida alla Quarta Esercitazione

Versione N 1.0. LaurTec. Migrare un progetto da Freedom II a Freedom III. Autore : Mauro Laurenti ID: PJ7014-M-IT. Copyright 2016 Mauro Laurenti 1/15

Marcia e Arresto di un Motore elettrico

17^ parte : Bluetooth Shield SLD63030P. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

PIEDINO NOME DESCRIZIONE

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

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

Interfacciamento di periferiche I/O al μp 8088

1

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Calcolatori Elettronici T Ingegneria Informatica A1 Introduzione Arduino

Far lampeggiare un led o forse un semaforo?

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

D:\Fulvio\Elettronica\Anemometro\codici\vento_lcd_41.pbp

Programmazione di LCD su EasyPic5

LA GESTIONE DELLA I/O

Componenti principali

CPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica

FC-51: IR Infrared Obstacle Detection Sensor Module 2-30cm

"Centrale per risparmio energetico Mod. R01"

Sistemi a microprocessore

INFORMATICA INDUSTRIALE

Ing. Gabriele MONTI

Facciamo lampeggiare un led

Titolare del corso Prof. Andrea Cusano. Assistenti: Ing. Giuseppe Quero Ing. Antonio Iele Ing. Marco Leone Ing. Benito Carotenuto

Programma di simulazione per Arduino

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

TUTORIAL GPL_BENZINA CON PIC16F1826 (UTILIZZO DELL ADC)

CODIFICA E RICETRASMISSIONE DI UN SEGNALE

Tutorial Display LCD e PIC

TM1638 BOARD con ARDUINO

PRIMI PASSI CON ARDUINO

Che cos è la barriera luminosa?

Reti logiche (2) Circuiti sequenziali

Reti logiche (2) Circuiti sequenziali

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni


Quaderni di Elettronica corso per creativi ed inventori

Gestione dell I/O. Nuovo Corso di Calcolatori Elettronici I. Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

6: Macchina di Von Neumann

Sistemi di numerazione

Università degli Studi di Ferrara

Specifiche del protocollo di comunicazione semplificato per il modulo seriale di I/O

TCIP0202 SCHEDA TELECONTROLLO IP

cpu CONTROLLORI DI I/O All interno della periferica registri o parole di stato e memoria ADDRESS BUS CONTROL BUS DATA BUS D[0:7] dec CS# RD# WR#

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Struttura di un sistema di elaborazione. SDE: basi. Descrizione dei componenti (2) Descrizione delle componenti

Modulo LCD: interfacciamento e gestione

Dati due punti sul piano calcolare la loro distanza

CPUSim Laboratorio 14/11/2012.

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S Microcontrollori Microchip PIC 8 bit. namoroso@mrscuole.

Introduzione al corso

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S Microprocessori - Microcontrollori.

Introduzione al linguaggio C Primi programmi

ACCENDERE E SPEGNERE UN DIODO LED

Prima prova intercorso. Lezione 10 Logica Digitale (4) Dove siamo nel corso. Un quadro della situazione

ARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?

I PIC Partendo da Zero By link_89

Interfaccia contatti. Descrizione

ESERCIZI CON PULSANTI

MANUALE OPERATIVO LETTORE / SCRITTORE MIFARE RDM1 versione OEM

A.S. 2017/2018 PIANO DI LAVORO PREVENTIVO CLASSE 4Be

Università degli Studi di Ferrara

Sistemi a Microcontrollore. 3. Bus e Mappaggio in Memoria

Architettura dei Microcontrollori Microchip PIC18F

Laboratorio di Informatica. Introduzione

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

TASTIERA K-RADIO Tastiera con ricevitore radio integrato Rev. 1.0

Arduino & Oltre corso di coding ed elettronica maker

Componenti e connessioni. Capitolo 3

Interfaccia contatti Basic

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC

FREERING CONTROL GSM BASED VERSIONI DIN

SCHEDA SPERIMENTALE ARDUINO UNO

I SENSORI DI PROSSIMITA

Corso Base Arduino ed Elettronica

Comando Telefonico GSM (CT GSM)

GW : ATTUATORE DIMMER RESISTIVO CAPACITIVO (400W)

I Circuiti combinatori: LOGISIM

Interruttore singolo per comandi ON/OFF Tipo: x, EC 16x x

Docenti Marco Cirrito, Pier Luigi Girelli. Disciplina. OBIETTIVI MINIMI (necessari al passaggio alla classe successiva)

Il Theremin con il microcontrollore

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

D.A.M. Bros Robotics -

academy lez. 9 controllo carichi - Il controllo carichi Parte 2

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

ISA Input / Output (I/O) Data register Controller

Applicazioni dei microcontrollori PIC

Transcript:

La comunicazione con l esterno

Input / Output

Le porte di I/O I Dati entrano Disp In Disp In Dispositivo di Ingresso Porta In Porta In Porte di Ingresso CPU Bus dati I Dati escono Porta Out Disp Out Porta Out Disp Out Porte di Uscita Dispositivo di Uscita

Sensori e attuatori Energia non elettrica Sensore Energia elettrica Interfaccia Bit P O R T A I N I sensori sono gli occhi di un sistema di controllo Energia non elettrica Attuatore Energia elettrica Interfaccia Bit P O R T A O U T Gli attuatori sono le mani di un sistema di controllo

La porta OUT per un elettronico CPU read control line Address decode line Data Bus from CPU R En Data L A T C H Dati verso il mondo esterno La porta di uscita è un LATCH La CPU la scrive, cioè mette il dato sul bus La CPU abilita la porta specificando il suo indirizzo La porta di uscita deve leggere il dato presente sul bus Il dato viene memorizzato in uscita fino all invio del dato successivo

La porta OUT per un informatico 0 0 Che indirizzo ha? Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 0 0 0 0 0 0 0 0 Bit0 Da quanti bit è? Quali attuatori pilota? 4 7 Che effetto hanno gli 1 e 0? Dove metto il dato da inviare? Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Quale sintassi ha l istruzione? 0 1 0 0 0 1 1 1

Gestione di un led on-off Anodo Catodo Collegato ad un pin di una porta OUT Pilotaggio in LOGICA POSITIVA Valore Bit Effetto O spegne 1 accende Pin 0/1 Energia Energia Interfaccia LED elettrica Luminosa Si/No

Gestione di un led on-off Anodo Catodo Collegato ad un pin di una porta OUT Pilotaggio in LOGICA NEGATA Valore Bit Effetto O accende 1 spegne Pin 0/1 Energia Energia Interfaccia LED elettrica Luminosa Si/No

Pilotiamo 8 led in logica + 1 accende 0 spegne 0 7 3 2 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 Inviamo alla Porta il n 7 esadecimale I led collegati ai bit 0 1 2 sono ON I led collegati ai bit 3 4 5 6 7 sono OFF Inviamo alla Porta il n 32 esadecimale I led collegati ai bit 1 4 5 sono ON I led collegati ai bit 0 2 3 6 7 sono OFF

Pilotiamo 8 led in logica - 0 accende 1 spegne 5 6 B 1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 Inviamo alla Porta il n 56 esadecimale I led collegati ai bit 0 3 5 7 sono ON I led collegati ai bit 1 2 4 6 sono OFF Inviamo alla Porta il n B1 esadecimale I led collegati ai bit 1 2 3 6 sono ON I led collegati ai bit 0 4 5 7 sono OFF

Le Porte di I/O dei PIC I PIC hanno uno o più registri chiamati PORT collegati direttamente ai piedini del microcontrollore Ogni PORT ha il suo indirizzo Le porte sono contraddistinte con le lettere dell alfabeto A B C..

I Registri di I/O Per ogni porta di I/O nei PIC18 ci sono tre registri Port Data Register (PORTA PORTB etc.) serve per comunicare con l esterno Port Direction Control Register (TRISA TRISB etc.) decide se i bit della porta sono di ingresso o di uscita Latch Data Register (LATA LATB etc.) serve per memorizzare il dato che si invia ad una porta

Gli indirizzi dei Registri di I/O Dobbiamo ricordarci ogni volta che #define PORTA #define PORTB. #define TRISA. #define TRISB. Le costanti sono nel file del microcontrollore #include <p18f8722.h>

Programmazione Porte I/O Nel registro TRIS.. 1 = Input 0 = Output Il software decide se un pin della PORTA è di input o di output Basta Mettere 0 o 1 nei bit corrispondenti del registro TRIS

All accensione Tutti i bit delle porte sono in ingresso I N SENSORE I N ATTUATORE Non c e collegamento fino a che il bit non viene dichiarato di OUT

Se il default fosse OUT O U T ATTUATORE O U T 1 0 SENSORE Si rischia il CORTOCIRCUITO

Colleghiamo un led al bit0 di PORTD PORTD Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Tutti gli altri bit non servono possono essere programmati Il bit 0 della PORTD deve essere programmato in USCITA in INGRESSO in USCITA

Programmazione PORTD TRISD Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 1 1 1 1 1 1 1 0 TRISD = 0xFE; 8 + 4 + 2 + 1 F 8 + 4 + 2 + 0 E Prima di poter usare il bit 0 di PORTD in uscita Bisogna inviare al registro TRISD l esadecimale FE In C i numeri esadecimali si fanno precedere da 0x 0xFE

Pilotaggio del led in logica + Bit7 Bit6 Bit5 PORTD Bit4 Bit3 Bit2 Bit1 0 0 0 0 0 0 0 1 0 1 Bit0 Cosa inviamo ai bit che non servono? Se li abbiamo programmati in INGRESSO (non ha importanza cosa inviamo) in USCITA (dobbiamo inviare 0) Per accendere il Led possiamo in ogni caso inviare al registro PORTB il numero esadecimale 1 0x1

Uso delle costanti La costante che accende il Led è 1. Definiamola: # define LedOn 0x1 Per inviarla alla PORTB dobbiamo usare il registro LATD LATD = LedOn ; LedOn LATB PORTB 1

Le Costanti del programma // costanti necessarie #define ProgD #define LedOn 0xFE 0x1

La programmazione PORTB void InitHw (void) { TRISD = ProgD ; return ; }

Accensione led void main (void) { InitHw( ) ; LATD = LedOn ; while(1); }

Colleghiamo un led al bit3 di una porta Bit7 Bit6 Bit5 Bit4 PORT Bit3 Bit2 Bit1 0 0 0 0 1 0 0 0 Bit0 Programmiamo il bit 3 della porta in USCITA Programmiamo gli altri bit in INGRESSO Invieremo al registro TRIS Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 1 1 1 1 0 1 1 1 Logica Positiva 8 + 4 + 2 + 1 F 0 + 4 + 2 + 1 7 0 spegne 8 accende la parola di programmazione

A quale porta è collegato il led? PORTB PORTA?!? Come faccio il programma? Chiamiamo l indirizzo della porta PortaLed Definiamo una costante Completeremo il rigo quando l elettronico avrà deciso PORTA # define PortaLed PORTB PORTC

Come la programmo? TRISB TRISA Definiamo un altra costante Completeremo il rigo quando l elettronico avrà deciso TRISA # define TrisLed TRISB TRISC

Le costanti necessarie // costanti necessarie #define PortaLed LATD #define TrisLed TRISD #define Prog #define LedOn 0xF7 0x8

Che vantaggio abbiamo? Se l elettronico decide di cambiare la porta: Invece di cercare tutti i righi in cui abbiamo usato il vero nome della Porta Dobbiamo cambiare solo le due costanti PortaLed e TrisLed Se l elettronico decide di cambiare bit: Dobbiamo cambiare solo la costante LedOn e Prog

Il main void main (void) { InitHw( ) ; PortaLed = LedOn ; while(1); }

La inizializzazione Hw void InitHw (void) { TrisLed = Prog ; return ; }

E se lo vogliamo spegnere? Ci serve un altra costante: # define LedOff 0x0 La dobbiamo inviare alla porta: PortaLed = LedOff ;

Lampeggio Ultraveloce del Led Lampeggio Programmo Porta Accendo Led Spengo Led void main (void) { InitHw( ) ; do { PortaLed = LedOn ; PortaLed = Ledoff ; } while(1); }