Sunteți pe pagina 1din 6

Universitatea Tehnic a Moldovei

Facultatea Calculatoare, Informatic i Microelectronica


Catedra Microlectronica i Ingineria Biomedicala

Raport
Lucrarea de laborator 1
Microprocesoare
Disciplina:
Tema: Iniiere n programarea ASM. Modulul periferic
GPIO

A efectuat: studentul grupei


MN-141
Gurduza Petru

A verificat:
lector asistent
Lazari Eugeniu

Chiinu 2016
Scopul lucrrii:
1. Iniiere n programare ASM.
2. Studiul instrumentelor de proiectare a aplicaiilor cu MCU (AVR Studio, Proteus).
3. Lucrul cu modulul periferic GPIO.

Sarcina:
S se proiecteze un sistem care ar permite schimbarea strii unui led, din aprins n stinns i
invers, la apsarea unui buton. Starea iniial se va considera led aprins.

Noiuni teoretice:
Un microcontroller, privit n ansamblu, reprezint o structur format dintr-un microprocesor i
un set de module periferice.
- GPIO permite setarea sau colectarea nivelului logic de pe un pin al Microcontrollerului

Fig. 1 Modulele periferice

Fiecare modul GPIO are rezervat un set de 3 registri numiti PORT, PIN si DDR. Orice
Microcontroller are un set de pini, majoritatea dintre care care pot fi configurai ca pini generici
de intrare sau ieire (GPIO).

Fig. 2 Regitrii periferici

Fiecare modul GPIO a microcontrollerului cu arhitectura AVR va avea la dispozitie trei registri
de periferici PINx, DDRx si PORTx.
Fig. 3 Regitrii periferici

PINx - serveste pentru citirea valorii logice de pe terminalul fizic, acest registru este
accesibil doar pentru citire. Operatia de scriere catre acest registru nu va afecta valoarea fizica a
terminalului fizic.
PORTx - registru de setare a valorii portului pentru cazul cand este setat catre iesire si
activarea rezistentei de pull-up in cazul cand este setat catre intrare.
DDRx - Registrul de setare a directiei portului, intrare sau iesire

Mersul lucrrii:
Am scris programul n ASM i l-am compilat n AVR, n programa Proteus am proiectat schema
electrica a dispozitivului i am realizat simularea, am folosit microcontrolerul ATmega 16, un led
i un buton. Am facut legaturile conform portului si pinilor activati si ntrind in proprietatile
microcontrolerului am incarcat fiierul hex.
Comenzile folosite pentru realizarea sarcinei.
Tabelul 1.
Comenzile n ASM
Schema bloc
n Figura 4 este reprezentat schema bloc a programului realizat n ASM, descris logica rulrii
programului, comutarea led-ului se realizeaz cu ajutorul unui buton, n dependen de starea
butonului se conecteaz ledul.

Fig. 4 Schema bloc.

Schema electric n Proteus pentru simulare.

n Figura 5, reprezint starea iniial a ledului este aprins pna la apasarea butonului.

Fig. 5 Schema electric nainte i dup apsarea butonului.


Codul programului:
.include "m16def.inc" //Directiva pentru compilator
.cseg //Segment de cod
.org 0 //Adresa de inceput a codului
main:
init: ;iniializarea programului
LDI R16, 0b00000000 ;setm PORTA ca port de intrare i activm rez. Pull-UP
OUT DDRA,R16
LDI R16,0b11111111
OUT PORTA,R16

LDI R16,0b00001000 ;setm PORTC ca port de intrare


OUT DDRC,R16
LDI R16,0b11110111
OUT PORTC,R16
endinit: ;sfritul iniializrii
main_loop:
L1:
SBIC PINA,4 ;verificm dac e apsat butonul
rjmp L1 ;dac nu a fost apsat butonul, sare la L1

SBIC PORTC,3 ;dac s-a apsat butonul, verificm dac LED-ul e aprins
rjmp L2 ;dac e aprins, sare la L2
rjmp L3 ;dac nu e aprins, sare la L3

L2: CBI PORTC,3 ;stinge LED-ul


rjmp L4

L3: SBI PORTC,3 ;aprinde LED-ul


rjmp L4

L4: SBIS PINA,4 ;verific dac e apsat butonul


rjmp L4 ;dac nu e apsat mai verific o dat
LDI R16,0b11111111 ;dac e apsat, introducem un ciclu

delay: ;funcie utilizat pentru ntrziere


DEC R16 ;decrementm registrul n care e introdus valoarea 0xFF
BRPL delay ;dac valoarea e pozitiv, apeleaz funcia de ntrziere
rjmp main_loop ;n caz contrar, sare la nceput

endmain_loop:
endmain:
ret

Concluzie:

Elabornd lucrarea data de laborator m-am iniiat n programarea


microcontrolerului ATMEGA32. Am deprins lucrul cu modulul periferic GPIO i
algoritmii cu ramificri.Am rezolvat problema pus la nceputul lucrrii folosind
comenzi de baz a limbajului de programare ASM.

S-ar putea să vă placă și