Sommario:

Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti: 6 passaggi
Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti: 6 passaggi

Video: Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti: 6 passaggi

Video: Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti: 6 passaggi
Video: как сделать Propeller LED Pendulum Clock, используя Arduino NANO, JLCPCB 2024, Luglio
Anonim
Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti
Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti

Ho appena iniziato a lavorare con il controller pic, un mio amico mi ha chiesto di costruire un cronometro da esso. Quindi non ho un'immagine hardware da condividere, ho scritto il codice e l'ho simulato sul software Proteus.

qui ho condiviso lo schema per lo stesso.

sono definiti tre millisecondi variabili, secondi, minuti

qui abbiamo usato l'interruzione del timer di 10 ms, per ogni 1000 millisecondi, la variabile dei secondi aumenterà, per ogni 60 secondi la variabile dei minuti aumenterà.

Passaggio 1: cose necessarie

1 controllore pic18f4520

2 display a sette segmenti

3 transistor bc547

4 interruttori per start/stop/reset

5 resistenze 330E, 10K, 1K

6 scarica mikroC per la foto

7 scarica proteus

Passaggio 2: logica del codice e visualizzazione

Logica del codice e visualizzazione
Logica del codice e visualizzazione
Logica del codice e visualizzazione
Logica del codice e visualizzazione

Che cos'è un display a sette segmenti?Un display a sette segmenti (SSD) è uno dei display più comuni, economici e semplici da usare. Sembra sopra.

qui dobbiamo usare il tipo a catodo comune del display a 7 segmenti - Nell'SSD di tipo a catodo comune, il terminale -ve di tutti i LED è comunemente collegato al pin "COM". Un segmento può essere illuminato quando viene assegnato "1" al rispettivo segmento LED e la massa è collegata al comune. Gli interni sono riportati in figura 2.

Passaggio 3: display di guida con microcontrollore

Display di guida con microcontrollore
Display di guida con microcontrollore

Nel mio circuito, ho usato il transistor NPN BC547.

Per il semplice utilizzo di un BJT come interruttore, le giunzioni emettitore-collettore vengono cortocircuitate quando c'è un segnale di ingresso al terminale di base, altrimenti rimane interrotto. L'ingresso deve essere fornito tramite un resistore adatto.

Passaggio 4: perché il multiplexing?

Spesso abbiamo bisogno di usare due, tre o più SSD e anche questo usando solo un singolo MCU, ma un problema che affrontiamo è la mancanza di pin I/O nell'MCU, poiché un SSD richiederebbe 8 pin, e quindi tre SSD ci vorrebbero 24 pin. In pic18, abbiamo solo 48 pin I/O. Allora qual è la soluzione?

Una possibilità è che usiamo un MCU più grande con più pin I/O. Ma poi siamo ancora limitati a un massimo di 3 SSD che possono essere utilizzati. Un'altra soluzione molto migliore e consigliata a questo problema è quella di multiplexare i display a sette segmenti.

Wikipedia dice Nelle telecomunicazioni e nelle reti di computer, il multiplexing (noto anche come muxing) è un metodo mediante il quale più segnali di messaggi analogici o flussi di dati digitali vengono combinati in un segnale su un mezzo condiviso. L'obiettivo è condividere una risorsa costosa.'Quello che intendiamo per multiplexing del display a sette segmenti è che utilizzeremo solo 7 porte di uscita per fornire il display su tutti gli SSD.

Passaggio 5: come ottenere questo?

Qui, useremo "Persistenza della visione". Ora devi aver già superato questo termine prima. Sì, questa è la stessa tecnica utilizzata nella cinematografia (visualizzare le immagini così velocemente che il nostro cervello non è in grado di distinguere alcun ritardo tra due immagini consecutive). Allo stesso modo, quando muxiamo più di un SSD, mostriamo solo un SSD alla volta e passiamo dall'uno all'altro così velocemente che il nostro cervello non riesce a distinguerli.

Diciamo che ogni display è attivo solo per 5 millisecondi alla volta, cioè viene illuminato 1/0,0045 volte al secondo, che è approssimativamente uguale a 222 volte/secondo. I nostri occhi non possono percepire un cambiamento così veloce, e quindi ciò che vediamo è che tutti i display funzionano contemporaneamente. Ciò che sta effettivamente accadendo nell'hardware è che l'MCU dà '1' al pin (ricordate, dare '1' alla base di un BJT mette in cortocircuito la giunzione del collettore e dell'emettitore?), Che è collegato alla base del transistor di i rispettivi display, mantiene la porta 'ON' per 5 millisecondi, quindi la spegne di nuovo. Questa procedura viene inserita in un ciclo infinito, in modo che vediamo il display continuamente.

Passaggio 6: algoritmo di multiplexing

Algoritmo di multiplexing
Algoritmo di multiplexing

Definire due porte nel codice, una per la porta dati del segmento e la porta di controllo del segmento.

il trucco qui è visualizzare i dati su tutti e 7 i segmenti. e attiva l'unico pin di controllo su cui devi visualizzare quei dati. modificare i dati e spostare il pin di controllo.

qui in questo istruibile abbiamo usato il multiplexing a 6 cifre, basta passare attraverso il file c allegato e lo otterrai cancellato.

Consigliato: