SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
I Microcontrollori
Realizzata da:
Yassine Dallali
Sandrini Samuele
Che cosa sono?
I microcontrollori sono “piccoli computer” in un unico dispositivo e
sono utilizzati in applicazioni specifiche ( General Porpose )
● Controllo dispositivi
● Domotica
● Sistemi di sicurezza
● LCD e Touch Screen
Differenze tra Microprocessori e Microcontrollori
I microcontrollori hanno miglior
capacità di gestione dell’I/O e
dell’interrupt.
I microprocessori hanno miglior
capacità di elaborazione delle
informazioni.
Architettura interna
I microcontrollori sono formati da:
● CPU, parte centrale del dispositivo
predisposta al controllo.
● Memoria per il programma
● Memoria per i dati
● Timer
● Periferiche I/O
Architettura interna
Memoria per il programma
1. Tipo FLASH
2. Estensione di 1024 locazioni di 14 bit ciascuna
3. Ogni locazione è distinta da un indirizzo
esadecimale ( 000h - 3FFh )
4. 8 locazioni riservate allo STACK ( contiene l’
indirizzo di ritorno delle subroutine )
5. All’avvio il Program Counter punta all’indirizzo
000h ( Contiene il primo codice del
programma )
Architettura interna
Memoria per i dati
Costituita da due parti:
1. EEPROM, con estensione di 64 locazioni di un
byte
2. RAM ( file register ), divisa in due banchi
a. Banco 0 formato da 80 locazioni di un
byte ciascuna ( 00h - 3Fh )
b. Banco 1 formato da 12 locazioni di un
byte ciascuna ( 80h-0Bh )
Architettura interna
Periferiche I/O
1. Porte I/O
2. ADC ( Analog Digital Converter ), per acquisire
segnali analogici
3. Comparatori, per il confronto tra due tensioni
4. Muduli CCP ( Capture Compare PWM )
5. I/O Seriale, per collegare il seriale al
microcontrollore con dispositivi esterni
File Register
Nella memoria RAM vi sono due tipi di
locazioni:
● Registri specializzati, riservati a particolari
funzioni non usabili dall’operatore
● Registri di uso generale, a dispozione dell’
utente
File Register: PORTA (05h) PORTB (06h)
In questi due registri vengono posti:
● I dati che debbono essere inviati alle singole linee della PORTA o della
PORTB
● I dati che provengono dall’esterno
File Register: TRISA (05h) TRISB (06h)
I singoli bit dei registri TRISA e TRISB servono per determinare quale linea della
PORTA e PORTB va considerata come input e quale come output:
● Bit posto a 1: Input
● Bit posto a 0: Output
File Register: STATUS (03H)
Il bit più importante del registro STATUS è il numero 5 (RP0) e permette di
selezionare il banco di memoria utilizzato:
● RP0 = 0 , banco 0
● RP0 = 1 , banco 1
File Register: OPTION (80h)
Tale registro permette di fare varie configurazioni di sistema:
● T0CS (Bit 5), permette di selezionare la sorgente per il segnale di clock del
timer (T’CS=0 clock interno, T0CS=1 clock esterno)
● PSA (Bit 3), permette di assegnare il prescaler al timer TMR0 ( PSA=0 ) o
al watch-dog timer WDT ( PSA=1 )
File Register: INTCON ( 8Bh )
Il registro INTCON serve per la gestione degli interrupt, GIE è il bit numero 7 ed
è il più importante:
● GIE = 0, Interrupt disabilitato
● GIE = 1, Interrupt abilitato
File Register: TMR0 ( 01h )
E’ un timer interno al microcontrollore a 8 bit che
permette di fare precise temporizzazioni.
E’ possibile utilizzare un timer esterno.
Ad ogni timer è possibile associare un prescaler
(divisore di frequenza).
Esso genera un reset ad un intervallo prestabilito
in fase di programmazione. Questo avvio ciclico
permette di riscontrare situazioni di stallo.
Catena di programmazione
I microcontrollori possono essere programmati in Assembly, Pascal e C.
MicroC è un IDE (ambiente di sviluppo) che ci permette di semplificare la
catena di programmazione, in quanto esso svolge le seguenti azioni:
● Compila le istruzioni inserite, ottenendo un file oggeto ( .obj )
● Effettua il link con le librerie
● Trasforma il programma ottenuto dal linker in Assembly e poi in
Esadecimale ( Hex )
● Trasforma il codice esadecimale in codice binario
Proteus
Proteus è un programma per la progettazione e la simulazione di circuiti
elettronici. Esso è costituito da due parti:
● ISIS, ambiente di progettazione e simulazione dei circuiti grazie alla
presenza di una libreria in cui vi sono tutti i componenti e la
strumentazione necessaria (Es. generatore di funzione, oscilloscopio,
multimetro)
● ARES (PCB-Designer), per realizzare lo schema PCB dei circuiti
Relazione tra MicroC e Proteus
Per simulare il funzionamento dei microcontrollori bisogna seguire i seguenti
passaggi:
1. Realizzazione dello schema del circuito tramite Proteus
2. Scrittura del codice relativo al microcontrollore in MicroC ed effettuando il
building
3. Caricamento del codice nel microcontrollore in Proteus
Schema: Led ad intermittenza
MicroC: Led ad intermettenza
void main() {
PORTA=0; /* Porto a la Porta A a zero logico*/
TRISA=0; /* inizializzo la Porta A come uscita*/
while(1) /* ciclo sempre vero*/
{
PORTA=~PORTA; /* complemento a uno della Porta A*/
delay_ms(500); /* delay time di 500ms*/
}
}
Le istruzioni PORTA=0 e TRISA=0 servono per configurare la PORTA come
uscita.
Successivamente viene effettuato il complemento a uno della PORTA in modo
tale che cambi stato (led spenti si accendono e viceversa) con un delay time di
500 ms, tutto questo è inserito in un ciclo infinto, in modo da realizzare l’
intermittenza dei led.
Schema: Led a scalata
MicroC: Led a scalata
void main() {
PORTA=0; /* Porto a la Porta A a zero logico*/
TRISA=0; /* inizializzo la Porta A come uscita*/
while(1) /* ciclo sempre vero*/
{
delay_ms(500); /* delay time di 500ms*/
PORTA.f0=~PORTA.f0; /* complemento a uno del bit 0 della Porta A*/
delay_ms(500);
PORTA.f1=~PORTA.f1;
delay_ms(500);
PORTA.f2=~PORTA.f2;
delay_ms(500);
PORTA.f0=0;
PORTA.f1=0;
PORTA.f2=0;
}
}
All’interno del ciclo infinito, con un delay time di 500 ms viene effettuato il
complemento ad uno delle singole linee della PORTA (RA0 si ottiene con
PORTA.f0) in modo tale che cambi stato. Successivamente tutte le linee
vengono resettate ed il ciclo si ripete.
MicroC: Istruzioni per programmare un LCD
Istruzioni utili:
1. Lcd_Init() per aprire la libreria di
un LCD;
2. Lcd_Out(riga,colonna,”testo”)
mette in output il testo richiesto
3. LCD_SHIFT_LEFT/RIGHT per
far scorrere il testo ella direzione
desiderata
MicroC: Istruzioni per programmare un LCD
// Settaggio dei pin del LCD
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;
// Direzione dei pin
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
void main() {
char i;
while(1)
{
Lcd_Init();
Lcd_Out(1,16,
"Classe 4AT");
delay_ms(500);
for(i=0;i<32;i++)
{
Lcd_Cmd
(_LCD_SHIFT_LEFT);
Lcd_Cmd
(_LCD_CURSOR_OFF);
delay_ms(200);
}
}
}

Más contenido relacionado

La actualidad más candente

Il plc linguaggi program
Il plc linguaggi programIl plc linguaggi program
Il plc linguaggi programGilda Tobia
 
Network configuration - IPTables firewall
 Network configuration - IPTables firewall Network configuration - IPTables firewall
Network configuration - IPTables firewallFulvio Corno
 
Presentazione
PresentazionePresentazione
Presentazionecesario
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Sardegna Ricerche
 
Post processing ipc dopo dbcopy v1
Post processing ipc dopo dbcopy v1Post processing ipc dopo dbcopy v1
Post processing ipc dopo dbcopy v1Chris Fernandez
 
PLC: lo standard iec61131 3
PLC: lo standard iec61131 3PLC: lo standard iec61131 3
PLC: lo standard iec61131 3Italiandirectory
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086Sergio Porcu
 
Anatomia di un'istruzione in Arduino Pt.1
Anatomia di un'istruzione in Arduino Pt.1Anatomia di un'istruzione in Arduino Pt.1
Anatomia di un'istruzione in Arduino Pt.1µhack
 
Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.2Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.2µhack
 
Workshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileWorkshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileCommit University
 

La actualidad más candente (12)

OPDE Drives
OPDE DrivesOPDE Drives
OPDE Drives
 
Il plc linguaggi program
Il plc linguaggi programIl plc linguaggi program
Il plc linguaggi program
 
Network configuration - IPTables firewall
 Network configuration - IPTables firewall Network configuration - IPTables firewall
Network configuration - IPTables firewall
 
Presentazione
PresentazionePresentazione
Presentazione
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
 
Post processing ipc dopo dbcopy v1
Post processing ipc dopo dbcopy v1Post processing ipc dopo dbcopy v1
Post processing ipc dopo dbcopy v1
 
PLC: lo standard iec61131 3
PLC: lo standard iec61131 3PLC: lo standard iec61131 3
PLC: lo standard iec61131 3
 
Workshop su Arduino
Workshop su ArduinoWorkshop su Arduino
Workshop su Arduino
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086
 
Anatomia di un'istruzione in Arduino Pt.1
Anatomia di un'istruzione in Arduino Pt.1Anatomia di un'istruzione in Arduino Pt.1
Anatomia di un'istruzione in Arduino Pt.1
 
Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.2Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.2
 
Workshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileWorkshop Arduino by Fiore Basile
Workshop Arduino by Fiore Basile
 

Destacado

OPERATE ROUGH TERAIN EQUIPMENT
OPERATE ROUGH TERAIN EQUIPMENTOPERATE ROUGH TERAIN EQUIPMENT
OPERATE ROUGH TERAIN EQUIPMENTLindsay Fritz
 
Mike Meo, Harvard GSD Core Portfolio
Mike Meo, Harvard GSD Core PortfolioMike Meo, Harvard GSD Core Portfolio
Mike Meo, Harvard GSD Core PortfolioMichael Meo
 
k12020 control theory ppt
k12020 control theory pptk12020 control theory ppt
k12020 control theory pptSourabh Gupta
 
50-Behavior-Based-Interview-Questions
50-Behavior-Based-Interview-Questions50-Behavior-Based-Interview-Questions
50-Behavior-Based-Interview-QuestionsAnirud Raghava
 
Новые направления развития на рынке металлосервисных услуг. Опыт СПК
Новые направления развития на рынке металлосервисных услуг. Опыт СПКНовые направления развития на рынке металлосервисных услуг. Опыт СПК
Новые направления развития на рынке металлосервисных услуг. Опыт СПКMetal Supply&Sales Magazine
 
Dane estetik laser
Dane estetik laserDane estetik laser
Dane estetik laserEstetikLaser
 
Equazione della circonferenza
Equazione della circonferenzaEquazione della circonferenza
Equazione della circonferenzaRedooc
 
Le incatevoli forme dei Frattali
Le incatevoli forme dei FrattaliLe incatevoli forme dei Frattali
Le incatevoli forme dei Frattalisamu97
 
Android Notifications in Android Nougat 7.0
Android Notifications in Android Nougat 7.0Android Notifications in Android Nougat 7.0
Android Notifications in Android Nougat 7.0Gracia Marcom
 
Business environment
Business environmentBusiness environment
Business environmentpraveenwwars
 

Destacado (19)

OPERATE ROUGH TERAIN EQUIPMENT
OPERATE ROUGH TERAIN EQUIPMENTOPERATE ROUGH TERAIN EQUIPMENT
OPERATE ROUGH TERAIN EQUIPMENT
 
Jeff Moriarty, Johnston Press
Jeff Moriarty, Johnston PressJeff Moriarty, Johnston Press
Jeff Moriarty, Johnston Press
 
test32renamed
test32renamedtest32renamed
test32renamed
 
Fernando cembranos
Fernando cembranosFernando cembranos
Fernando cembranos
 
Mike Meo, Harvard GSD Core Portfolio
Mike Meo, Harvard GSD Core PortfolioMike Meo, Harvard GSD Core Portfolio
Mike Meo, Harvard GSD Core Portfolio
 
Android Widget
Android WidgetAndroid Widget
Android Widget
 
k12020 control theory ppt
k12020 control theory pptk12020 control theory ppt
k12020 control theory ppt
 
Lakhan singh
Lakhan singhLakhan singh
Lakhan singh
 
50-Behavior-Based-Interview-Questions
50-Behavior-Based-Interview-Questions50-Behavior-Based-Interview-Questions
50-Behavior-Based-Interview-Questions
 
Новые направления развития на рынке металлосервисных услуг. Опыт СПК
Новые направления развития на рынке металлосервисных услуг. Опыт СПКНовые направления развития на рынке металлосервисных услуг. Опыт СПК
Новые направления развития на рынке металлосервисных услуг. Опыт СПК
 
Dane estetik laser
Dane estetik laserDane estetik laser
Dane estetik laser
 
Levantam10
Levantam10Levantam10
Levantam10
 
Equazione della circonferenza
Equazione della circonferenzaEquazione della circonferenza
Equazione della circonferenza
 
Le incatevoli forme dei Frattali
Le incatevoli forme dei FrattaliLe incatevoli forme dei Frattali
Le incatevoli forme dei Frattali
 
Trabajo3 sem4 gogoc
Trabajo3 sem4 gogocTrabajo3 sem4 gogoc
Trabajo3 sem4 gogoc
 
Android Notifications in Android Nougat 7.0
Android Notifications in Android Nougat 7.0Android Notifications in Android Nougat 7.0
Android Notifications in Android Nougat 7.0
 
Business environment
Business environmentBusiness environment
Business environment
 
Abdomen agudo
Abdomen agudoAbdomen agudo
Abdomen agudo
 
Medio natural
Medio naturalMedio natural
Medio natural
 

Similar a Microcontrollori

An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionJennifer De Filicaia
 
Architettura dei calcolatori
Architettura dei calcolatoriArchitettura dei calcolatori
Architettura dei calcolatorikaliaragorn
 
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19Ionela
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreMirko Mancin
 
EuComm
EuCommEuComm
EuCommiBLio
 
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...TogetherToSolve
 
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Andrea Gulberti
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Ionela
 
1informaticadibase 110602151357 Phpapp02
1informaticadibase 110602151357 Phpapp021informaticadibase 110602151357 Phpapp02
1informaticadibase 110602151357 Phpapp02Formazioneenna Enna
 

Similar a Microcontrollori (20)

An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotion
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Architettura dei calcolatori
Architettura dei calcolatoriArchitettura dei calcolatori
Architettura dei calcolatori
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Modulo 1 - Lezione 2
Modulo 1 - Lezione 2Modulo 1 - Lezione 2
Modulo 1 - Lezione 2
 
Tesi
TesiTesi
Tesi
 
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
DHow2 - L5
DHow2 - L5DHow2 - L5
DHow2 - L5
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
 
Personal computer
Personal computerPersonal computer
Personal computer
 
Cell Programming 1
Cell Programming 1Cell Programming 1
Cell Programming 1
 
Tecnologie Di Base
Tecnologie Di BaseTecnologie Di Base
Tecnologie Di Base
 
EuComm
EuCommEuComm
EuComm
 
Lezione 1
Lezione 1Lezione 1
Lezione 1
 
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
 
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
Sviluppo del sistema di controllo dell'assetto di un quadricottero con proces...
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
 
Lezione1 introduzione micro
Lezione1 introduzione microLezione1 introduzione micro
Lezione1 introduzione micro
 
1informaticadibase 110602151357 Phpapp02
1informaticadibase 110602151357 Phpapp021informaticadibase 110602151357 Phpapp02
1informaticadibase 110602151357 Phpapp02
 

Último

GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneServizi a rete
 
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoServizi a rete
 
GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO AntonioServizi a rete
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxtecongo2007
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleServizi a rete
 
GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroServizi a rete
 
Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptxfilippoluciani9
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoServizi a rete
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaServizi a rete
 

Último (9)

GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
 
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
 
GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO Antonio
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptx
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
 
GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI Alessandro
 
Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptx
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA Roberto
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
 

Microcontrollori

  • 1. I Microcontrollori Realizzata da: Yassine Dallali Sandrini Samuele
  • 2. Che cosa sono? I microcontrollori sono “piccoli computer” in un unico dispositivo e sono utilizzati in applicazioni specifiche ( General Porpose ) ● Controllo dispositivi ● Domotica ● Sistemi di sicurezza ● LCD e Touch Screen
  • 3. Differenze tra Microprocessori e Microcontrollori I microcontrollori hanno miglior capacità di gestione dell’I/O e dell’interrupt. I microprocessori hanno miglior capacità di elaborazione delle informazioni.
  • 4. Architettura interna I microcontrollori sono formati da: ● CPU, parte centrale del dispositivo predisposta al controllo. ● Memoria per il programma ● Memoria per i dati ● Timer ● Periferiche I/O
  • 5. Architettura interna Memoria per il programma 1. Tipo FLASH 2. Estensione di 1024 locazioni di 14 bit ciascuna 3. Ogni locazione è distinta da un indirizzo esadecimale ( 000h - 3FFh ) 4. 8 locazioni riservate allo STACK ( contiene l’ indirizzo di ritorno delle subroutine ) 5. All’avvio il Program Counter punta all’indirizzo 000h ( Contiene il primo codice del programma )
  • 6. Architettura interna Memoria per i dati Costituita da due parti: 1. EEPROM, con estensione di 64 locazioni di un byte 2. RAM ( file register ), divisa in due banchi a. Banco 0 formato da 80 locazioni di un byte ciascuna ( 00h - 3Fh ) b. Banco 1 formato da 12 locazioni di un byte ciascuna ( 80h-0Bh )
  • 7. Architettura interna Periferiche I/O 1. Porte I/O 2. ADC ( Analog Digital Converter ), per acquisire segnali analogici 3. Comparatori, per il confronto tra due tensioni 4. Muduli CCP ( Capture Compare PWM ) 5. I/O Seriale, per collegare il seriale al microcontrollore con dispositivi esterni
  • 8. File Register Nella memoria RAM vi sono due tipi di locazioni: ● Registri specializzati, riservati a particolari funzioni non usabili dall’operatore ● Registri di uso generale, a dispozione dell’ utente
  • 9. File Register: PORTA (05h) PORTB (06h) In questi due registri vengono posti: ● I dati che debbono essere inviati alle singole linee della PORTA o della PORTB ● I dati che provengono dall’esterno
  • 10. File Register: TRISA (05h) TRISB (06h) I singoli bit dei registri TRISA e TRISB servono per determinare quale linea della PORTA e PORTB va considerata come input e quale come output: ● Bit posto a 1: Input ● Bit posto a 0: Output
  • 11. File Register: STATUS (03H) Il bit più importante del registro STATUS è il numero 5 (RP0) e permette di selezionare il banco di memoria utilizzato: ● RP0 = 0 , banco 0 ● RP0 = 1 , banco 1
  • 12. File Register: OPTION (80h) Tale registro permette di fare varie configurazioni di sistema: ● T0CS (Bit 5), permette di selezionare la sorgente per il segnale di clock del timer (T’CS=0 clock interno, T0CS=1 clock esterno) ● PSA (Bit 3), permette di assegnare il prescaler al timer TMR0 ( PSA=0 ) o al watch-dog timer WDT ( PSA=1 )
  • 13. File Register: INTCON ( 8Bh ) Il registro INTCON serve per la gestione degli interrupt, GIE è il bit numero 7 ed è il più importante: ● GIE = 0, Interrupt disabilitato ● GIE = 1, Interrupt abilitato
  • 14. File Register: TMR0 ( 01h ) E’ un timer interno al microcontrollore a 8 bit che permette di fare precise temporizzazioni. E’ possibile utilizzare un timer esterno. Ad ogni timer è possibile associare un prescaler (divisore di frequenza). Esso genera un reset ad un intervallo prestabilito in fase di programmazione. Questo avvio ciclico permette di riscontrare situazioni di stallo.
  • 15. Catena di programmazione I microcontrollori possono essere programmati in Assembly, Pascal e C. MicroC è un IDE (ambiente di sviluppo) che ci permette di semplificare la catena di programmazione, in quanto esso svolge le seguenti azioni: ● Compila le istruzioni inserite, ottenendo un file oggeto ( .obj ) ● Effettua il link con le librerie ● Trasforma il programma ottenuto dal linker in Assembly e poi in Esadecimale ( Hex ) ● Trasforma il codice esadecimale in codice binario
  • 16. Proteus Proteus è un programma per la progettazione e la simulazione di circuiti elettronici. Esso è costituito da due parti: ● ISIS, ambiente di progettazione e simulazione dei circuiti grazie alla presenza di una libreria in cui vi sono tutti i componenti e la strumentazione necessaria (Es. generatore di funzione, oscilloscopio, multimetro) ● ARES (PCB-Designer), per realizzare lo schema PCB dei circuiti
  • 17. Relazione tra MicroC e Proteus Per simulare il funzionamento dei microcontrollori bisogna seguire i seguenti passaggi: 1. Realizzazione dello schema del circuito tramite Proteus 2. Scrittura del codice relativo al microcontrollore in MicroC ed effettuando il building 3. Caricamento del codice nel microcontrollore in Proteus
  • 18. Schema: Led ad intermittenza
  • 19. MicroC: Led ad intermettenza void main() { PORTA=0; /* Porto a la Porta A a zero logico*/ TRISA=0; /* inizializzo la Porta A come uscita*/ while(1) /* ciclo sempre vero*/ { PORTA=~PORTA; /* complemento a uno della Porta A*/ delay_ms(500); /* delay time di 500ms*/ } } Le istruzioni PORTA=0 e TRISA=0 servono per configurare la PORTA come uscita. Successivamente viene effettuato il complemento a uno della PORTA in modo tale che cambi stato (led spenti si accendono e viceversa) con un delay time di 500 ms, tutto questo è inserito in un ciclo infinto, in modo da realizzare l’ intermittenza dei led.
  • 20. Schema: Led a scalata
  • 21. MicroC: Led a scalata void main() { PORTA=0; /* Porto a la Porta A a zero logico*/ TRISA=0; /* inizializzo la Porta A come uscita*/ while(1) /* ciclo sempre vero*/ { delay_ms(500); /* delay time di 500ms*/ PORTA.f0=~PORTA.f0; /* complemento a uno del bit 0 della Porta A*/ delay_ms(500); PORTA.f1=~PORTA.f1; delay_ms(500); PORTA.f2=~PORTA.f2; delay_ms(500); PORTA.f0=0; PORTA.f1=0; PORTA.f2=0; } } All’interno del ciclo infinito, con un delay time di 500 ms viene effettuato il complemento ad uno delle singole linee della PORTA (RA0 si ottiene con PORTA.f0) in modo tale che cambi stato. Successivamente tutte le linee vengono resettate ed il ciclo si ripete.
  • 22. MicroC: Istruzioni per programmare un LCD Istruzioni utili: 1. Lcd_Init() per aprire la libreria di un LCD; 2. Lcd_Out(riga,colonna,”testo”) mette in output il testo richiesto 3. LCD_SHIFT_LEFT/RIGHT per far scorrere il testo ella direzione desiderata
  • 23. MicroC: Istruzioni per programmare un LCD // Settaggio dei pin del LCD sbit LCD_RS at RB0_bit; sbit LCD_EN at RB1_bit; sbit LCD_D4 at RB2_bit; sbit LCD_D5 at RB3_bit; sbit LCD_D6 at RB4_bit; sbit LCD_D7 at RB5_bit; // Direzione dei pin sbit LCD_RS_Direction at TRISB0_bit; sbit LCD_EN_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB4_bit; sbit LCD_D7_Direction at TRISB5_bit; void main() { char i; while(1) { Lcd_Init(); Lcd_Out(1,16, "Classe 4AT"); delay_ms(500); for(i=0;i<32;i++) { Lcd_Cmd (_LCD_SHIFT_LEFT); Lcd_Cmd (_LCD_CURSOR_OFF); delay_ms(200); } } }