Cuprins:

Cronometru folosind Pic18f4520 în Proteus cu 7 segmente: 6 pași
Cronometru folosind Pic18f4520 în Proteus cu 7 segmente: 6 pași

Video: Cronometru folosind Pic18f4520 în Proteus cu 7 segmente: 6 pași

Video: Cronometru folosind Pic18f4520 în Proteus cu 7 segmente: 6 pași
Video: Creating a simple counter circuit using a PIC microcontroller with C language programming 2024, Iulie
Anonim
Cronometru folosind Pic18f4520 în Proteus cu 7 segmente
Cronometru folosind Pic18f4520 în Proteus cu 7 segmente

Tocmai am început să lucrez cu controlerul pic, unul dintre prietenii mei mi-a cerut să construiesc un cronometru din acesta. Deci nu am imagine de hardware de partajat, am scris cod și l-am simulat pe software-ul Proteus.

aici am împărtășit schema pentru același lucru.

sunt definite trei milisecunde variabile, secunde, minute

aici am folosit întreruperea temporizatorului de 10 ms, pentru fiecare 1000 de milisecunde, variabila de secunde va crește, pentru fiecare 60 de secunde variabila de minute va crește.

Pasul 1: Lucruri necesare

1 controler pic18f4520

2 afișaje cu șapte segmente

3 tranzistori bc547

4 comutatoare pentru pornire / oprire / resetare

5 rezistențe 330E, 10K, 1K

6 descărcați mikroC pentru pic

7 descărcați proteus

Pasul 2: Logica codului și afișarea

Logică și afișare cod
Logică și afișare cod
Logică și afișare cod
Logică și afișare cod

Ce este un afișaj cu șapte segmente? Un afișaj cu șapte segmente (SSD) este unul dintre cele mai comune, ieftine și mai ușor de utilizat afișaj. Arată ca mai sus.

aici trebuie să folosim tip de catod comun cu afișaj pe 7 segmente - În catodul comun de tip SSD, terminalul -ve al tuturor LED-urilor este în mod obișnuit conectat la pinul „COM”. Un segment poate fi luminat atunci când „1” este dat segmentului LED respectiv și masa este conectată la comun. Internele sunt date în figura 2.

Pasul 3: Afișaj de conducere cu microcontroler

Afișaj de conducere cu microcontroler
Afișaj de conducere cu microcontroler

În circuitul meu, am folosit tranzistorul NPN BC547.

Pentru utilizarea simplă a unui BJT ca întrerupător, joncțiunile emițător-colector sunt scurtcircuitate atunci când există un semnal de intrare la terminalul de bază, altfel rămâne întrerupt. Intrarea ar trebui să fie dată printr-un rezistor adecvat.

Pasul 4: De ce multiplexarea?

Adesea trebuie să folosim două, trei sau mai multe SSD-uri și asta folosind doar un singur MCU, dar o problemă cu care ne confruntăm este lipsa pinilor I / O din MCU, întrucât un SSD ar lua 8 pini și deci trei SSD-uri ar lua 24 de pini. În pic18, avem doar 48 de pini I / O. Deci, care este soluția?

O posibilitate este să folosim un MCU mai mare cu mai mulți pini I / O. Dar apoi suntem încă limitați doar la maximum 3 SSD-uri care pot fi utilizate. O altă soluție mult mai bună și recomandată pentru această problemă este multiplexarea afișajelor cu șapte segmente.

Wikipedia spune „În rețelele de telecomunicații și computere, multiplexarea (cunoscută și sub numele de muxing) este o metodă prin care mai multe semnale de mesaje analogice sau fluxuri de date digitale sunt combinate într-un singur semnal pe un mediu partajat. Scopul este de a împărtăși o resursă costisitoare. „Ceea ce înțelegem prin multiplexarea afișajului cu șapte segmente este că vom folosi doar 7 porturi de ieșire pentru a afișa toate SSD-urile.

Pasul 5: Cum se realizează acest lucru?

Aici vom folosi „Persistența viziunii”. Acum trebuie să aveți deja acest termen înainte. Da, aceasta este aceeași tehnică care este utilizată în cinematografie (afișează imagini atât de repede încât creierul nostru nu poate distinge niciun decalaj între două imagini consecutive). În mod similar, atunci când mux mai multe SSD, afișăm un singur SSD la un moment dat și trecem între ele atât de repede încât creierul nostru nu poate distinge între ele.

Să presupunem că fiecare afișaj este activ doar 5 milisecunde la un moment dat, adică se aprinde de 1 / 0,0045 ori pe secundă, aproximativ aproximativ 222 de ori / secundă. Ochii noștri nu pot simți o schimbare atât de rapidă și, prin urmare, ceea ce vedem este că toate afișajele funcționează simultan. Ce se întâmplă de fapt în hardware este că MCU dă „1” pinului (amintiți-vă, acordând „1” la baza unui BJT scurtcircuitați joncțiunea Colector și emițător?), Care este conectat la baza tranzistorului de afișajele respective, menține portul „PORNIT” timp de 5 milisecunde, apoi îl oprește din nou. Această procedură este pusă într-o buclă nesfârșită, astfel încât să vedem afișajul continuu.

Pasul 6: Algoritm de multiplexare

Algoritm de multiplexare
Algoritm de multiplexare

Definiți două porturi în cod, unul pentru portul de date segment și portul de control segment.

truc aici este afișarea datelor pe toate cele 7 segmente. și activați pinul de control pe care trebuie să afișați aceste date. schimbați datele și schimbați pinul de control.

aici, în acest instructable, am folosit multiplexarea cu 6 cifre, doar parcurgeți fișierul c atașat și veți obține ștergerea.

Recomandat: