Sunteți pe pagina 1din 7

1.

Mediul de dezvoltare integrat (IDE) MPLABX - Microchip, şi


rularea unei aplicaţii demonstrative
In acesta secțiune se prezintă IDE-ul MPLABX, folosit în continuare în cadrul lucrărilor de laborator.
Este realizat de Microchip, pentru dezvoltarea de aplicații cu microcontrolerele PIC. IDE-urile sunt
medii de programare integrate necesare dezvoltării aplicațiilor software pentru microcontroler (uC,
MCU). Un IDE are în componentă: editorul de text, compilatorul, linker-ul şi debugger-ul.

În aceasta lucrare de laborator se va lucra cu uC, PIC16F877.


1. După instalarea programului se lansează mediul de dezvoltare MPLABX IDE 2, se creează un
proiect nou urmând pașii de mai jos.

Standalone Project

1. Se selectează microcontrolerul care va fi utilizat – în cazul de faţă PIC16F877 (pe 8 biţi)

Conf.Dr.Ing. Sanda Paturca


PIC16F877

Selectie
Simulator
Selectie compilator XC8

Fisierul editabil
“main.c”

Conf.Dr.Ing. Sanda Paturca


2. Simulare schemei electronice
Pentru simularea aplicației se utilizează mediul SimulIDE, versiunea 0.3.12.13. În fereastra de lucru se
alege microcontrolerul, în acest exemplu s-a ales pic16f877a. Se vor adăuga și restul de elemente
necesare pentru realizarea schemei electronice: rezistor, LED, masa. Toate componentele se aduc in
fereastra de lucru prin drag and drop.

Construirea
schemei
electronice

Conf.Dr.Ing. Sanda Paturca


La uC PIC16F877a, prin opțiunea Load firmware, se specifică calea către programul compilat
(fișierul de ieșire *.hex), obținut în prima parte a lucrării, în cadrul proiectului MPLABX.

Se ruleaza aplicatia.

MCU PIC16F877 - Porturi intrare/ieșire (Input/Output, I/O)


MCU PIC16F877 are 5 porturi de intrare / ieșire. Acestea sunt notate PORT A (RA), PORT B
(RB), PORT C (RC), PORT D (RD) și PORT E (RE). Acest MCU are:
- “PORT A” - 6 biți (RA-0 … RA-5),
- ”PORT B”, “PORT C”, ”PORT D” - 8 biți (RX-0 … RX-7, unde X= B, C, D),
- ”PORT E” - 3 biți (RX, X=0…2).
Toate aceste porturi sunt bidirecționale.
Direcția portului este controlată prin utilizarea registrelor TRIS (X) (TRIS A poate fi folosit
pentru a seta direcția PORT-A, TRIS B utilizat pentru a seta direcția pentru PORT-B etc.).
Setarea unui bit TRIS (X) pe ‘1’ va configura bitul PORT (X) corespunzător ca intrare.
Punerea unui bit TRIS (X) pe „0” va configura bitul PORT (X) corespunzător ca ieșire.

Conf.Dr.Ing. Sanda Paturca


Exemplu:
1. Configurare și lucru cu porturile de intrare-ieșire de uz general (GPIO), utilizând microcontrolerul
PIC16F877A și simulatorul SimulIDE.

Indicații de lucru cu registrele GPIO:


- Configurare pini:
 Direcția unui pin (intrare/ieșire) se setează in registrul TRISx, astfel:
- se scrie la bit-ul corespunzător pinului valoarea “0” pentru a fi ieșire, sau valoarea “1” pentru intrare.
- Citirea stării unui pin de intrare se face prin testarea bitului corespunzător, in registrul PORTx,
unde x=A, B, ... E, numele portului;
- Scrierea stării unui pin de ieșire se face prin scrierea valorii “1” (pentru setare), sau “0” (pentru
resetare), pe poziția pinului corespunzător, de asemenea in registrul PORTx, unde x - nume port.

Circuitul experimental:
- la portul D, pinul D0 este conectat un LED
- la portul B, pinul B1 este conectat un buton
(numit btn1), către masa.
La apăsarea butonului, se aprinde LED-ul
conectat la pinul D0. La eliberarea butonului, se
stinge.

Codul este deja scris in funcția main de mai jos.

b7 b6 b5 b4 b3 b2 b1 b0
0b 1 1 1 1 1 1 1 0

TRISD & = 0XFE ;


TRISD=TRISD & 0XFE ;
b7 b6 b5 b4 b3 b2 b1 b0
0b 0 0 0 0 0 0 1 0

Testare bit 1
b7 b6 b5 b4 b3 b2 b1 b0
0b 0 0 0 0 0 0 1 0 Setare bit 0
b7 b6 b5 b4 b3 b2 b1 b0
0b 0 0 0 0 0 0 0 1

Resetare bit 0
b7 b6 b5 b4 b3 b2 b1 b0
0b 1 1 1 1 1 1 1 0

PORTD & = 0XFE ;

Conf.Dr.Ing. Sanda Paturca


Se cauta calea catre fisierul cu extensia .hex , spre exemplu:
C:/Users/s/MPLABXProjects/demo_gpio.X/dist/default/production/demo_gpio.X.production.hex

Pentru verificarea practica a funcționării, se va crea schema circuitului in programul SimulIDE.

Conf.Dr.Ing. Sanda Paturca


Cerința:
Configurare și lucru cu porturile de intrare-ieșire de uz general (GPIO), utilizând microcontrolerul
PIC16F877A și simulatorul SimulIDE.
Circuitul experimental:
- la portul C, pinul C0, C1, C3 sunt conectate trei LED-uri
- la portul B, pinul B4 este conectat un buton, către masa.
La apăsarea butonului, se aprind doua LED-uri, iar cele de-al treilea va fi stins. La eliberarea butonului,
starea LED-urilor se inverseaza.

Fig. MCU PIC16F877

Conf.Dr.Ing. Sanda Paturca

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