Você está na página 1de 0

A.

Sarca 2013 ACSI C3-1


Comanda porturilor numerice
Programarea unui display LCD
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor integrate
A.Sarca 2013 ACSI C3-2
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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 2013 ACSI C3-3
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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 2013 ACSI C3-4
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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)
Bit
n
Bit
n-1
Bit
k
Bit
1
Bit
0
Intrare 0
Iesire 1
Iesire k
Intrare n-1
A.Sarca 2013 ACSI C3-5
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor integrate
Registru Port de iesire
Bit
n
Bit
n-1
Bit
k
Bit
1
Bit
0
Iesire 0
Iesire 1
Iesire k
Iesire n
Registru Port de intrare
Bit
n
Bit
n-1
Bit
k
Bit
1
Bit
0
Iesire 0
Iesire 1
Iesire k
Iesire n-1
Iesire n
A.Sarca 2013 ACSI C3-6
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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
Stare
echipament k
Cuvant de date
citit de la port de
INPUT
Masca pentru
izolarea bitului k
Bitul k izolat
Bit
n
Bit
n-1
Bit
k
Bit
1
Bit
0
0 0 1 0 0
0 0 Bit
k
0 0
AND
=
DataIN
Mask
k
Data
k
Testare:
Data_k = DataIN & Mask_k;
IF (Data_k)
{ // bitul k este = 1 }
else
{ // bitul k este = 0 }
A.Sarca 2013 ACSI C3-7
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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
Bit
n
Bit
n-1
Bit
k
Bit
1
Bit
0
0 0 1 0 0
Setare
echipament k
Cuvant de date
anterior scris la
port de OUTPUT
Masca pentru
setarea bitului k
Bitul k setat,
ceilalti
nemodificati
OR
DataOUT
t-1
Mask
k
DataOUT
t
Bit
n
Bit
n-1
1 Bit
1
Bit
0
Setare bit k:
Mask_k = 0000100000b; // 1 pe pozitia k
DataOUT |= Mask_k;
// Output la port DataOUT
A.Sarca 2013 ACSI C3-8
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor integrate
Bit
n
Bit
n-1
Bit
k
Bit
1
Bit
0
1 1 0 1 1
Resetare
echipament k
Cuvant de date
anterior scris la
port de OUTPUT
Masca pentru
resetarea bitului k
Bitul k resetat,
ceilalti nemodificati
AND
DataOUT
t-1
Mask
k
DataOUT
t
Bit
n
Bit
n-1
0 Bit
1
Bit
0
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
Resetare bit k:
Mask_k = 11111011111b; // 0 pe pozitia k
DataOUT &= Mask_k;
// Output la port DataOUT
A.Sarca 2013 ACSI C3-9
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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 2013 ACSI C3-10
Arhitectura i configurarea sistemelor integrate
Arhitectura i configurarea sistemelor 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 2013 ACSI C3-11
MSP430FG4618 Experimenters board
MSP430FG4618 Experimenters board
A.Sarca 2013 ACSI C3-12
MSP430FG4618 Experimenters board
MSP430FG4618 Experimenters 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:
P1SEL - Bit 0 si Bit1 ca I/O [0]
P1DIR - Bit 0 si Bit1 ca Input [0]
P1IN - Citire stare SW1 pe Bit0,
si SW2 pe Bit1
P1OUT - -
Se utilizeaza:
P2SEL - Bit1 si Bit2 ca I/O [0]
P2DIR - Bit1 si Bit2 ca Output [1]
P2IN - -
P2OUT - Bit1 pentru comanda
LED2, Bit2 pentru comanda LED1
A.Sarca 2013 ACSI C3-13
MSP430FG4618 controlerul LCD
MSP430FG4618 controlerul LCD
Modul static
Fiecare segment
pin controleaza 1
segment LCD
Se utilizeaza COM0
A.Sarca 2013 ACSI C3-14
MSP430FG4618 controlerul LCD
MSP430FG4618 controlerul LCD
Modul 4-mux
Fiecare segment pin
controleaza 4
segmente LCD
Se utilizeaza COM0,
COM1, COM2, COM3
A.Sarca 2013 ACSI C3-15
Afisaj model SoftBaugh SBLCDA4 - 4mux LCD
MSP430FG4618 Experimenters board
MSP430FG4618 Experimenters board
A.Sarca 2013 ACSI C3-16
Afisaj LCD model
SoftBaugh SBLCDA4
MSP430FG4618 Experimenters board
MSP430FG4618 Experimenters board
A.Sarca 2013 ACSI C3-17
Afisaj LCD model SoftBaugh SBLCDA4 alocarea segmentelor
MSP430FG4618 Experimenters board
MSP430FG4618 Experimenters board
A.Sarca 2013 ACSI C3-18
Afisaj LCD model SoftBaugh SBLCDA4
conexiuni la MSP430
MSP430FG4618 Experimenters board
MSP430FG4618 Experimenters board
// MSP430xG461x
// -------------------------
// /|\| |
// | | P2.2 |-->LED1
// --|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)
// | |
Memoria LCD (registri MSP430)

Você também pode gostar