Pic16f84 Assembly I/O.

Slides:



Advertisements
Presentazioni simili
Ing. Pasquale Zambrotta
Advertisements

Simulatore Breve riassunto dei comandi più importanti del simulatore MPLAB.
Assembly per pic 16fxx Generalità.
Progettato e realizzato Da Daniele Scaringi 5AET
sul Microcontrollore 16F84
Corso di Informatica Applicata Lezione 7 Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De Vito.
Corso di Informatica Applicata - Lezione 4 - © 2005 Saverio De Vito Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso.
Introduzione ai Microcontrollori Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori),
Acquisizione dati con ADC 0831 e PIC 16F84
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
INTRODUZIONE A MATLAB/OCTAVE MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
LABORATORIO ARDUINO E ANDROID VENERDÌ, 11 SETTEMBRE 2015 UNIVERSITÀ DEGLI STUDI DI TRIESTE.
Lezione 3.  Dal menu STRUMENTI, OPZIONI INTERNET si può scrivere l’indirizzo esatto della pagina che vogliamo inserire come pagina iniziale.  Se si.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
PROCEDURA BASE PER ACCEDERE AL FASCICOLO SANITARIO ELETTRONICO
IL SOFTWARE (FPwin 6.0).
Guida alla compilazione dell’Application Form
“Vivere insieme” – Lezione6
Arduino uno Introduzione.
“Vivere insieme” – Lezione6
Corso «Nozioni di Informatica» – riepilogo di alcuni concetti visti
I Collegamenti in WORD Guglielmo Grisolia.
Architettura e funzionalità
Accedere su Google e aprire l’App Drive cliccando sul pulsante :::
ECDL Modulo 1 Parte 4 GESTIONE DI FILE.
ASSEMBLY Seconda parte.
I Circuiti Sequenziali ed i Flip/Flop
VISUAL BASIC.
GPIO: General Purpose Input Output I parte
Introduzione al linguaggio C
Bootloader arduino nano
Python per Raspberry Introduzione.
Microcontrollori e microprocessori
Unità di apprendimento 7
APACHE2-PHP su Raspberry
FORMULE E FUNZIONI SU EXCEL
Introduzione I microcontrollori.
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
I tag essenziali.
I PIC: peripheral Interface contRollers
SAS® OnDemand for Academics SAS Studio
1 - Collegarsi al portale Puntoedu
istalliamo l’ambiente di sviluppo - ide
Introduzione L’8254 è un interval timer event/counter, progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. E’ costituito.
Memoria RAM e ROM.
A/D seconda parte.
HYPER TEXT MARK-UP LANGUAGE
Come personalizzare il sito Web online di Microsoft SharePoint
ABAP Objects ALV Grid Mantova, 30 dicembre 2018.
Interrupt Arduino.
ISTITUTO COMPRENSIVO DI BUCCINO VIA 16 SETTEMBRE BUCCINO (SA)
GUIDA ALL’UTILIZZO DEL SOFTWARE
WORD 28/02/2019 Informatica - WORD.
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Immobilizer 4ª generazione, concetto online
Esercitazione 8 Laboratorio di Architetture degli Elaboratori I
Lezione Seconda Primi passi di programmazione
Programmazione e Laboratorio di Programmazione
Memorie Laboratorio di Architetture degli Elaboratori I
monodimensionali: Vettori bidimensionali: Matrici
Unità 1 Programmi base.
FATTURE passive FATTURE attivE Dati aggiornati al
Unico 2009 – Esempi per la crisi
Programmazione e Laboratorio di Programmazione
Portale Acquisti Alperia
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Algoritmi.
TCS230 Sensore di colore.
Andrea Martinelli.
Transcript della presentazione:

Pic16f84 Assembly I/O

Assembly Il linguaggio Assembly è classificato come linguaggio a basso livello Un file in Assembly ha estensione .asm Una volta processato il programma scritto in assembly, viene generato un file in esadecimale con estensione .hex Il file esadecimale viene inserito nel microcontrollore Un programma in assembly, si divide in: dichiarazioni, commenti e corpo del programma Si vuole scrivere un programma per fare accendere dei led

Accensione di un led Per fare accendere un led tramite un microcontrollore, bisogna: Dichiarare di output il pin dove il led è collegato Porre a livello logico alto il pin dove è collegato il led Tutti questi dati vengono posti all’interno dei registri: Il registro tris per il verso dei dati (Input/Output) Il registro port per il livello logico

Memoria Registri Bank0 Bank1 Port a 0x05 Tris a 0x85 Port b 0x06 Tris b 0x86 Port a e port b definiscono il livello logico dei singoli pin Tris a e tris b definiscono se i pin sono di input o di output

Esempio Vogliamo accendere tre led due sulla porta a e uno sulla porta b; le due porte devono essere dichiarate di OUTPUT Tris a, indirizzo 0x85 Tris b, indirizzo 0x86

Esempio Supponiamo che i led devono essere accesi sui pi RA0 e RA2 e RB5 Port a Port b 1 1

Programma Movlw 0x00 Movwf 0x85 Movlw 0x05 PC 0 W 00000000 PC 1 Tris a 00000000 PC 2 Port a 00000000 PC=Program Counter – incrementa ogni volta che viene eseguita una riga programma

Bank0 e Bank1 Gli indirizzi di bank1 possono creare dei problemi nel codice assembly perché possono portare a superare i 14 bit della riga programma Per evitare ciò, si possono indirizzare i registri in base alla posizione di ria distinguendo solo i banchi Es, il registro di indirizzo 0x86 del bank1, si trova alla posizione 0x06; il suo indirizzo potrebbe essere 0x06 bank1

Bank0 e bank TRISB=0x86 Selezionando il bank1 TRISB=0x06 bank1

Bank0 e bank1 Per selezionare bank0 o bank1, bisogna lavorare sul bit 0x05 o RP0 del registro 0x03 o registro STATUS: RP0=0 si seleziona bank0 RP0=1 si seleziona bank1 In generale, per porre un bit a 1, si scrive il seguente codice: bsf indirizzo registro, indirizzo del bit Per porre un bit a zero, si scrive: bcf indirizzo registro, indirizzo del bit bsf= bit set file bcf= bit clear file Nel nostro caso: bsf 0x05, 0x03 ; si seleziona il bank1 bcf 0x05, 0x03 ; si seleziona il bank0

Programma per far accendere un led sul pin B0 __config 0x3D18 ORG 0x00 ;il programma parte dalla prima riga della memoria programma bsf 0x03, 0x05 ; viene posto a 1 il bit 5 dell'indirizzo 3 bank0, viene cioè ;selezionato il bank1 movlw 0x05 ;l'accumulatore acuisisce valore 5 movf 0x06 ; si passa il valore dell'accumulatore al registro 0x06 bank1=0x86 bcf 0x03, 0x05 ;viene posto a 0 il bit 5 dell'indirizzo 3 bank0,viene cioè selezionato ;il bank0 movlw 0x01 ; si pone il valore 0x01 nell'accumulatore movwf 0x06 ; si passa il valore dell'accumulatore in 0x06 del bank0 END

MplabX

New project

Selezionare: project embedded

Standalone project

Midrange MCU

Pic family

Simulator

Mpasm

Nome del progetto

Creazione del source file

New file

Assembler

Nome file

Scrittura programma

Compilazione programma

Visualizzazione dei file register e memoria flash

Simulazione: dopo l’avvio del debug, selezionare i breakpoint

Simulazione: per visualizzare lo stato dell’accumulatore, il bank e pc: tasto destro del mouse e run to Cursor Vengono visualizzati I registri RP0, l’accumulatore e il PC