Display Matriceal - 18 Februarie 2011 - Scheme electronice
Principală » 2011 » Februarie » 18 » Display Matriceal
7:10 PM
Display Matriceal

Articolul de faţă prezintă o aplicaţie interesantă a binecunoscutului microcontroller PIC16F84 de ta Microchip şi anume un afişaj matriceal animat de 8x8 puncte cu LED-uri.
În acest montaj este recomandat să se utilizeze microcontrollerul PIC16F84 şi nu PIC16C84, deoarece PIC16C84 nu poate fi programat decât o dată, pe când PIC16F84 este fabricat în tehnologie "Flash", el putând fi rescris de până la 1000 de ori. Deoarece microcontrollerul PIC16F84 nu are suficiente porţi I/O pentru a alimenta direct toate LED-urile, liniile RB0-RB7 sunt utilizate ca un bus de date conectate la intrările D0-D7 a două flip-flop-uri octale. Ieşirile acestor flip-flop-uri alimentează rândurile şi coloanele display-ului. RA0 şi RA1 sunt utilizate ca semnal de ceas pentru cele două flip-flop-uri.
În figura 1 este prezentată schema internă a circuitului 74HC374.
Cititorul se poate întreba pe bună dreptate dacă în loc de 74HC374 poate utiliza 74LS374, 74C374, 74S374, 74F 374, 74ALS374, 74HC TLS374, etc.. Răspunsul este că atunci când a fost proiectat circuitul, autorul a folosit data-sheet-ul pentru Fairchild Semiconductor 74HC 374. Folosirea altor circuite logice nu a fost testată şi nu este sigur că va conduce la rezultatul optim. Schema a fost proiectată ţinând cont de curenţii din circuit, caracteristicile de timing şi plaja de tensiuni acceptabile a circuitului 74HC374. În cazul altui circuit există riscul să se obţină imagini eronate, timp redus de viaţă a bateriei, etc.
În figura 2 este prezentată schema circuitului. Cele 8 rezistoare limitează curentul prin LED-uri. Consumul mic al acestui montaj, precum şi plaja mare de valori a tensiunii de alimentare permise pentru PIC16F84 şi pentru cele două latch-uri permit alimentarea montajului la o baterie cu litiu CR2032 de 3V sau la 2 baterii AA legate în serie. Alimentat la bateria cu litiu, montajul funcţionează câteva zile, iar la două baterii AA funcţionează de la câteva zile la câteva săptămâni, în funcţie de caracteristicile componentelor alese şi LED-urilor. Cristalul ales este de 4MHz, această frecvenţă fiind suficientă pentru montajul de faţă, în program fiind introduse mai multe linii de întârziere (delay), iar reglarea vitezei de afişare putând fi făcută foarte uşor prin modificarea timpilor de întârziere din program.

În figurile 3 şi 4 sunt prezentate cele două feţe ale plăcii de bază (ce conţine microcontrollerul, circuitele integrate şi restul componentelor, cu excepţia diodelor electroluminiscente). Placa de afişare (cu LED-uri) este prezentată în figurile 5 şi 6 (ambele feţe). Varianta aleasă, cu două plăci suprapuse şi conectate între ele prin conectoare de tip "header", este foarte convenabilă din punctul de vedere al spaţiului.



Tehnica folosită pentru a realiza display-ul este de a lipi întâi doar un terminal al LED-ului, de a-l alinia şi apoi de a lipi celălalt terminal. Nealinierea LED-urilor va duce la obţinerea unei imagini deformate şi neuniform luminate, fapt care poate altera sau chiar compromite efortul de realizare a acestui modul electronic. Ca să scăpaţi de osteneala realizării plăcii de afişare, puteţi să folosiţi display-uri dot-matrix 8x8 realizate de firma Lite-On sau de altele din domeniu.



Variabilele FrameRate şi MultiplexRate controlează viteza de afişare. Pe ecran dorim să apară imaginea din figura 7 pentru un număr de 256 ori. Pentru aceasta se va scrie: 
CALL              BalI01
MOVLW         H'08'    - De câte ori dorim să apară această imagine;
CALL              RepeatFrame
BalI01              MOVLW           B'11111111'    - Dorim ca toate LED-uri!e să fie stinse ("1" peste tot);
MOVWF         Screen0           - Pentru rândurile 1, 2. 3, 4, 6, 7, 8;
MOVWF         Screen0+H'1'
MOVWF         Screen0+H'2'
MOVWF         Screen0+H'3'
MOVWF         Screen0+H'4'
MOVWF         Screen0+H'5'
MOVWF         Screen0+H'6'
MOVWF         Screen0+H'7'
MOVLW         B'11110111' - Dorim să fie aprins LED-ul numărul 5;
MOVWF         Screen0+H'4' - Din rândul 5;
RETLW           0

Şirul de 8 biţi reprezintă starea LED-urilor pentru rândul selectat, "1" fiind valoarea pentru starea "stins" şi "0" pentru starea "aprins". Screen0+H'1' reprezintă asignarea stării rândului de LED-uri pentru rândul 2, +H'3' pentru rândul 4, etc.. Bineînţeles, cu ajutorul a 4 latch-uri puteţi extinde montajul obţinând un display 16x16 LED-uri care vă permite să creaţi animaţii mai complexe dar va trebui să lipiţi toate cele 256 LED-uri (!!!) iar durata animaţiei este foarte scurtă, din cauza memoriei limitate a PIC-ului.

În figurile 8a, b, c şi 9a, b, c sunt prezentate layerele electrice şi neelectrice pentru cele două plăci de circuit imprimat.
Dacă  doriţi  să  programaţi  animaţia  dumneavoastră personală aveţi nevoie de un asamblor adecvat si de un programator - recomand programul MPLAB de la Microchip şi programatorul PICstart Plus de la aceeaşi firmă.






Bibliografie:
-  PIC16FB4A Data Sheet -Microchip
- MM74HC374 Data Sheet -Fairchild Semiconductors


Vizualizări: 1935 | Adăugat de: SchemeElectronice | Tag-uri: display, Scheme electronice, electronica, matriceal | Rating: 0.0/0
Total comentarii : 0
Doar utilizatorii înregistraţi pot adăuga comentarii
[ Înregistrare | Logare ]