În acest proiect, vom proiecta și asambla un ceas digital pe un microcontroler. Ca piatră vom folosi microcontrolerul ATMEGA 16 și 6 indicatori de șapte segmente (denumiți în continuare pur și simplu indicatori sau afișaje). Codul de program dezvoltat pentru ATMEGA 16 poate fi ușor utilizat pe alte pietre precum ATMEGA 32, ATMEGA 8515 și altele.
Deci, ceasul nostru digital funcționează așa. Când se aplică tensiunea, indicatorii sunt setați la zerourile din formularul "00:00:00", respectiv, ore, minute și secunde. Pentru a seta ora, vom folosi două butoane. Butonul S 1 este necesar pentru a seta minutele, atunci când este apăsat, incrementarea variabilei care conține minute este incrementată cu 1, când valoarea ajunge la 59, este resetată și numărătoarea inversă începe de la început, adică de la zero.
În mod similar, funcționează butonul S2, utilizat doar pentru a seta variabila responsabilă pentru ceas.
Schema ceasului de pe microcontroler
Diagrama de mai jos arată schema noastră, caracterul specific al schemei este acela că toți indicatorii sunt gestionați utilizând un singur port PORTB. Cu ajutorul acestuia, o singură cifră este înregistrată unul câte unul în indicator. Pentru includerea alternativă, și anume indicarea dinamică este responsabilă de PORTC. Care este indicația dinamică a fost spusă mai devreme. Este important să rețineți că toate afișările cu un catod comun, astfel încât să activați un afișaj, trebuie să trimiteți un semnal de stare scăzut la ieșirea comună sau pur și simplu "0".
Important! Pentru funcționarea corectă a ceasului digital, este necesar ca generatorul intern de piatră să fie reglat la o frecvență de 4 MHz.
Program de cod de ceas
Mai jos este codul ceasului de pe microcontrolerul ATMEGA16. Programul a fost scris folosind AVR Studio 5. Din nou, acest ceas lucrează de la un generator de ceas intern. Care are o anumită eroare, astfel încât perioada de o secundă se poate schimba. Și le atârnați pe perete sau nu și verificați-le cât timp decideți.