INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI



Documenti analoghi
Introduzione ai microcontrollori PIC

I microcontrollori. In sostanza i pic hanno le seguenti caratteristiche:

Architettura del PIC 18F452

Architettura dei Microcontrollori Microchip PIC18F

Corso di Sistemi di Elaborazione A.A. 2008/2009

Categorie di sistemi Digitali

introduzione I MICROCONTROLLORI

Lezione 8. Figura 1. Configurazione del registro INTCON

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Gestione Degli INTERRUPT

MICROCONTROLLORE PIC16F84A

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

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON ADCS1, ADCS CH2, CH1 E CH GO/DONE... 6 ADON...

PROGRAMMAZIONE ASSEMBLER

Lezione 1 Caratteristiche principali del PIC16C84 L'hardware

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

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18.

Architettura di un sistema di calcolo

8 Microcontrollori PIC

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino

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

Programmazione del microcontrollore PIC 16F84

CORSO SERALE ( TDP ) DEMOBOARD FN1Z PER PIC 16F877/16F877A

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

FONDAMENTI di INFORMATICA L. Mezzalira

Corso introduttivo sui microcontrollori A. S Programmare i PIC in C. Timers Interrupts Prerequisiti: Lezione7 Lezione8.

Davide Gennaretti, Matteo Nicolini

SISTEMA DI SVILUPPO MC-16

I PIC Partendo da Zero By link_89

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

Programmazione modulare

Chiave DTMF con PIC16F84. Angelo - IT9DOA

INFORMATICA 1 L. Mezzalira

PUNTATORE LASER AUTOMATICO CON COMANDO VIA ETHERNET

Capitolo X del Testo Ettore Panella Giuseppe Spalierno Corso di Elettronica 3 Edizioni Cupido MICROCONTROLLORE PIC 16F84

PROGRAMMA DI SISTEMI TERZA AET 2014/2015

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino

Collegamento al sistema

Laboratorio di Informatica

Architettura hardware

Docente Prof. Claudio De Capua Ing. Antonella Meduri

Il µcontrollore PIC 16F84

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Il Processore: i registri

COORDINAMENTO PER MATERIE SETTEMBRE 2014 MATERIA DI NUOVA INTRODUZIONE PER EFFETTO DELLA RIFORMA

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

APPUNTI SUL PIC16F84

Architettura di un calcolatore: introduzione

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

MPLAB - IDE. Introduzione. 1. Benvenuti in MPLAB. Introduzione

LO HAI MAI REALIZZATO CON UN PIC? UN APPROCCIO AI TIMER DEI PICMICRO 1

Sistemi Elettronici #1. Sistemi Elettronici. Definizioni e concetti generali. Sistemi Elettronici Laurea Triennale in Elettronica A.A.

Esercizi per il recupero del debito formativo:

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Laboratorio di Architettura degli Elaboratori

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED

LABORATORIO DI SISTEMI

Microelettronica. Architettura del processore ARM. Stefano Salvatori. Università degli Studi Roma Tre. Microelettronica

C. P. U. MEMORIA CENTRALE

La macchina programmata Instruction Set Architecture (1)

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Introduzione alla programmazione in C

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Manuale d uso MULTIPROGRAMMATORE

ORIENTAMENTO ELETTRONICA. Progettazione di Sistemi Elettronici Elettronica per la Robotica Elettronica per l automazione industriale

Arduino UNO. Single board microcontroller

ASSEMBLER 68K parte 1

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Corso di Sistemi di Elaborazione delle informazioni

GESTIONE INFORMATICA DEI DATI AZIENDALI

Esame di Stato Materia: SISTEMI AUTOMATICI PRIMA PARTE

L architettura di riferimento

Architettura del Set di Istruzioni (ISA)

ESERCIZI SUI SISTEMI DI NUMERAZIONE

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Esempio di moltiplicazione come somma e spostamento

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

DISCIPLINA TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Esame di INFORMATICA

ISTITUTO D ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI)

MODELLO DLX IN UNISIM

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Transcript:

LUCIDI LEZIONI SISTEMI ELETTRONICI INDUSTRIALI www.dismi.unimo.it (People Associated Pavan ) www.microchip.com com (Datasheet PIC - DS30292) (Mid Range Family Manual DS33023) Università degli Studi di Modena e Reggio Emilia - Facoltà di Ingegneria - sede di Reggio Emilia - INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI PIC16F877 - Microchip

Procedura di Sviluppo TUTTI i microcontrollori Microchip utilizzano come ambiente di sviluppo il software MPLAB. Con questo è possibile sviluppare codice in linguaggio C o in linguaggio Assembler. Una volta generato è possibile scaricare il codice sulla memoria flash a bordo del µc C utilizzando il programmatore ICD. Una volta programmato il microcontrollore è pronto per essere inserito sulla scheda che realizza l applicazione l da controllare. Con il codice generato è possibile istruire il microcontrollore sulle funzioni da compiere. NOI UTILIZZEREMO PIC 16F877 e li programmeremo in Linguaggio Assembler Archittettura Interna del PIC16F877 ALU W register I/O Port Periferiche Timer 0,1,2 ADC 10 bit SSI & I 2 C USART Parallel Port PWM EEProm DATI

Istruzioni Assembler Il 16F877 lavora a 8 bit per cui per variabili che necessitano di più di 1 byte è necessario riservare 2 o più locazioni di memoria. Il micro esegue 1 istruzione ogni ciclo di clock (ad eccezione per le istruzioni di goto e call che richiedono 2 cicli). La frequenza del clock di sistema è pari a ¼ della frequenza imposta dal circuito di temporizzazione (Fosc del quarzo). La memoria è divisa in 4 banchi,, ognuno ha una parte riservata a registri di sistema e una parte di registri general purpose utilizzabili dall utente (ad esempio per le variabili di lavoro). Prima di eseguire ciascuna istruzione è buona norma assicurarsi di operare nel banco di memoria giusto: AGENDO SUI BIT RP1,RP0 dello STATUS REGISTER UTILIZZANDO LA DIRETTIVA banksel xxx Istruzioni Assembler Il PIC ha un architettura RISC per cui il numero totale di istruzioni è limitato a circa 35. Esistono 3 tipi di formato di istruzioni: BYTE ORIENTED BIT ORIENTED [Istruz.] f,d [Istruz.] f,b LITERAL [Istruz.] k Il fatto di inserire i file xxx.inc consente di utilizzare delle macro simboliche che permettono di semplificare la programmazione. Infatti questi file assegnano ad ogni bit di ciascun registro un NOME SIMBOLICO, che è lo stesso di quello riportato sul datasheet. Es: bcf STATUS, 5 = bcf STATUS, RP0 d = 0 = workingreg (W) d = 1 = stesso REG

Gestione di Interrupt - Registri Quando si verifica un Interrupt il PIC blocca immediatamente quello che sta facendo e salta alla locazione di memoria 0x04 a partire dalla quale è allocata l ISR (Interrupt( Service Routine). I registri base per la gestione di Interrupt sono i seguenti: Registro INTCON PIE1 PIE2 PIR1 PIR2 Bit GIE PEIE INTE xxxe xxxe xxxf xxxf USO Abilitazione Generale all utilizzo di Interrupt Abilitazione al Riconoscimento di Interrupt provenienti dalle periferiche integrate sul PIC Abilitazione al Riconoscimento di Interrupt provenienti dall esterno (linea RB0) Contengono i flag (bit) corrispondenti alle periferiche di cui interessa rilevare l interrupt Contengono i flag (bit) che rilevano il verificarsi di un interrupt generato dalla corrispondente periferica Gestione di Interrupt - Associazione Abilitazione PIE1 PIE2 Detection PIR1 PIR2 SONO QUESTI DA USARE PER IL RICONOSCIMENTO DI QUALE INTERRUPT SI E VERIFICATO

Struttura Base di un Programma Assembler processor xxxxx include xxxxx.inc config xxx (opzionale) CBLOCK <definizione variabili di lavoro> ENDC ORG 0x00 nop goto xxx ORG 0x04 <ISR Interrupt Service Routines> xxx <Programma Principale> <Inizializzazione Porte & Periferiche> <Abilitazione Interrupt> <Elaborazione Segnali & Dati> call... <Routines di Calcolo o di Servizio Interrupt invocate> return END Procedura di Servizio Interrupt e Code Flow ROUTINE DI SERVIZIO INTERRUPT (A PARTIRE DALL INDIRIZZO 0x04) <Salvataggio Stato del Sistema (Status e W reg.)> (opzionale) <Ciclo Riconoscimento Interrupt> btfsc <registrox>, <bit x (flag)> goto <label xxx1> btfsc <registroy>, <bit y (flag)> goto <label xxx2> <Chiamata a Funzioni di Interrupt Service> xxx1 call <routine1> goto FISR (è una label non 1 istruz.!!) xxx2 call <routine2> goto Fine_ISR FISR <Ripristino Stato del Sistema> retfie FINE ROUTINE DI SERVIZIO INTERRUPT PROGRAMMA PRINCIPALE <Routine di programma> <Routine di Interrupt> SALTO A ZONA DI CODICE DIVERSA, CHE HA COME LABEL IL NOME DELLA FUNZIONE DA ESEGUIRE routine1 <Disabilitazione Generale degli Interrupt> bcf INTCON, GIE <Elaborazione> <eventuali call ad altre funzioni> <Reset Flag dell Interrupt servito> bcf <registrox>, <bit x (flag)> questo serve per poter riconoscere altri interrupt di questo tipo!!! <Riabilitazione Interrupt> bsf INTCON, GIE return TERMINATA LA ROUTINE SI TORNA ALL ISTRUZIONE IMMEDIATAMENTE SEGUENTE ALLA CALL