Sunteți pe pagina 1din 47

UNIVERSITATEA TRANSILVANIA DIN BRAOV

Facultatea de Design de Produs i Mediu


Departamentul Design de Produs, Mecatronic i Mediu








PROIECT LA DISCIPLINA
MEDII DE PROGRAMARE PENTRU
MICROCONTROLLERE




Student: Zeca Alin - Cristian
Program de studii: Mecatronica
Grupa: 17902



Coordonator:
ef lucr. dr. ing. Marius Cristian LUCULESCU





BRAOV
2013 -2014

2


UNIVERSITATEA TRANSILVANIA DIN BRAOV
Facultatea de Design de Produs i Mediu
Departamentul Design de Produs, Mecatronic i Mediu






Zeca Alin - Cristian

Sisteme de afiare cu microcontroller

Proiect la disciplina
MEDII DE PROGRAMARE PENTRU
MICROCONTROLLERE





Program de studii: Mecatronica





BRAOV
2013 - 2014
3

Contents
TEMA DE PROIECT ............................................................................................................................................. 4
1.Introducere ..................................................................................................................................................... 8
2.SUBSISTEMUL HARDWARE ........................................................................................................................... 12
3.Subsistemul software ................................................................................................................................... 20
3.1. Sistem de afiare cu matrice de LED-uri - programare n limbaj de asamblare .............................. 20
3.1.1Descrierea efectelor grafice alese i a metodelor utilizate pentru deplasare. ............................... 20
3.1.2Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese) ................................. 22
3.1.3Programele de funcionare scrise n limbaj de asamblare. ............................................................. 23
3.2. Sistem de afiare cu matrice de LED-uri - programare n MikroC ........................................................ 27
3.2.1. Protocolul de comunicaie ntre PC i sistemul de afiare ...................................................... 27
3.2.2 Programele de functionare scrise in MikroC ........................................................................... 28
3.3 Sistem de afiare cu 7 segmente programare n MikroC ................................................................... 32
3.3.1Descrierea funcionrii sistemului ................................................................................................... 32
3.3.2Protocolul de comunicaie ntre PC i sistemul de afiare. ............................................................. 33
3.3.3Programele de funcionare scrise n MikroC. .................................................................................. 33
3.4 Sistem de afiare cu LCD text programare n MikroC ......................................................................... 35
3.4.1 Descrierea funcionrii sistemului .................................................................................................. 35
3.4.2 Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese). ............................... 36
3.4.3Programele de funcionare scrise n MikroC. .................................................................................. 36
3.5 Sistem de afiare cu LCD grafic programare n MikroC ...................................................................... 37
3.5.1 Descrierea funcionrii sistemului .................................................................................................. 37
3.5.2Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese). ................................ 38
3.5.3Programele de funcionare scrise n MikroC. .................................................................................. 38
3.6 Programele de funcionare scrise n Visual Basic ............................................................................ 40
3.6.1 Descrierea interfeelor grafice utilizator ........................................................................................ 40
3.6.2 Programele de funcionare scrise n Visual Basic. .......................................................................... 40
BIBLIOGRAFIE ................................................................................................................................................... 47




4

TEMA DE PROIECT
Sisteme de afiare cu microcontroller
S se proiecteze programele de funcionare, n limbaj de asamblare i limbaj de nivel superior,
pentru urmtoarele aplicaii realizate cu un sistem de dezvoltare cu microcontroller AT89S8253:
A. Sistem de afiare cu matrice de LED-uri programare n limbaj de asamblare
Pe cele 4 porturi ale microcontroller-ului sunt conectate LED-uri, a cror aprindere se face cu 1
logic (matrice 8 rnduri, 4 coloane). Programele de funcionare trebuie s asigure minim 4 efecte
de deplasare grafic pe afior, la alegere, cu posibilitatea de comand de pe tastatura unui PC i
dintr-un program n Visual Basic, pentru urmtoarele funcii:
o Creterea/ descreterea n trepte a vitezei de deplasare;
o Pornirea i oprirea deplasrii;
o Testarea afiorului (aprinderea/ stingerea tuturor LED-urilor)
B. Sistem de afiare cu matrice de LED-uri programare n MikroC
Realizarea acelorai funcii de la punctul A, dar folosind limbaj de nivel superior (MikroC).
C. Sistem de afiare cu 7 segmente programare n MikroC
La placa UNI-DS6 se conecteaz un modul de afiare cu 7 segmente, cu 8 digii, care comunic
serial pe interfa SPI. Programele de funcionare trebuie s asigure deplasarea unui text ales pe
afior, care s conin minim 8 caractere, la alegere, cu posibilitatea de comand de pe tastatura
unui PC i dintr-un program n Visual Basic, pentru urmtoarele funcii:
o Selectarea sensului de deplasare (stnga, dreapta);
o Creterea/ descreterea n trepte a vitezei de deplasare;
o Pornirea i oprirea afirii;
o Testarea afiorului (aprinderea/ stingerea tuturor segmentelor).
D. Sistem de afiare cu LCD text programare n MikroC
Realizarea funciei de cronometru cu afiare pe LCD-ul text a timpului n format HH:MM:SS (H
ore, M minute, S secunde, Z zecimi de secund) cu posibilitatea de comand de pe tastatura
unui PC i dintr-un program n Visual Basic, pentru urmtoarele funcii:
o Pornirea i oprirea cronometrului;
o Resetarea cronometrului.
E. Sistem de afiare cu LCD grafic programare n MikroC
Realizarea funciei de cronometru cu afiare pe LCD-ul grafic a timpului n format HH:MM:SS
(H ore, M minute, S secunde, Z zecimi de secund) cu posibilitatea de comand de pe
tastatura unui PC i dintr-un program n Visual Basic, pentru urmtoarele funcii:
o Pornirea i oprirea cronometrului;
o Resetarea cronometrului.
C. Sistem de afiare cu 7 segmente programare n MikroC
5

La placa UNI-DS6 se conecteaz un modul de afiare cu 7 segmente, cu 8 digii, care comunic
serial pe interfa SPI. Programele de funcionare trebuie s asigure generarea funciei de
cronometru cu afiare n format MM-SS-ZZ (M minute, S secunde, Z zecimi de secund) cu
posibilitatea de comand de pe tastatura unui PC i dintr-un program n Visual Basic, pentru
urmtoarele funcii:
o Pornirea i oprirea cronometrului;
o Resetarea cronometrului.
D. Sistem de afiare cu LCD text programare n MikroC
Programele de funcionare trebuie s asigure deplasarea unui text ales pe afiorul LCD text, care
s conin minim 8 caractere, la alegere, cu posibilitatea de comand de pe tastatura unui PC i
dintr-un program n Visual Basic, pentru urmtoarele funcii:
a. Selectarea sensului de deplasare (stnga, dreapta);
b. Creterea/ descreterea n trepte a vitezei de deplasare;
c. Pornirea i oprirea afirii;
E. Sistem de afiare cu LCD grafic programare n MikroC
Programele de funcionare trebuie s asigure deplasarea unui text ales pe afiorul LCD grafic,
care s conin minim 8 caractere, la alegere, cu posibilitatea de comand de pe tastatura unui PC
i dintr-un program n Visual Basic, pentru urmtoarele funcii:
a. Selectarea sensului de deplasare (stnga, dreapta);
b. Creterea/ descreterea n trepte a vitezei de deplasare;
c. Pornirea i oprirea afirii;

Proiectul va conine:
1. Scurt introducere n care sunt prezentate noiuni generale despre soluiile de afiare
(LED-uri, 7 segmente, LCD text, LCD grafic).
2. Subsistemul hardware
Prezentarea plcii de dezvoltare UNI-DS6 cu explicaii asupra zonelor utilizate n
cadrul proiectului (LED-uri, afioare etc.)
3. Subsistemul software
3.1 Sistem de afiare cu matrice de LED-uri - programare n limbaj de asamblare
a. Descrierea efectelor grafice alese i a metodelor utilizate pentru deplasare.
b. Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).
c. Programele de funcionare scrise n limbaj de asamblare.
3.2 Sistem de afiare cu matrice de LED-uri - programare n MikroC
a. Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).
b. Programele de funcionare scrise n MikroC.
3.3 Sistem de afiare cu 7 segmente programare n MikroC
a. Descrierea funcionrii sistemului
b. Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).
6

c. Programele de funcionare scrise n MikroC.
3.4 Sistem de afiare cu LCD text programare n MikroC
a. Descrierea funcionrii sistemului
b. Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).
c. Programele de funcionare scrise n MikroC.
3.5 Sistem de afiare cu LCD grafic programare n MikroC
a. Descrierea funcionrii sistemului
b. Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).
c. Programele de funcionare scrise n MikroC.
3.6 Programele de funcionare scrise n Visual Basic.
a. Descrierea interfeelor grafice utilizator
b. Programele de funcionare scrise n Visual Basic.
4 Anexe
4.1 Fiierul listing pentru punctul A.
5. Bibliografie



















7

EVALUARE PROIECT
Fiecare criteriu primete un punctaj de la 1 la 10. Nota final pentru proiect se obine prin
nsumarea notelor pe criterii, nmulite cu ponderile corespunztoare.
Nota aferent proiectului reprezint 30% din nota disciplinei
Criteriul estetic (aspectul proiectului)
20% din nota aferent proiectului
Se evalueaz modul de organizare/ structurare al
lucrrii i modul de elaborare al documentaiei din
punct de vedere estetic (scheme/ desene/ grafice
clare, ngrijite, relevante, numerotare pagini,
figuri, referine bibliografice) etc.
Criteriul tehnic (corectitudine
coninut proiect) 30% din nota
aferent proiectului
Aplicarea metodelor specifice de
rezolvare pentru problema dat;
Utilizarea corect a algoritmilor proprii
tematicii abordate; Utilizarea corect i
fluent a termenilor specifici;
Corectitudinea programelor realizate;
Capacitatea de exemplificare;
Interpretarea rezultatelor
Se evalueaz gradul de realizare al lucrrii n
raport cu cerinele specificate n tema proiectului
(cerine impuse explicit la nceput, pentru fiecare
proiect n parte), respectiv gradul de cunoatere al
tematicii i al metodelor/ uneltelor pe care le
implic elaborarea proiectului.
Criteriul profesional (prezentarea i
susinerea proiectului) 30% din nota
aferent proiectului

Se evalueaz capacitatea studentului de a-i
prezenta proiectul ntr-o manier cursiv, logic i
relevant, rspunsurile la ntrebrile evaluatorului,
respectiv modul de realizare a prezentrii grafice
[*.ppt] (relevana coninutului i capacitatea de
sintez a studentului).
Criteriul evaluare de progres 20%
din nota aferent proiectului
Evaluarea de progres presupune existena a 2 vize
i predarea proiectului n ziua stabilit de la finalul
semestrului. Fiecare viz presupune parcurgerea
unei anumite pri din proiect.
Nerespectarea termenelor se penalizeaz cu 2
puncte (din nota aferent criteriului) pentru fiecare
viz i respectiv 1 punct pentru nepredare la timp.

8

1.Introducere

Sistemele de afiare reprezint soluia de redare a unor informaii vizuale care pot avea diverse
ntrebuinri din ce n ce mai complexe: de la afioarele cu 7 segmente care sunt cel mai uzual ntrebuinate
la lifturi, pn la display-urile de nalt rezoluie ce pot afia orice fel de informaie.

Un LED (light-emitting diode) este o surs de lumin mic, de cele mai multe ori nsoit de un circuit electric
ce permite modularea formei radiaiei luminoase. De cele mai multe ori acestea sunt utilizate ca indicatori
n cadrul dispozitivelor electronice, dar din ce n ce mai mult au nceput s fie utilizate n aplicaii de putere
ca surse de iluminare. Culoarea luminii emise depinde de compoziia i de starea materialului
semiconductor folosit.

Fig. 2.1 LED [1]
Prin definiie, pixelul este "punctul luminos" prezent pe orice dispozitiv LED, de la display alfanumeric
simplu cu o singur linie pn la ecrane gigant color. Acest punct luminos poate fi format din unul sau mai
multe LED-uri, n funcie de dimensiunile i caracteristicile dispozitivului.


Fig. 2.2 Tipuri de matrici [1]




9

De exemplu, pe un afiaj de mici dimensiuni Single Line, pixelul este format de ctre un singur LED n timp
ce pe modelele mari, pixelul poate fi format din 20 LED-uri. n cazul anumitor produse, pixelul poate fi
compus din pn la 36 LED-uri.


Fig. 2.3 LED Display [1]

Pitch-ul la un display cu LED-uri definete distana dintre pixeli, exprimat n milimetri. Aceast msur
fundamental determin caracteristicile i performanele unui ecran cu LED-uri.

Pitch-ul ntr-adevar este un factor definitoriu pentru distana de vizualizare la un ecran LED:
1. Cu ct este mai mic, cu att distana la care se poate vizualiza este mai mic, cu att mai mare este
numrul total de pixeli prezeni pe ecran raportai la suprafa (i, prin urmare, costul ecranului per
suprafa este mai mare).
2. Cu ct este mai mare, cu att distana de vedere minim crete, numrul total de pixeli prezeni pe ecran
scade (i, prin urmare, costul ecranului per suprafa este mai mic)

Pitch-ul determin, prin urmare, densitatea de LED-uri per unitatea de suprafa fiind o mrime invers
proportional cu rezoluia. Este important de observat c n timp ce pitch-ul scade, densitatea de LED-uri se
mrete exponenial: de exemplu, reducerea pitch-ului cu 50% determin o cretere de 4 ori a numrului
de pixeli.

Afiorul cu 7 segmente este o form electronic de afiaj care permite afiarea cifrelor de la 0 la 9.
Afioarele cu 7 segmente sunt ntrebuinate cel mai des la ceasurile digitale sau alte aparate electronice
pentru afiarea informaiilor numerice. Fiecare segment este notat de la a la g iar n unele cazuri se
introduce i un punct zecimal n afiaj care de obicei este denumit dp (decimal point).

Fig. 2.4 Afior cu 7 segmente [1]

10

Afiajul cu cristale lichide, prescurtat LCD (liquid crystal display) este un dispozitiv de afiare pentru litere,
cifre, grafice, imagini, fiind constituit dintr-o matrice de celule lichide care devin opace sau i schimb
culoarea sub influena unui curent sau un cmp electric. Se prezint sub forma unui ecran afior (display)
care este comandat electronic printr-un decodificator de caractere numerice i alfabetice. LCD-ul este
utilizat frecvent n construcia ceasurilor digitale, la afirile de date de la maini cu comand numeric,
maini de uz caznic, inscripii i semnalizri electronice. Cristalele lichide sunt, n cazul de fa, combinaii
chimice de natur organic aflat n stare lichid. Ele au proprietatea de a putea fi comandate de o
corespunzatoare tensiune electric, astfel nct i ordoneaz moleculele trecnd de la stare transparent la
una netransparent. Concret este vorba de o polarizare electric a unor molecule lichide care n contrast
formeaz o imagine vizibil.

Fig. 2.5 Ecran tip LCD 2x16 [2]
Principiul de funcionare a unui ecran LCD: Lumina care eman de la un panou fluorescent din spatele
panoului de afiare al ecranului se rspndete n valuri care vibreaz n toate direciile. Un filtru polarizator
din faa panoului de lumin permite trecerea numai a undelor de lumin care vibreaz mai mult sau mai
puin pe orizontal. Faptul c filtrul polarizator nu este precis n totalitate permit afiajului s creeze diferite
nuane. ntr-un strat de celule de cristale lichide - cte una pentru fiecare din cele trei culori care compun
un pixel -adaptorul grafic intern al monitorului (sau televizorului) aplic o sarcin electric variabil unor
celule i nici o sarcin electric tuturor celorlalte celule. n celulele care primesc curent, moleculele
lunguiee n form de vergea care alctuiesc materialul cristalului lichid reacioneaz la sarcina electric
formnd o spiral. Cu ct sarcina electric este mai mare cu att se rsucesc mai mult moleculele. Atunci
cnd este aplicat cea mai mare sarcin electric, moleculele de la un capt al celulei se ridic ntr-un unghi
de 90 de grade fa de orientarea moleculelor de la cellalt capt. Lumina polarizat care ptrunde n celule
din spate este rsucit de-a lungul spiralei formate de molecule.
n celulele care au fost alimentate cu sarcin electric maxim, lumina polarizat iese vibrnd, ntr-un unghi
de 90 de grade fa de alinierea ei iniial. Lumina care trece prin celulele care nu au fost alimentate iese
neschimbat. Celulele care au fost alimentate cu o sarcin electric partial rsucesc lumina ntr-un unghi
situat ntre 0 i 90 de grade n funcie de mrimea sarcinii electrice. Lumina care iese din fiecare celul de
cristal lichid trece prin unul din cele trei filtre de culoare rou, albastru sau verde - care sunt aranjate unul
n apropierea celorlalte. Fasciculele colorate de lumin trec printr-un alt doilea filtru de polarizare care este
aliniat pentru a lsa s treac numai acele unde de lumin care vibreaz mai mult sau mai puin pe
vertical. Lumina care trece printr-un cristal lichid care este alimentat cu o sarcin electric maxim este
acum orientat perfect pentru a trece prin al doilea filtru.
11

Deoarece cu este complet precis, o parte din undele de lumin care au trecut prin celula cu sarcina electric
partial - i care, prin urmare, a fost rsucit numai parial - trec prin filtru, n timp ce altele sunt blocate.
Lumina care nu a fost rsucit deloc atunci cnd a trecut prin cristalul lichid este acum blocata complet, n
exemplul prezentat aici. 100% din fascicolul rou este emis; 50% din lumina verde trece; iar lumina albastr
este blocat complet. Rezultatul apare ochiului uman ca un singur punct de lumina de culoare maro
deschis.
























12


2.SUBSISTEMUL HARDWARE

n cadrul proiectului utilizm un sistem de dezvoltare UNI-DS6 fabricat de ctre compania Mikroelectronica.
Acesta este echipat cu multe module care ofer o larg varietate de ntrebuinri a sistemului. Placa n sine
suporta 7 tipuri de microcontrollere, dar cel montat pe sistemul utilizat n cadrul proiectului este un
microcontroller de tip 8051.

Fig. 2.1 Placa UNIDS 6 [3]
Soluiile de afiare ale plcii de dezvoltare sunt sistemul de afiare cu matrice de LED-uri i sistemul de
afiare cu matrice de LED-uri i LCD.

Placa este dotat cu un conector pentru un display LCD 2x16 care permite utilizarea unui display LCD 2x16
i asigur pozitionarea corect a acestuia prin intermediul unui distanier din material plastic creat special
pentru aceast funcie.


Fig. 2.2 - Display LCD 2x16 [3]
13

n imagine se poate vedea display-ul LCD 2x16 cu fundal albastru compatibil cu sistemul de conectare al
placii UNI-DS6.


De asemenea placa dispune i de un conector pentru un LCD grafic de dimensiune 128x64, de asemenea
dotat cu un distanier de plastic conceput special pentru aceast funcie. GLCD-ul poate s fie unul simplu
sau unul cu funcii tactile, care s permit i citirea comenzilor apelate de ctre utilizator

Fig. 2.3 - GLCD 128x64 [3]

Fig. 2.4 - GLCD 128x64 TouchPad [3]

Sistemul UNI-DS6 are integrat un sistem de semnalizare vizual format din 72 de LED-uri. Cu ajutorul
acestora se pot monitoriza executiile programelor sau se pot crea efecte grafice.

Placa de dezvoltare UNI-DS6 are componentele:
-MMC/SD card slot permite stocarea unor valori mari de date externe pe MMC/SD card folosind
comunicaie rapid SPI;
14


Fig. 2.5 MMC/SD card slot [3]

-DS1820 senzor de temperatur: Placa suport un senzor de temperatur cu un singur fir Dallas
DS1820, cu ajutorul cruia se pot msura temperaturi de la -55C la +125C (-67F257F), cu precizie de
0,5C;

Fig. 2.6 DS1820 senzor de temperatur [3]
-Piezometru Buzzo are abilitatea de a crea semnale audio pentru prototip. Este condus de un
circuit de tranzistor care stimuleaz semnalul de ieire la nivelurile corespunztoare;

Fig. 2.7 Piezometrul Buzzo [3]
-24LC01 Serial EEPROM este utilizat pentru a stoca configuraia dispozitivului i ali parametri de
pornire;
15


Fig. 2.8 24LC01 Serial EEPROM [3]


-Tensiune de referin 4.096V = Regulator de tensiune stabil 4.096V este disponibil pentru a fi
folosit ca o referin de tensiune pentru module de conversie A/D;

Fig.2.9 Tensiune de referin 4.096V [3]
-Regulator de Putere = Pe plac regulatorul de putere ofer stabilitate i liniaritate tensiunii i
nivelurilor de curent pe toate modulele de la bord.

Fig. 2.10 Regulator de Putere [3]
-Intrare ADC = Placa de dezvoltare include un convertor digital-analog de 12 bii (ADC) MCP3204,
care poate fi utilizat pentru achiziii de date, instrumentaie i msurare;
16


Fig. 2.11 Intrare ADC [3]



-Conector LCD 2x16 = Placa este echipat cu un conector LCD 2 x 16 , care v permite s conectai
un afiaj LCD 2 x 16 plasat n siguran folosind un distanier din plastic de nalt calitate, special conceput
pentru acest scop.

Fig. 2.12 Conector LCD 2x16 [3]
-Poteniometru de constrast LCD = Cu LCD 2x16 se poate ajusta contrastul caracterelor LCD, astfel
nct caracterele s aib o vizibilitate bun.

Fig. 2.13 Poteniometru de constrast LCD [3]
-72 LEDuri = monitorizeaz programul de execuie, sau creaz semnale vizuale scurte folosind 72
LEDuri pe plac. LEDurile SMD emit lumin roie de mare intesitate.
17


Fig. 2.14 LED-uri [3]


-72 Butoane = au operaii stabile i crube de rspuns foarte bune. Fiecare buton este conectat
lng un pin al microcontrollerului, astfel inct se poate testa fiecare intrare digital disponibil;

Fig. 2.15 Butoane [3]
-Conector USB UART1/UART2 = Cipul FTDI Fast on-board cu conector USB, v permite s
comunicai cu un PC sau cu alte dispozitive folosind conexiunea USB-UART.

Fig. 2.16 Conector USB UART1/UART2 [3]
-Conector USB = Conectorul USB este utilizat pentru conectarea la bord cu alte dispozitive precum
PC folosind comunicarea rapid USB 2.0.
18


Fig. 2.17 Conector USB [3]




-Slot microplac = Slotul pentru microplci const din doi conectori mam 2 x 60 care asigur o
conexiune bun i o legtur solid cu placa.

Fig. 2.18 Slot microplac [3]

-Poteniometru de contrast GLCD = Cu poteniometrul de conrast GLCD se poate ajusta contrastul LCD
grafic, astfel nct pixelii s aib o bun vizibilitate.
19


Fig. 2.19 Poteniometru de contrast GLCD [3]

-Portul conectorilor IDC10 = Toi pini portului microcontrollerului au fost fixai n apropierea
portului conectorilor IDC10. Fiecare pin de pe port poate fi mutat n sus sau n jos folosind un jumper de
selecie de tensiune corespunztoare.

Fig. 2.20 Portul conectorilor IDC10 [3]


-Controlor panou de comand = Putei utiliza intrarea panoului de comand cu prototipul dorit
folosind circuitul controlorului panoului de comand.

Fig. 2.21 Controlor panou de comand [3]



20

3.Subsistemul software



3.1. Sistem de afiare cu matrice de LED-uri - programare n limbaj
de asamblare


3.1.1Descrierea efectelor grafice alese i a metodelor utilizate pentru deplasare.

1. Aprinderea Logoului Farmaciilor











2. Efect aprindere pe diagonala.










3.Afisarea primului grup de 8 leduri urmat de aprinderea urmatorului grup
de leduri.




21






















4.LIKE A BOSS























22




























3.1.2Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese)

Tasta apasata Rezultat
1 Efect grafic 1
2 Efect grafic 2
3 Efect grafic 3
4 Efect grafic 4
+ Marire viteza de deplasare
- Micsorare viteza de deplasare
E Pornire matrice de leduri
R Oprire matrice de leduri
Q comanda OPRIRE EFECT
W comanda PORNIRE EFECT

23





.
3.1.3Programele de funcionare scrise n limbaj de asamblare.




ORG 0000H
JMP MAIN
ORG 0023H ; VI
serial
JMP SERIAL
OPRIRE BIT 0 ;
OPRIRE=0 - EFECTUL SE DERULEAZA,
; OPRIRE=1 - EFECTUL ESTE OPRIT
COMANDA DATA 30H
VITEZA DATA 31H
ORG 100H
MAIN:
MOV SP,#60H ;
initializare SP
MOV TMOD,#20H ;
Programare seriala: Timer1 in mod2
MOV TH1,#245 ; 4800
baud rate la frecv de 10MHz
MOV TH0,#245
MOV PCON,#128
MOV SCON,#50H ;
Receiving enabled, 8-bit UART
MOV IE,#90H ;
validare intreruperi seriale
CLR TI ; Clear
transmit flag
CLR RI ; Clear
receive flag
SETB TR1 ; Start
Timer1
;==========================================
===========================================
==========================

MOV P0,#00H ; stinge
porturile,
MOV P1,#00H ; cu
exceptia P3.0 si P3.1
MOV P2,#00H
MOV P3,#03H
;==========================================
===========================================
==========================
MOV VITEZA,#80H ;
initializare variabile
CLR OPRIRE
MOV COMANDA,#00H
;==========================================
===========================================
==========================
LOOP: JB OPRIRE,SF
MOV A,COMANDA
CJNE A,#"1",CONTI1 ;
comanda EFECT 1
CALL EFECT1
JMP SF
CONTI1: CJNE A,#"2",CONTI2 ;
comanda EFECT 2
CALL EFECT2
JMP SF
CONTI2: CJNE A,#"3",CONTI3 ;
comanda EFECT 3
CALL EFECT3
JMP SF

24

CONTI3: CJNE A,#"4",SF ;
comanda EFECT 4
CALL EFECT4
SF:
SJMP LOOP ;
bucla infinita

;==========================================
===========================================
==========================
EFECT1:
MOV P0,#18H
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#1BH
CALL TEMP
CALL TEMP
CALL TEMP
MOV P0,#0E7H
MOV P1,#00H
MOV P2,#00H
MOV P3,#0E7H
CALL TEMP
CALL TEMP
CALL TEMP
RET
;==========================================
===========================================
==========================
EFECT2:
MOV P0,#55H
MOV P1,#0AAH
MOV P2,#055H
MOV P3,#0ABH
CALL TEMP
MOV P0,#0AAH
MOV P1,#55H
MOV P2,#0AAH
MOV P3,#57H
CALL TEMP
RET
;==========================================
===========================================
==========================
EFECT3:
MOV P0,#00H
MOV P1,#00H
MOV P2,#0FH
MOV P3,#0FH
CALL LTEMP

MOV P0,#0FH
MOV P1,#0FH
MOV P2,#00H
MOV P3,#03H
CALL TEMP
MOV P0,#0F0H
MOV P1,#0F0H
MOV P2,#00H
MOV P3,#03H
CALL TEMP
MOV P0,#00H
MOV P1,#00H
MOV P2,#0F0H
MOV P3,#0F3H
CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP
RET
;==========================================
===========================================
==========================
EFECT4:
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0C0H
MOV P3,#0C3H
CALL TEMP
MOV P0,#00H
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#03H
CALL TEMP
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#7EH
MOV P3,#0C3H
CALL TEMP
MOV P0,#0FFH
25

MOV P1,#0FFH
MOV P2,#0DBH
MOV P3,#0DBH
CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP

MOV P0,#0FFH
MOV P1,#31H
MOV P2,#31H
MOV P3,#0FFH

CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP

MOV P0,#0FFH
MOV P1,#9DH
MOV P2,#95H
MOV P3,#0FFH

CALL TEMP

MOV P0,#0FFH
MOV P1,#0C3H
MOV P2,#0C3H
MOV P3,#0FFH
CALL TEMP
MOV P0,#0DFH
MOV P1,#0DFH
MOV P2,#0FBH
MOV P3,#0FBH
CALL TEMP
MOV P0,#0DFH
MOV P1,#0DFH
MOV P2,#0FBH
MOV P3,#0FBH

CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP
CALL TEMP
RET
;==========================================
===========================================
==========================
STINGE: MOV P0,#00H ;
stinge porturile
MOV P1,#00H
MOV P2,#00H
MOV P3,#03H
RET
;==========================================
===========================================
==========================
APRINDE: MOV P0,#0FFH ;
aprinde porturile
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
RET
;==========================================
===========================================
==========================
TEMP: MOV R1,VITEZA
ETI2: MOV R2,#0FFH
ETI1: NOP
DJNZ R2,ETI1
DJNZ R1,ETI2
RET
;==========================================
===========================================
==========================
SERIAL: PUSH ACC
JB TI,SF1
RECEP: MOV A,SBUF ;
citire caracter receptionat
MOV SBUF,A ;
trimitere ecou
CJNE A,#"+",CONTIN1 ;
comanda CRESTE viteza

MOV A,VITEZA
CJNE A,#10H,SUBB1
JMP CONTIN2
26

SUBB1: SUBB A,#10H
MOV VITEZA,A
JMP SF1
CONTIN1: CJNE A,#"-",CONTIN2 ;
comanda SCADE viteza
MOV A,VITEZA
CJNE A,#0F0H,ADD1
JMP CONTIN2
ADD1: ADD A,#10H
MOV VITEZA,A
JMP SF1
CONTIN2: CJNE A,#"1",CONTIN3 ;
comanda EFECT 1
MOV COMANDA,A
JMP SF1

CONTIN3: CJNE A,#"2",CONTIN4 ;
comanda EFECT 2
MOV COMANDA,A
JMP SF1

CONTIN4: CJNE A,#"3",CONTIN5 ;
comanda EFECT 3
MOV COMANDA,A
JMP SF1
CONTIN5: CJNE A,#"4",CONTIN6 ;
comanda EFECT 4
MOV COMANDA,A
JMP SF1

CONTIN6: CJNE A,#"E",CONTIN7 ;
comanda APRINDERE TOATE LED-URILE
CALL APRINDE
JMP SF1
CONTIN7: CJNE A,#"R",CONTIN8 ;
comanda STINGERE TOATE LED-URILE
CALL STINGE
JMP SF1
CONTIN8: CJNE A,#"Q",CONTIN9 ;
comanda OPRIRE EFECT
SETB OPRIRE
JMP SF1
CONTIN9: CJNE A,#"W",SF1 ;
comanda PORNIRE EFECT
CLR OPRIRE
SF1: CLR RI ; Clear
receive flag
CLR TI ; Clear
transmit flag
POP ACC
RETI
END ; sfarsit
program

















27

3.2. Sistem de afiare cu matrice de LED-uri - programare n MikroC

3.2.1. Protocolul de comunicaie ntre PC i sistemul de afiare


Fig 3.2.1. Switch
P Pornire
O Oprire
S Stingere matrice
A Aprindere matrice
+ Incrementare viteza
- Decrementare viteza
1 Primul efect
2 Al doilea efect
3 Al treile efect
4 Al patrulea efect








28

3.2.2 Programele de functionare scrise in MikroC
unsigned char oprire, caracter_sosit, comanda, comanda_ant;
unsigned int viteza;
void Efect1(), Efect2(), Efect3(), Efect4(), Aprindere_porturi(), Stingere_porturi();
void main() {
P0=0x00; // stinge led-urile de pe porturile P0 la P3
P1=0x00;
P2=0x00;
P3=0x03;
UART1_Init(4800); // Initialize UART module at 4800 bps
Delay_ms(100); // Wait for UART module to stabilize
viteza=100;
oprire=0;
while (1) { // Bucla infinita
if (UART1_Data_Ready()) { // Daca se receptioneaza informatii
caracter_sosit= UART1_Read(); // Se citesc
UART1_Write(caracter_sosit); // Trimite informatiile prin UART
if ((caracter_sosit != 'O') && \
(caracter_sosit != 'P') && \
(caracter_sosit != '+') && \
(caracter_sosit != '-'))
comanda=caracter_sosit;
else
{comanda_ant=comanda;
comanda=caracter_sosit;}
}
switch (comanda) {
case '+': if (viteza>10) viteza -= 10; comanda=comanda_ant; break;
case '-': viteza += 10; comanda=comanda_ant; break;
case 'P': oprire=0; comanda=comanda_ant; break;
case 'O': oprire=1; comanda=comanda_ant; break;
case 'A': Aprindere_porturi(); break;
case 'S': Stingere_porturi(); break;
}
if (oprire==0) {
switch (comanda) {
case '1': Efect1(); break;
case '2': Efect2(); break;
case '3': Efect3(); break;
case '4': Efect4(); break;
}
}
}
}
29

void Efect1() {
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x03;
P0=0x18 ; // APRINDE SI STINGE O CRUCE
P1=0xff ;
P2=0xff ;
P3=0x1b ;
Vdelay_ms(viteza);
P0=0xe7;
P1=0x00;
P2=0x00;
P3=0xe7;
Vdelay_ms(viteza);
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x03;
Vdelay_ms(viteza);
}
void Efect2() {
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x03;
P0=0x055; //;
P1=0xAA;
P2=0x55;
P3=0xAB;
Vdelay_ms(viteza);
P0=0xAA; //;
P1=0x55;
P2=0xAA;
P3=0x57;
Vdelay_ms(viteza);
}
void Efect3() {
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x03;
P0=0x00; //;
P1=0x00;
P2=0x0F;
30

P3=0x0F
Vdelay_ms(viteza);
P0=0x0F; //;
P1=0x0F;
P2=0x00;
P3=0x03;
Vdelay_ms(viteza);
P0=0xF0; //;
P1=0xF0;
P2=0x00;
P3=0x03;
Vdelay_ms(viteza);
P0=0x00; //;
P1=0x00;
P2=0xF0;
P3=0xF3;
Vdelay_ms(viteza);
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x03;
}
void Efect4() {
P0=0xFF;
P1=0xFF;
P2=0xC0;
P3=0xC3;
Vdelay_ms(viteza);
P0=0x00; //;
P1=0xFF;
P2=0xFF;
P3=0x03;
Vdelay_ms(viteza);
P0=0xFF;
P1=0xFF;
P2=0x7E;
P3=0xC3;
Vdelay_ms(viteza);
P0=0xFF; //;
P1=0xFF;
P2=0xDB;
P3=0xDB;
Vdelay_ms(viteza);
P0=0xFF;
P1=0x31;
31

P2=0x31;
P3=0xFF;
Vdelay_ms(viteza);
P0=0xFF; //;
P1=0x9D;
P2=0x95;
P3=0x0FF;
Vdelay_ms(viteza);
P0=0xFF;
P1=0xC3;
P2=0xC3;
P3=0xFF;
Vdelay_ms(viteza);
P0=0xDF; //;
P1=0xDF;
P2=0xFB;
P3=0x0FB;
Vdelay_ms(viteza);
P0=0xDF; //;
P1=0xDF;
P2=0xFB;
P3=0x0FB;
Vdelay_ms(viteza);
}
void Aprindere_porturi() {
P0=0xFF;
P1=0xFF;
P2=0xFF;
P3=0xFF;
}
void Stingere_porturi() {
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x03;
}






32




















3.3 Sistem de afiare cu 7 segmente programare n MikroC


3.3.1Descrierea funcionrii sistemului
Programul afiseaza un cronometru.






Fig 3.3.1. Switch
33


3.3.2Protocolul de comunicaie ntre PC i sistemul de afiare.

P Porneste cronometrul
O Opreste cronometrul
R Reseteaza cronometrul


3.3.3Programele de funcionare scrise n MikroC.

sbit Chip_Select at P1_1_bit;
//sbit Chip_Select_Direction at TRISC0_bit;
// End Serial 7-seg Display connections
unsigned int zz,ss,mm;
unsigned char caracter_sosit,oprire;
void afiseaza_ora();
void max7219_init1() {
Chip_Select = 0; // SELECT MAX
SPI1_write(0x09); // BCD mode for digit decoding
SPI1_write(0xFF);
Chip_Select = 1; // DESELECT MAX
Chip_Select = 0; // SELECT MAX
SPI1_write(0x0A);
SPI1_write(0x0F); // Segment luminosity intensity
Chip_Select = 1; // DESELECT MAX
Chip_Select = 0; // SELECT MAX
SPI1_write(0x0B);
SPI1_write(0x07); // Display refresh
Chip_Select = 1; // DESELECT MAX
Chip_Select = 0; // SELECT MAX
SPI1_write(0x0C);
SPI1_write(0x01); // Turn on the display
Chip_Select = 1; // DESELECT MAX
Chip_Select = 0; // SELECT MAX
SPI1_write(0x00);
SPI1_write(0xFF); // No test
Chip_Select = 1; // DESELECT MAX
}
void afiseaza_ora (unsigned int sutimi, unsigned int secunde, unsigned int minute) {
Chip_Select = 0; // select max7219
SPI1_write(8); // zeci de minute
34

SPI1_write((minute/10)%10);
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(7);
SPI1_write(minute%10); // minute
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(6);
SPI1_write(0x0A); // -
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(5);
SPI1_write((secunde/10)%10); // zeci de secunde
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(4); //
SPI1_write(secunde%10); // secunde
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(3); //
SPI1_write(0x0A); // -
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(2); // zecimi secunda
SPI1_write((sutimi/10)%10);
Chip_Select = 1; // deselect max7219
Chip_Select = 0; // select max7219
SPI1_write(1); // sutimi secunda
SPI1_write(sutimi%10);
Chip_Select = 1; // deselect max7219
}
void main() {
zz=0;
ss=0;
mm=0;
oprire=0;
Uart1_Init(4800);
Delay_ms(100);
SPI1_Init();
max7219_init1();
while(1){
if (UART1_Data_Ready()) {
caracter_sosit=UART1_Read();
UART1_Write(caracter_sosit);
}
35

switch (caracter_sosit) {
case 'P': oprire=0; break;
case 'O': oprire=1; break;
case'R':zz=0;ss=0; mm=0; caracter_sosit='M'; afiseaza_ora(zz,ss,mm); break;
}
if (oprire==0) {
delay_ms(10);
zz=zz+1;
if (zz==100) {
zz=0;
ss=ss+1;
if (ss==60) {
ss=0;
mm=mm+1;
if (mm==60) {
mm=0;
}
}
}
afiseaza_ora(zz,ss,mm);
}
}
}




3.4 Sistem de afiare cu LCD text programare n MikroC

3.4.1 Descrierea funcionrii sistemului
Pe LCD-ul text se afiseaza textul Zeca.Alin .






36



Fig 3.4.1. Switch





3.4.2 Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).


P Pornire
O Oprire
W Incrementare viteza
S Decrementare viteza
A Deplasare text stanga
D Deplasare text dreapta


3.4.3Programele de funcionare scrise n MikroC.
unsigned char oprire, caracter_sosit, comanda, comanda_ant;
unsigned int viteza;
// LCD module connections
sbit LCD_RS at P1_2_bit;
sbit LCD_EN at P1_5_bit;
sbit LCD_D4 at P3_4_bit;
sbit LCD_D5 at P3_5_bit;
sbit LCD_D6 at P3_6_bit;
sbit LCD_D7 at P3_7_bit;
// End LCD module connections
char afisare[] = "Zeca.Alin";
void main() {
UART1_Init(4800); // Initialize UART module at 4800 bps
Delay_ms(1000); // Wait for UART module to stabilize
viteza=500;
oprire=0;
Lcd_Init(); // Initializare LCD
37

Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
LCD_Out (1,17,afisare); // Afisare continut variabila 'afisare'
la pe randul I la pozitia 17
Delay_ms(10);
while (1) {
if (UART1_Data_Ready()) { // Daca se receptioneaza informatii
caracter_sosit= UART1_Read(); // Se citeste
UART1_Write(caracter_sosit); // ECHO REPLY
if ((caracter_sosit != 'W') && \
(caracter_sosit != 'S') && \
(caracter_sosit != 'P') && \
(caracter_sosit != 'O') && \
(caracter_sosit != 'A') && \
(caracter_sosit != 'D'))
comanda=caracter_sosit;
else
{comanda_ant=comanda;
comanda=caracter_sosit;}
}
switch (comanda) {
case 'W': if (viteza>100) viteza -= 100; comanda=comanda_ant; break; //creste viteza
case 'S': viteza += 100; comanda=comanda_ant; break; //scade viteza
case 'P': oprire=0; comanda=comanda_ant; break; //porneste (=0)
case 'O': oprire=1; comanda=comanda_ant; break; //opreste (=1)
case 'A': {if (oprire==0) //deplasare stanga
Lcd_Cmd(_LCD_SHIFT_LEFT);
vdelay_ms(viteza); }; break;
case 'D': {if (oprire==0) //deplasare dreapta
Lcd_Cmd(_LCD_SHIFT_RIGHT);
vdelay_ms(viteza); }; break;
}
}
}


3.5 Sistem de afiare cu LCD grafic programare n MikroC

3.5.1 Descrierea funcionrii sistemului
Pe ecran se afiseaza textul Alin.Zeca .
38








Fig 3.5.1. Switch


3.5.2Protocolul de comunicaie ntre PC i sistemul de afiare (comenzile alese).

P Pornire
O Oprire
W Incrementare viteza
S Decrementare viteza
A Deplasare text stanga
D Deplasare text dreapta

3.5.3Programele de funcionare scrise n MikroC.
// Glcd module connections
char GLCD_DataPort at P2;
sbit GLCD_CS1 at P0_2_bit;
sbit GLCD_CS2 at P0_3_bit;
sbit GLCD_RS at P0_4_bit;
sbit GLCD_RW at P0_5_bit;
sbit GLCD_EN at P0_6_bit;
sbit GLCD_RST at P0_7_bit;
// End Glcd module connections
unsigned char oprire, caracter_sosit, comanda, comanda_ant;
unsigned int viteza;
unsigned short i;
39

char *afisare;
void main() {
UART1_Init(4800);
Delay_ms(100);
viteza=500;
oprire=1;
comanda='A';
Glcd_Init(); // Initialize GLCD
Glcd_Fill(0x00); // Clear GLCD
Glcd_Set_Font(Character8x7, 8, 7, 32); // setare font, latime 8, inaltime 7, offset 32
afisare = "Alin.Zeca";
while(1) {
if (UART1_Data_Ready()) { // Daca se receptioneaza informatii
caracter_sosit= UART1_Read(); // Se citesc
UART1_Write(caracter_sosit); // Trimite informatiile prin UART
if ((caracter_sosit == 'A') || (caracter_sosit == 'D')) {
comanda=caracter_sosit;
}
switch(caracter_sosit) {
case 'W': if (viteza>50) viteza -= 50; break;
case 'S': viteza += 50; break;
case 'P': oprire=0; break;
case 'O': oprire=1; break;
}
}
switch(comanda) {
case 'A': {if (oprire==0)
{
Glcd_Fill(0x00);
i=i-5;
Glcd_Write_Text(afisare, i, 3, 1); // Scrie txt_afis in pozitia i, pagina 3,
culoare inversata
Vdelay_ms(viteza); break;
40

}
}
case 'D': {if (oprire==0)
{
Glcd_Fill(0x00);
i=i+5;
Glcd_Write_Text(afisare, i, 3, 1); // Scrie txt_afis in pozitia i, pagina 3,
culoare inversata
Vdelay_ms(viteza); break;
}
}
}
}
}





3.6 Programele de funcionare scrise n Visual Basic.

3.6.1 Descrierea interfeelor grafice utilizator

3.6.2 Programele de funcionare scrise n Visual Basic.

Main:

Imports System.IO.Ports

Class Main



Private Sub IesireToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles IesireToolStripMenuItem.Click
End

End Sub

Private Sub MatriceDeLEDurilimbajDeAsamblareToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
MatriceDeLEDurilimbajDeAsamblareToolStripMenuItem.Click
41

cmd_Pct31.Show()
End Sub

Private Sub MatriceDeLEDurilimbajMikroCToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MatriceDeLEDurilimbajMikroCToolStripMenuItem.Click
cmd_pct32.Show()

End Sub

Private Sub Afisaj7SegmenteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Afisaj7SegmenteToolStripMenuItem.Click
cmd_pct33.Show()
End Sub

Private Sub LCDGraficMikroCToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles LCDGraficMikroCToolStripMenuItem.Click
cmd_pct34.Show()
End Sub

Private Sub LCDTextMikroCToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles LCDTextMikroCToolStripMenuItem.Click
cmd_pct35.Show()
End Sub

Private Sub InterfeteGraficeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles InterfeteGraficeToolStripMenuItem.Click

End Sub

Private Sub VisualStudio2010ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles VisualStudio2010ToolStripMenuItem.Click
cmd_p.Show()


End Sub

Private Sub Textbox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles PORTSER.TextChanged


End Sub

Private Sub PORTSER_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles PORTSER.TextChanged
PORTSERIAL = PORTSER.Text
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port = New IO.Ports.SerialPort


End Sub

Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
port = New SerialPort(PORTSERIAL, 4800, Parity.None, 8, StopBits.One)
End Sub

Private Sub cmd_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_exit.Click
End

End Sub
End Class

Limbaj de asamblare :


Imports System.IO.Ports


Class cmd_pct31


42

Private Sub cmd_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_exit.Click
Close()



End Sub

Private Sub cmd_Efect1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect1.Click
port.Open()
port.Write("1")
port.Close()

End Sub

Private Sub cmd_viteza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_viteza.Click
port.Open()
port.Write("+")
port.Close()
End Sub

Private Sub cmd_Efect2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect2.Click
port.Open()
port.Write("2")
port.Close()
End Sub

Private Sub cmd_Efect3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect3.Click
port.Open()
port.Write("3")
port.Close()
End Sub

Private Sub cmd_Efect4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect4.Click
port.Open()
port.Write("4")
port.Close()
End Sub

Private Sub cmd_aprindere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_aprindere.Click
port.Open()
port.Write("E")
port.Close()
End Sub

Private Sub cmd_Stingere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_Stingere.Click
port.Open()
port.Write("R")
port.Close()
End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_micsorare.Click
port.Open()
port.Write("-")
port.Close()
End Sub

Private Sub cmd_pornire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_pornire.Click
port.Open()
port.Write("W")
port.Close()
End Sub

Private Sub cmd_oprire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_oprire.Click
port.Open()
port.Write("Q")
port.Close()
End Sub

43

Private Sub cmd_pct31_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
port = New SerialPort(PORTSERIAL, 4800, Parity.None, 8, StopBits.One)
End Sub
End Class


Leduri MicroC:

Imports System.IO.Ports

Public Class cmd_pct32


Private Sub cmd_Efect1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect1.Click
port.Open()
port.Write("1")
port.Close()
End Sub

Private Sub cmd_Efect2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect2.Click
port.Open()
port.Write("2")
port.Close()
End Sub

Private Sub cmd_Efect3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect3.Click
port.Open()
port.Write("3")
port.Close()
End Sub

Private Sub cmd_Efect4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_Efect4.Click
port.Open()
port.Write("4")
port.Close()
End Sub

Private Sub cmd_aprindere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_aprindere.Click
port.Open()
port.Write("A")
port.Close()
End Sub

Private Sub cmd_Stingere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_Stingere.Click
port.Open()
port.Write("S")
port.Close()
End Sub

Private Sub cmd_viteza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_viteza.Click
port.Open()
port.Write("+")
port.Close()
End Sub

Private Sub cmd_micsorare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_micsorare.Click
port.Open()
port.Write("-")
port.Close()
End Sub

Private Sub cmd_pornire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_pornire.Click
port.Open()
port.Write("P")
port.Close()
End Sub
44


Private Sub cmd_oprire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_oprire.Click
port.Open()
port.Write("O")
port.Close()
End Sub

Private Sub cmd_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_exit.Click
Close()

End Sub

Private Sub cmd_pct32_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
port = New SerialPort(PORTSERIAL, 4800, Parity.None, 8, StopBits.One)
End Sub
End Class

Afisor cu 7 segmente:

Imports System.IO.Ports

Public Class cmd_pct33

Private Sub cmd_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_exit.Click
Close()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_stop.Click
port.Open()
port.Write("O")
port.Close()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_reset.Click
port.Open()
port.Write("R")
port.Close()
End Sub

Private Sub cmd_start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_start.Click
port.Open()
port.Write("P")
port.Close()
End Sub

Private Sub cmd_pct33_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
port = New SerialPort(PORTSERIAL, 4800, Parity.None, 8, StopBits.One)
End Sub
End Class

LCD graphic:

Imports System.IO.Ports


Public Class cmd_pct34

Private Sub cmd_viteza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_viteza.Click
port.Open()
port.Write("W")
port.Close()
End Sub
45

Private Sub cmd_micsorare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_micsorare.Click
port.Open()
port.Write("S")
port.Close()
End Sub
Private Sub cmd_stanga_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_stanga.Click
port.Open()
port.Write("A")
port.Close()
End Sub
Private Sub cmd_oprire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_oprire.Click
port.Open()
port.Write("O")
port.Close()
End Sub
Private Sub cmd_dreapta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_dreapta.Click
port.Open()
port.Write("D")
port.Close()
End Sub
Private Sub cmd_pornire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_pornire.Click
port.Open()
port.Write("P")
port.Close()
End Sub

Private Sub Comenzi_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs)

End Sub

Private Sub cmd_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_exit.Click
Close()

End Sub

Private Sub cmd_pct34_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
port = New SerialPort(PORTSERIAL, 4800, Parity.None, 8, StopBits.One)
End Sub
End Class

LCD text:

Imports System.IO.Ports

Public Class cmd_pct35

Private Sub cmd_stanga_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port.Open()
port.Write("A")
port.Close()
End Sub

Private Sub cmd_viteza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port.Open()
port.Write("W")
port.Close()
End Sub

Private Sub cmd_micsorare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port.Open()
port.Write("S")
port.Close()
End Sub

Private Sub cmd_dreapta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port.Open()
port.Write("D")
port.Close()
46

End Sub

Private Sub cmd_pornire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port.Open()
port.Write("P")
port.Close()
End Sub

Private Sub cmd_oprire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
port.Open()
port.Write("O")
port.Close()
End Sub

Private Sub cmd_pct35_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
port = New SerialPort(PORTSERIAL, 4800, Parity.None, 8, StopBits.One)
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs)

End Sub

Private Sub cmd_stanga_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_stanga.Click
port.Open()
port.Write("A")
port.Close()
End Sub

Private Sub cmd_dreapta_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_dreapta.Click
port.Open()
port.Write("D")
port.Close()
End Sub

Private Sub cmd_viteza_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_viteza.Click
port.Open()
port.Write("W")
port.Close()
End Sub

Private Sub cmd_micsorare_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_micsorare.Click
port.Open()
port.Write("S")
port.Close()
End Sub

Private Sub cmd_pornire_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_pornire.Click
port.Open()
port.Write("P")
port.Close()
End Sub

Private Sub cmd_oprire_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmd_oprire.Click
port.Open()
port.Write("O")
port.Close()
End Sub

Private Sub cmd_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
cmd_exit.Click
Close()

End Sub

Private Sub Comenzi_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs)

End Sub
End Class
47













BIBLIOGRAFIE
[1] ***,LED,
https://www.google.ro/search?q=neon&source=lnms&tbm=isch&sa=X&ei=ncTOUpzjIIXQhAfRrYGoBQ&
ved=0CAcQ_AUoAQ&biw=1366&bih=676#q=led&tbm=isch&imgdii=_, accesat n data de 09.12.2013
[2] LCD,
https://www.google.ro/search?q=neon&source=lnms&tbm=isch&sa=X&ei=ncTOUpzjIIXQhAfRrYGoBQ&
ved=0CAcQ_AUoAQ&biw=1366&bih=676#q=lcd-uri&tbm=isch&imgdii=_, accesat n data de
09.12.2013.
[3] ***, UNI-DS6 Development System, http://www.mikroe.com/unids/, accesat n data de
09.12.2013.