Sunteți pe pagina 1din 24

Arhitectura

Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate

Comanda porturilor numerice


Programarea unui display LCD

©A.Sarca 2014 ACSI C3-1


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate

• Operatii cu interfete de Intrare-Iesire


– Adresate ca porturi de I/E – instructiuni speciale: IN, OUT
• Separate de memoria sistemului
• Mai usor de evidentiat operarea cu un element I/E fata de
operarea cu memoria – depanare mai usoara
• Nu pot fi adresate direct in limbaje de nivel inalt (C/C++), ci
doar in limbaj de asamblare
– Adresate ca memorie (memory Mapped I/O) – instructiuni de
adresare a memoriei
• Ocupa o zona din spatiul de adrese al memoriei sistemului
• Se pot adresa direct ca elemente de memorie (ca variabile
ale programului), utilizand orice mod de adresare posibil
• Depanararea trebuie facuta atent (posibilitate de eroare)

©A.Sarca 2014 ACSI C3-2


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate

• Scriere catre porturile de I/E (OUTPUT)


– Cuvinte de comanda – setare de parametri de functionare
a interfetei (viteza de lucru, setare / resetare stare unii
parametri, comanda ON/OFF a unor elemente de iesire
digitale, etc.)
– Cuvinte de date – trimitere de date catre interfata (de ex.:
valori conversie D/A, setare / resetare biti port iesire
digital, etc.)

• Citire de la porturile de I/E (INPUT)


– Cuvinte de stare – citire informatii de functionare a
interfetei (viteza de lucru, stare unii parametri, citirea starii
ON/OFF a unor elemente de intrare digitale, etc.)
– Cuvinte de date – citire de date de la interfata (de ex.:
valori conversie A/D, stare biti port intrare digital, etc.)

©A.Sarca 2014 ACSI C3-3


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate
• Fiecarui bit al cuvantului de date al portului ii corespunde un
element exterior de tip inchis / deschis (0/1 sau ON/OFF)
– INPUT – citeste starea unui element de tip contact - cu doua stari -
contact / buton / tasta
– OUTPUT – seteaza starea unui element de executie de tip binar –
releu, contactor, bec, LED, etc.

Registru Port de Intrare / Iesire (tipic pt. microcontrolere)


Bitn Bitn-1 Bitk Bit1 Bit0
Intrare 0
Iesire 1

Iesire k

Intrare n-1

©A.Sarca 2014 ACSI C3-4


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate
Registru Port de iesire
Bitn Bitn-1 Bitk Bit1 Bit0
Iesire 0
Iesire 1

Iesire k

Iesire n
Registru Port de intrare
Bitn Bitn-1 Bitk Bit1 Bit0
Iesire 0
Iesire 1

Iesire k

Iesire n-1
Iesire n
©A.Sarca 2014 ACSI C3-5
Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate
Determinarea starii unui echipament [INPUT]:
- se izoleaza bitul corespunzator in cuvantul de date citit de la portul de intrare
- pentru izolare se utilizeaza o masca: “1” pe pozitia bitului selectat, “0” in rest
- se efectueaza operatia “SI” logic (AND) intre cuvantul de date citit si masca
Cuvant de date
Bitn Bitn-1 Bitk Bit1 Bit0 DataIN
citit de la port de
INPUT AND
Masca pentru 0 0 0
1 0 Maskk
izolarea bitului k
=

Bitul k izolat 0 0 Bitk 0 0 Datak


Stare
echipament k
Testare:
Data_k = DataIN & Mask_k;
IF (Data_k)
{ // bitul k este = 1 … }
else
{ // bitul k este = 0 … }
©A.Sarca 2014 ACSI C3-6
Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate
Setarea starii unui echipament [OUTPUT]:
- se seteaza bitul corespunzator din cuvantul de date scris catre port (bit = 1)
- pentru modificare se utilizeaza o masca: “1” pe pozitia bitului selectat, “0” in rest
- se efectueaza operatia “SAU” logic (OR) intre cuvantul de date anterior scris la
portul respectiv (pentru a nu se modifica starea celorlale echipamente de pe port) si
masca
Cuvant de date
Bitn Bitn-1 Bitk Bit1 Bit0 DataOUTt-1
anterior scris la
port de OUTPUT OR
Masca pentru 0 0 1 0 0 Maskk
setarea bitului k
Bitul k setat,
ceilalti Bitn Bitn-1 1 Bit1 Bit0 DataOUTt
nemodificati Setare
echipament k
Setare bit k:
Mask_k = 0000100000b; // 1 pe pozitia k
DataOUT |= Mask_k;
// Output la port DataOUT

©A.Sarca 2014 ACSI C3-7


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate
Resetarea starii unui echipament [OUTPUT]:
- se reseteaza bitul corespunzator din cuvantul de date scris catre port (bit = 0)
- pentru modificare se utilizeaza o masca: “0” pe pozitia bitului selectat, “1” in rest
- se efectueaza operatia “SI” logic (AND) intre cuvantul de date anterior scris la
portul respectiv (pentru a nu se modifica starea celorlale echipamente de pe port) si
masca
Cuvant de date
Bitn Bitn-1 Bitk Bit1 Bit0 DataOUTt-1
anterior scris la
port de OUTPUT AND
Masca pentru 1 1 0 1 1 Maskk
resetarea bitului k
Bitul k resetat,
ceilalti nemodificati Bitn Bitn-1 0 Bit1 Bit0 DataOUTt
Resetare
Resetare bit k: echipament k
Mask_k = 11111011111b; // 0 pe pozitia k
DataOUT &= Mask_k;
// Output la port DataOUT

©A.Sarca 2014 ACSI C3-8


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate

MSP430xG4618

- 10 porturi digitale de 8 biti – porturile P1 la P10


- Orice bit din orice port poate fi setat ca bit de intrare sau de iesire
- Pentru porturile P1 si P2 se pot genera intreruperi la tranzitii semnale de intrare
- Perechile de porturi P7/P8 si P9/P10 sunt adresabile si ca porturi pe 16 biti
- Porturi independente de intrare si de iesire

Registrul de intrare PxIN – citirea datelor de la portul de intrare ‘x’

Bit = 0: Intrare de valoare ‘low’


Bit = 1: Intrare de valoare ‘high’

Registrul de iesire PxOUT – setare/resetare date la portul de iesire ‘x’

Bit = 0: Iesire setata la valoarea ‘low’


Bit = 1: Iesire setata la valoarea ‘high’

©A.Sarca 2014 ACSI C3-9


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate

Registrul de directie PxDIR – selectare tip bit – iesire sau intrare la port ‘x’

Bit = 0: Pinul corespunzator este definit ca pin de intrare


Bit = 1: Pinul corespunzator este definit ca pin de iesire

Registrul de selectare functie PxSEL – selectare functie I/O generica


sau functie periferic

Bit = 0: se selecteaza functia de I/O


Bit = 1: se selecteaza functia de periferic asociata

Alte registre:

P1IFG, P2IFG – registre indicatori intreruperi P1 sau P2


P1IES, P2IES – registre selectie tip tranzitie pentru intreruperi P1 sau P2
P1IE, P2IE – registre activare intreruperi P1 sau P2

©A.Sarca 2014 ACSI C3-10


MSP430FG4618
MSP430FG4618 –– Experimenter’s
Experimenter’s board
board

©A.Sarca 2014 ACSI C3-11


MSP430FG4618
MSP430FG4618 –– Experimenter’s
Experimenter’s board
board

LED1 - Bit 2, port 2 - OUTPUT


LED2 - Bit 1, port 2 - OUTPUT
LED4 - Bit 1, port 5 - OUTPUT

Buton SW1 - Bit 0, port 1 - INPUT


Buton SW2 - Bit 1, port 1 - INPUT

Se utilizeaza: Se utilizeaza:
P1SEL - Bit 0 si Bit1 ca I/O [0] P2SEL - Bit1 si Bit2 ca I/O [0]
P1DIR - Bit 0 si Bit1 ca Input [0] P2DIR - Bit1 si Bit2 ca Output [1]
P1IN - Citire stare SW1 pe Bit0, P2IN --
si SW2 pe Bit1 P2OUT - Bit1 pentru comanda
P1OUT - - LED2, Bit2 pentru comanda LED1

©A.Sarca 2014 ACSI C3-12


Arhitectura
Arhitectura şi
şi configurarea
configurarea sistemelor
sistemelor integrate
integrate

Pini segmente
- controleaza afisaje
LCD:
Pini common

- statice
- cu multiplexare x 2
- cu multiplexare x 3
- cu multiplexare x 4
- memorie display
- generare automata
semnale
- frecventa afisare
selectabila
- blinking

©A.Sarca 2014 ACSI C3-13


MSP430FG4618
MSP430FG4618 –– controlerul
controlerul LCD
LCD

Modul static

Fiecare ‘segment
pin’ controleaza 1
segment LCD

Se utilizeaza COM0

©A.Sarca 2014 ACSI C3-14


MSP430FG4618
MSP430FG4618 –– controlerul
controlerul LCD
LCD

Modul 4-mux

Fiecare ‘segment pin’


controleaza 4
segmente LCD

Se utilizeaza COM0,
COM1, COM2, COM3

©A.Sarca 2014 ACSI C3-15


MSP430FG4618
MSP430FG4618 –– Experimenter’s
Experimenter’s board
board

Afisaj – model SoftBaugh SBLCDA4 - 4mux LCD

©A.Sarca 2014 ACSI C3-16


MSP430FG4618
MSP430FG4618 –– Experimenter’s
Experimenter’s board
board

Afisaj LCD model


SoftBaugh SBLCDA4

©A.Sarca 2014 ACSI C3-17


MSP430FG4618
MSP430FG4618 –– Experimenter’s
Experimenter’s board
board

Afisaj LCD model SoftBaugh SBLCDA4 – alocarea segmentelor

©A.Sarca 2014 ACSI C3-18


MSP430FG4618
MSP430FG4618 –– Experimenter’s
Experimenter’s board
board
Afisaj LCD model SoftBaugh SBLCDA4 – // MSP430xG461x
// -------------------------
conexiuni la MSP430 // /|\| |
// || P2.2 |-->LED1
Memoria LCD (registri MSP430) // --|RST P2.1 |-->LED2
// | P5.1 |-->LED4
// | |
//SW1-->|P1.0 | SoftBaugh SBLCDA4 4-mux LCD
//SW2-->|P1.1 P10.5/S4 |-->S0-->PIN14 (1A_1B_1C_1D)
// | P10.4/S5 |-->S1-->PIN13 (1F_1G_1E_DP1)
// | P10.3/S6 |-->S2-->PIN12 (2A_2B_2C_2D)
// | P10.2/S7 |-->S3-->PIN11 (2F_2G_2E_DP2)
// | P10.1/S8 |-->S4-->PIN10 (3A_3B_3C_3D)
// | P10.0/S9 |-->S5-->PIN9 (3F_3G_3E_COL3)
// | P9.7/S10 |-->S6-->PIN8 (4A_4B_4C_4D)
// | P9.6/S11 |-->S7-->PIN7 (4F_4G_4E_DP4)
// | P9.5/S12 |-->S8-->PIN6 (5A_5B_5C_5D)
// | P9.4/S13 |-->S9-->PIN5 (5F_5G_5E_COL5)
// | P9.3/S14 |-->S10->PIN4 (6A_6B_6C_6D)
// | P9.2/S15 |-->S11->PIN3 (6F_6G_6E_DP6)
// | P9.1/S16 |-->S12->PIN2 (7A_7B_7C_7D)
// | P9.0/S17 |-->S13->PIN1 (7F_7G_7E_DP7)
// | P8.7/S18 |-->S14->PIN19 (F5_PR_P4_P3)
// | P8.6/S19 |-->S15->PIN20 (F1_F2_F3_F4)
// | P8.5/S20 |-->S16->PIN21 (PL_P0_P1_P2)
// | P8.4/S21 |-->S17->PIN22 (AU_AR_AD_AL)
// | P8.3/S22 |-->S18->PIN23 (BT_B1_B0_BB)
// | P8.2/S23 |-->S19->PIN24 (ANT_A2_A1_A0)
// | P8.1/S24 |-->S20->PIN25 (ENV_TX_RX_8BC)
// | P8.0/S25 |-->S21->PIN26 (DOL_ERR_MINUS_MEM)
// | COM3 |-->COM3 (COM3)
// | COM2 |-->COM2 (COM2)
// | COM1 |-->COM1 (COM1)
// | COM0 |-->COM0 (COM0)
// | |

©A.Sarca 2014 ACSI C3-19


ACSI – Laborator Tema 1+2. Organigrame

START

Iniţializări

NU Condiţie DA
totdeauna
adevărată

Execută aplicaţia
( deoacamdata doar
meniul de comenzi)

END

© A.Sarca 2014 ACSI C3-A1


ACSI – Laborator Tema 1+2. Organigrame

Meniu comenzi

NU Tastă DA
apăsată ?

c-dă = 0 c-dă = SUS | JOS | DR | ST | OK

NU Status = DA
Afişare c-zi ?

Tratează cazul Afişare c-zi


NU Status = DA
Editare c-zi ?

Trateaza cazul Afişare date Trateaza cazul Editare c-zi

NU Status nou = DA
Editare c-zi ?

Clipeşte linia/coloana editată

RETURN

© A.Sarca 2014 ACSI C3-A2


ACSI – Laborator Tema 1+2. Organigrame

Afiseaza_comanda
(tip_comanda, linie, coloana)

NU Tip_comanda DA
=PI_LxCy?

Afişeaza P pe poziţia 6
Afişeaza I pe poziţia 5

NU Tip_comanda DA
=PL_LxCy?

Afişeaza P pe poziţia 6
Afişeaza L pe poziţia 5

Afişeaza G pe poziţia 6
Afişeaza O pe poziţia 5

Afişeaza L pe poziţia 3
Afişeaza linie pe poziţia 2
Afişeaza C pe poziţia 1
Afişeaza coloana pe poziţia 2

RETURN

© A.Sarca 2014 ACSI C3-A3


ACSI – Laborator Tema 1+2. Organigrame

Afiseaza_pozitie
(axa)

Afişeaza P pe poziţia 6

NU DA
axa =AXA_X?

Afişeaza C pe poziţia 5
valoare = Pozitie_X
NU DA
axa =AXA_Y?

Afişeaza L pe poziţia 5
valoare = Pozitie_Y
Afişeaza H pe poziţia 5
valoare = Pozitie_Z

i=0

NU DA
i<4?

Afişeaza (valoare%10) pe poziţia i


valoare = valoare / 10
i = i+1

RETURN

© A.Sarca 2014 ACSI C3-A4


ACSI – Laborator Tema 1+2. Organigrame

Verifica_afisare_intermitenta
(editare, linie, coloana)

NU DA
contor2_intreruperi >TIMP_AFISARE
şi editare != OPRITA ?

contor2_intreruperi = 0

NU DA
mod_afisare = ON?

mod_afisare
mod_afisare==0N
0FF mod_afisare = 0FF

NU DA NU DA
Editare = Editare =
PE COLOANA? PE COLOANA?

Afişeaza coloana pe poziţia 0

Afişeaza linie pe poziţia 2 Sterge poziţia 2 Sterge poziţia 0

RETURN

© A.Sarca 2014 ACSI C3-A5

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