TIPS ‘N TRICKS

20 MAI 2008

Microchip continuă să ofere produse inovative mai mici, mai rapide, mai uşor de utilizat şi mai sigure. Microcontrolere (MCU) PIC® bazate pe flash sunt utilizate într-o gamă largă de produse de zi cu zi, de la detectoare de fum la produse industriale, auto şi medicale.
Utilizând un microcontroler LCD PIC pentru orice aplicaţie embedded se pot oferi avantajele unui control al sistemului şi o interfaţă cu utilizatorul prin intermediul unui LCD. Practica de proiectare pentru aplicaţii LCD poate fi îmbunătăţită prin implementarea acestor sugestii Tips ‘n Tricks. Sfaturile descriu circuite de bază şi blocuri software uzual utilizate pentru comanda ecranelor LCD.

TIP 1. – Depanare în circuit (ICD)
Există două caracteristici potenţiale la utilizarea MPLAB ICD în depanarea aplicaţiilor LCD. Prima este aceea prin care controlerul LCD poate “îngheţa” cât timp dispozitivul este întrerupt. A doua este aceea că pinii ICD sunt partajaţi cu segmentele de pe microcontrolerele PIC16F917/916/914/913. Atunci când se depanează, dispozitivul este oprit la punctul de întrerupere şi prin apăsarea de către utilizator a butonului de pauză. Dacă MPLAB ICD este configurat pentru a opri perifericele împreună cu dispozitivul, controlerul LCD va întrerupe şi aplica tensiuni DC pe ecranul LCD. În timp, aceste nivele de tensiune pot cauza deteriorarea ecranului. MCU PIC18F LCD au o caracteristică ce permite modulului LCD să continue să opereze cât timp dispozitivul se află în modul întrerupere pe timpul depanării. Aceasta este utilă pentru verificarea imaginii display-ului pe durata întreruperii şi pentru prevenirea deteriorării ecranului dacă durata întreruperii este mai mare. PIC16F917/916/914/913 multiplexează pinii ICSP şi ICD în pini partajaţi cu segmentele LCD 6 şi 7. Dacă un LCD este ataşat la aceşti pini, dispozitivul poate fi depanat cu MPLAB ICD; oricum, toate segmentele comandate de aceşti doi pini vor clipi şi vor fi incontrolabili. Imediat ce operaţia de depanare s-a sfârşit şi dispozitivul este programat cu modul de depanare dezactivat, segmentele în discuţie vor putea fi controlate corect.

TIP 2. – LCD în Modul Sleep
Dacă dispuneţi de o aplicaţie sensibilă din punct de vedere energetic şi care trebuie să afişeze date continuu, microcontrolerul PIC LCD poate fi pus în starea Sleep în timp ce modulul de driver LCD continuă să comande display-ul.
Pentru a opera LCD în modul Sleep sunt necesari numai doi paşi. Primul este existenţa unei surse de timp, alta decât oscilatorul principal, care să fie selectată ca sursă de ceas pentru LCD, deoarece pe durata întreruperii oscilatorul principal este întrerupt. Tabelul 2-1 prezintă opţiunile pentru diferite microcontrolere PIC LCD.
Al doilea este acela că bitul de activare a modului Sleep (SLPEN) trebuie readus la zero. În acest fel LCD-ul va continua să afişeze date cât timp componenta este în modul Sleep. Este uşor!

TIP 3. – Semnalizare LCD
Cu ajutorul unui ecran LCD informaţia poate fi afişată în mai multe feluri. De exemplu, cum poate fi indicat un semnal de atenţionare pe o porţiune a unui ecran LCD? O cale care să nu necesite segmente suplimentare este aceea de a crea un efect de clipire.
Priviţi o aplicaţie uzuală de ceas (Figura 3-1). Semnul “ : ” dintre indicarea orelor şi minutelor este în mod uzual făcut să clipească odată pe secundă (“activ” pentru o jumătate de secundă şi “oprit” pentru o jumătate de secundă). Aceasta confirmă funcţionarea ceasului în absenţa ticăiturilor sau a secundarului, uzuale în cazul ceasurilor analogice. Informarea utilizatorului cu privire la funcţionare are un scop foarte important. Dacă apare o cădere de tensiune, este uzual un comportament prin care tot afişajul de ceas să înceapă să clipească. Acest lucru oferă imediat informaţia că ceasul nu mai oferă informaţia de timp corectă. Atunci când utilizatorul potriveşte ceasul, clipirea este utilizată pentru identificarea noului mod de funcţionare, de exemplu clipirea orei indică modul de modificare a orei, iar clipirea minutelor arată că minutele sunt cele modificate. Într-un ceas simplu, semnalizarea prin clipire este utilizată pentru câteva motive diferite. Fără aceste efecte, ceasul digital uzual nu ar mai fi un dispozitiv aşa de prietenos.
Când ar trebui selectat oscilatorul intern RC (sau LFINTOSC) peste oscilatorul Timer1? Aceasta depinde de aplicaţia dvs. dacă este suficient de sensibilă din punct de vedere al timpului pentru a necesita sau nu precizia unui oscilator cu cristal pe Timer1. Dacă aveţi o aplicaţie de cronometrare, atunci că probabil aveţi un oscilator cu cristal de 32 kHz conectat la Timer1. Deoarece Timer1 continuă să opereze în modul Sleep, nu este nici o problemă în utilizarea Timer1 ca sursă de ceas pentru LCD. Dacă nu aveţi nevoie de utilizarea unui oscilator extern pe Timer1, atunci oscilatorul intern RC (INTRC sau LFINTOSC) este mai mult decât suficient pentru utilizare ca sursă de ceas pentru LCD şi el nu necesită componente externe.
Din fericire, clipirea este uşor de implementat.
Sunt multe căi de implementare în software a unui efect de clipire. Orice eveniment obişnuit poate fi utilizat pentru stabilirea perioadei de clipire. Un indicator de clipire poate fi trecut dintr-o stare în alta de fiecare dată când trece perioada de clipire. Fiecare caracter sau element de pe ecran care se doreşte să semnalizeze prin clipire poate fi asociat unui indicator de clipire corespunzător. Schema logică pentru actualizarea ecranului va arăta precum cea din figura 3-2.

TIP 4. – Interfaţă cu tastatură 4 x 4 care conservă pinii pentru comanda segmentelor LCD
O interfaţă digitală tipică pentru o tastatură 4 x 4 utilizează 8 pini digitali de I/O. Dar utilizarea acestor 8 pini ca intrări/ieşiri digitale poate lua din numărul de pini pentru comanda segmentelor, disponibili la interfaţa cu un LCD. Prin utilizarea a 2 pini digitali I/O şi a 2 pini analogici de intrare, este posibilă adăugarea unei tastaturi 4 x 4 la microcontrolerul PIC fără sacrificarea niciunuia dintre pinii de comandă LCD. Schema pentru anexarea tastaturii este prezentată în figura 4-1. Acest exemplu utilizează PIC18F8490, dar tehnica poate fi cu uşurinţă utilizată la oricare microcontroler PIC LCD. Cei doi pini I/O digitali utilizaţi sunt RB0 şi RB5, dar se pot utiliza oricare doi pini digitali I/O. Pinii analogici utilizaţi sunt AN0 şi AN1. Pentru citirea tastaturii trebuie urmăriţi paşii de mai jos:
1. Prima dată, treceţi RB0 în ieşire de nivel ridicat şi RB5 intrare (oferind o impedanţă mare).
2. Se realizează două conversii A/D succesive; prima pe AN0, apoi pe AN1.
3. Se salvează rezultatele conversiei conform variabilelor lor; de exemplu, Rezultat_RB0_AN0 şi Rezultat_RB0_AN1.
4. Apoi, se face RB5 ieşire de nivel superior şi RB0 ca intrare (oferind impedanţă ridicată).
5. Se fac două conversii succesive A/D; prima pe AN0, apoi pe AN1.
6. Se salvează rezultatul conversiei pe variabilele corespunzătoare; de exemplu, Rezultat_RB5_AN0 şi Rezultat_RB5_AN1.
7. Există acum 4 variabile care reprezintă apăsarea tastelor în fiecare cuadrant al tastaturii 4 x 4:
– Rezultat_RB0_AN0 . arată apăsarea tastei 1, 2, 4 sau 5
– Rezultat_RB0_AN1 . arată apăsarea tastei 7, 8, A sau0
– Rezultat_RB5_AN0 . arată apăsarea tastei 3, C, 6 sau D
– Rezultat_RB5_AN1 . arată apăsarea tastei 9, E, B sau F
8. În final se verifică fiecare valoare pentru a se vedea încadrarea pe coloană conform tabelului 4-1. Dacă aceasta este în intervalul ±10% dintr-o valoare, atunci se poate indica tasta corespunzătoare ce a fost apăsată.
9. Această buclă trebuie repetată la fiecare 20ms. Nu trebuie uitată o schemă de verificare. De exemplu, se va solicita ca paşii de mai sus să returneze aceeaşi valoare de două ori succesiv pentru a considera tasta respectivă apăsată. De asemenea se va solicita rezultatul neapăsării tastelor de cel puţin două ori înainte de a căuta o nouă apăsare a tastelor. La apăsarea simultană a mai multor taste, vor fi generate alte tensiuni decât cele valide prezentate în tabel. Aceste nivele pot fi fie ignorate, fie utilizate pentru alte funcţii, caz în care trebuie şi ele determinate.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

  • Folosim datele dumneavoastră cu caracter personal NUMAI pentru a răspunde comentariilor/solicitărilor dumneavoastră.
  • Pentru a primi raspunsuri adecvate solicitărilor dumneavoastră, este posibil să transferăm adresa de email și numele dumneavoastră către autorul articolului.
  • Pentru mai multe informații privind politica noastră de confidențialitate și de prelucrare a datelor cu caracter personal, accesați link-ul Politica de prelucrare a datelor (GDPR) si Cookie-uri.
  • Dacă aveți întrebări sau nelămuriri cu privire la modul în care noi prelucrăm datele dumneavoastră cu caracter personal, puteți contacta responsabilul nostru cu protecția datelor la adresa de email: gdpr@esp2000.ro
  • Abonați-vă la newsletter-ul revistei noastre