Lecția 6 1

Să presupunem că ați scris un program care ar trebui să emită numere. De exemplu: un ceas, un cronometru, un termometru etc. Puteți utiliza ecranul LCD pentru a afișa informațiile, dar din mai multe motive, nu este întotdeauna convenabil, frumos sau scump. Prin urmare, este utilizat un indicator cu șapte segmente, care este un set de 7 LED-uri.






De exemplu, luați în considerare indicatorul SA56, fiecare bord este LED-ul. În plus, ele pot fi combinate în moduri diferite. În acest caz, acordați atenție anodului comun, adică "+" Dacă picioarele 7, 6, 4 ... vor alimenta solul, atunci segmentele corespunzătoare a, b, c se vor aprinde ...

Lecția 6 1

Acum să ne dăm seama cum să înșurubăm totul la microcontroler.

Lecția 6 1

Pentru confortul propriu, notăm fiecare LED în ordine de la 0 la 6. Și conectați-le în funcție de numerele lor, de exemplu, la portul B.

Lecția 6 1

Deoarece avem în vedere o variantă cu un anod comun, firmware-ul va fi orientat și spre această variantă, adică Pentru a aprinde un segment, trebuie să furnizăm un port logic la port, pentru a opri necesitatea de a trimite o unitate logică. Pentru a converti firmware-ul la un catod comun, trebuie să inversați starea de ieșire a portului.







Deci, datele inițiale: 7segment cu un anod comun (comun "+"), trebuie să afișați toate numerele dintr-un rând de la 0 la 9, un astfel de numărător

Să începem cu 0. Vă uităm la imaginea cu numerele indicate de LED-uri, se dovedește că la lumina 0 este necesar să se aprindă toate LED-urile cu excepția 6.

Lecția 6 1

Deoarece numerele noastre LED corespund numerelor porturilor, trebuie să includeți picioarele de la 0 la 5 inclusiv. Pentru a le activa, trebuie doar să afișați valoarea PORTB = 0b00111111;

Se pare tot adevărat, dar nu uitați că avem un "+" comun, astfel încât LED-ul se aprinde, avem nevoie de ieșire 0 (la sol) la port. Deci inversați acest număr și obțineți PORTB = 0b11000000;

În mod similar 1: LED-urile 1 și 2, adică în cele din urmă, trebuie să ieșiți PORTB = 0b11111001;

Cred că în continuare vor înțelege în mod independent. Pentru cei care nu înțeleg ce înseamnă înregistrarea PORTB = 0b00111111; Vă recomandăm să citiți articolul despre configurația porturilor

Încercați acum să colectați informațiile primite într-o singură grămadă și să scrieți firmware-ul, care este cuprins între 0 și 9 și afișează informațiile primite pe indicator.


Nu este nimic complicat în firmware, se folosește operatorul de comutare, în funcție de numărul din variabila numerică care luminează LED-urile dorite.

Pentru a simula circuitul, nu sunt afișate rezistoare, în circuitul real este necesar să se limiteze curentul LED-ului, deci un rezistor trebuie atârnat pe fiecare picior.

A fost mai convenabil să se trateze indicația statică cu registrele de deplasare. Pentru că, în practică, o astfel de schemă nu este utilizată în mod corespunzător ...







Articole similare

Trimiteți-le prietenilor: