Il 0% ha trovato utile questo documento (0 voti)
12 visualizzazioni8 pagine

Programma in Assembly Per Accendere LED

Questo documento descrive un programma in linguaggio assembly per accendere LED in modo intermittente utilizzando un PIC16F84A. Viene spiegato il circuito utilizzato, il codice assembly creato con sottoprogrammi per controllare il tempo di accensione e spegnimento, e i test effettuati. L'autore conclude che, sebbene sembri semplice, la programmazione in assembly richiede di conoscere a fondo ogni istruzione per controllare i dispositivi.

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
12 visualizzazioni8 pagine

Programma in Assembly Per Accendere LED

Questo documento descrive un programma in linguaggio assembly per accendere LED in modo intermittente utilizzando un PIC16F84A. Viene spiegato il circuito utilizzato, il codice assembly creato con sottoprogrammi per controllare il tempo di accensione e spegnimento, e i test effettuati. L'autore conclude che, sebbene sembri semplice, la programmazione in assembly richiede di conoscere a fondo ogni istruzione per controllare i dispositivi.

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Programma in assembler per

accendere LED

Alunno: Enrique Isaí Ríos Arcos


Materia: Linguaggi di interfaccia
Indice

Obiettivo generale........................................................................................................................ 3
Obiettivi specifici............................................................................................................... 3
Planteamento............................................................................................................................ 3
Giustificazione............................................................................................................................... 3
Introduzione
Sviluppo
Codice assembly................................................................................................................ 5
Pruebas pilota............................................................................................................................ 7
Conclusioni............................................................................................................................. 7
Riferimenti.......................................................................................................................... 8
Obiettivo generale.
Creare un programma in assembler utilizzando i mnemonici necessari per
accendere i LED.

Obiettivi specifici.
Accendere il LED in modo intermittente.
Controllare la velocità di accensione

Piantamento.
Accendere alcuni LED può sembrare qualcosa di semplice a prima vista, senza
embargo, questo è un principio; il più fondamentale riguardo a varie tecnologie,
vediamo LED inclusi in tutti i tipi di apparecchi oggigiorno, per dare un'idea così
possiamo solo vedere i semafori, questi sono programmati per accendersi per un
periodo di tempo.

Giustificazione.
Per accendere questi LED sarà necessario un linguaggio utilizzato
presente in quasi tutto, riferito al linguaggio assembly, il quale è un metodo di
codifica che viene interpretata dalla macchina per eseguire le istruzioni
che vengano programmati attraverso questo.

Introduzione.
Riprendendo quello che è un linguaggio assembler, è un modo molto efficace di
programmare poiché attraverso di esso si può specificare esattamente ciò che la
il computer vuole che io faccia usando il minor numero di istruzioni possibile, inoltre
Da questo, il linguaggio assembly consente di accedere a funzioni di basso livello.
del processore per eseguire compiti che non sono supportati dai linguaggi ad alto
livello.

Una volta chiarita l'efficacia del linguaggio assembly per realizzare vari
istruzioni, e tra queste istruzioni è incluso il controllo dell'accensione e
spegnimento di alcuni LED, il tempo di accensione e spegnimento e la velocità di
accensione; si descriverà in modo dettagliato e attraverso prove il modo
di controllare queste azioni.

Sviluppo
Per accendere in modo efficace i LED è stato utilizzato il programma MPLAB
per sviluppare il codice assembler e si è utilizzato il programma proteus per simulare
assemblando il circuito, per questo circuito è stato utilizzato il PIC16F84A, due resistenze
di 200 ohm e due led di colore giallo

Il PIC16F84 è unmicrocontrollorea 8 bit della


famigliaPICappartenente alla Gamma Media (secondo la
classificazione data ai microcontrollori dalla stessa
azienda produttrice) Microchip.

MPLAB è un editorIDEgratuito, destinato a prodotti della


[Link] editor è modulare, consente di selezionare i
diversimicrocontrollorisupportati, oltre a consentire la
registrazione di questicircuiti integratidirettamente al
programmatore.

Proteus Design Suite èsoftwarediautomazione del design


elettronicosviluppato da Labcenter Electronics Ltd., che
consta dei due programmi principali: Ares e Isis, e i
moduli VSM ed Electra.

Si è stabilito come uscita i pin 1 e 6 per collegare i LED e un tempo di


accensione e spegnimento di 1 secondo creando una subroutine chiamata ritardo dove
si stabilisce con il valore massimo di 255 e si decrementa fino a che non sia 0, di
modo che creando 9 volte l'istruzione CALL RITARDO 9 volte si riesce
fare in modo che il tempo tra accensione e spegnimento sia di 1 secondo.
Codice assembly
INCLUDE <[Link]> ;IMPORTA TUTTE LE BIBLIOTECHE PER USARE IL
PIC

ELENCO P=16F84A
TIEMPO EQU 0x0C ;Variabile che viene memorizzata nella posizione C

ORG 0

STATO BSF, RP0 ;Configura il registro F a 1 logico dello stato RP0 =


accedere al banco 1
BCF TRISB, 6 ;Configura il pin 6 come uscita
BCF TRISB, 1 ; Configura il pin 1 come uscita
STATO BCF, RP0

ACCENDERE
BSF PORTB, 6 ;Stabilisce un 1 logico nella porta B del pin 6
BSF PORTB, 1 ;Stabilisce un 1 logico nella porta B del pin 1
CHIAMATA RITARDO ;Subroutine che controlla il tempo di accensione

CALL RETARDO
CHIAMATA IN RITARDO

CHIAMA RITARDO
CALL RETARDO
CHIAMATA RITARDO

CALL RETARDO
CHIAMA RITARDO
CHIAMATA RETARDATA

BCF PORTB, 6 ;Stabilisce uno 0 logico sulla porta B del pin 6


BCF PORTB, 1 ;Stabilisce uno 0 logico nel porto B del pin 1
CHIAMATA RITARDATA

CHIAMATA IN RITARDO

CHIAMATA RITARDO

CALL RETARDO
CHIAMATA IN RITARDO

CHIAMATA RITARDATA

CHIAMATA RITARDATA

CHIAMA RITARDO
CHIAMATA RITARDATA

GOTO ACCENDERE ;Istruzione che ritorna alla routine ACCENDERE

RITARDO
MOVLW D'255' ;Stabilisce un valore di 255 a W
MOVFW TIEMPO ;LE ASSEGNA 255 (quello che porta W) alla variabile tempo
DEC ;SUBRUTINA
DECFSZ TEMPO ;DECREMENTA IL VALORE DI 255 DI 1 FINO A QUANDO
MARE 0
GOTO DEC ;SE NON È 0 TORNA ALLA SOTTOROUTINA DEC
restituire

FINE
Pruebas pilota

Conclusioni
È superfluo menzionare che il semplice fatto di accendere un LED o due LED
sembra un compito facile, tuttavia, per raggiungere questo è necessario conoscere la funzione di

ogni mnemonico che può essere usato per programmare ogni PIC; ogni PIC porta una
documentazione che ci spiega dalla struttura interna di quel PIC fino a
come funziona ogni blocco, quali mnemonici o istruzioni possono essere utilizzati per
controllarlo.
In questo caso è stata utilizzata la documentazione del PIC16F84A per capire come
si può programmare questo microcontrollore, quali blocchi si possono utilizzare per
memorizzare variabili, quali valori può gestire, quante uscite e ingressi ci sono
possono stabilire, come configurare i loro registri, ecc.

La programmazione in assembler può diventare noiosa, d'altra parte, usando


questo tipo di linguaggio abbiamo maggiore dominio in merito alle attività che desideriamo

ciò che si sta programmando deve essere studiato a fondo.


maniera in cui si può utilizzare il linguaggio assembleare e scoprire che
più dispositivi possono essere programmati tramite questo linguaggio.

Riferimenti
[Link]
[Link]
Non posso accedere a contenuti esterni o documenti.

Potrebbero piacerti anche