Napravite Debug Display za mikrokontrolere: 6 koraka

Napravite Debug Display za mikrokontrolere: 6 koraka

Sadržaj:

Anonim

Ovaj zaslon dolazi vrlo praktično ako radite s ADC funkcijom mikrokontrolera.

Potrebno je samo dvije igle za kontrolu zaslona (tri ako želite kontrolirati zasun). Sa dva sedam segmenta može prikazati do 0xFF kao hex. To je cijeli 8-bitni raspon, što je najčešće korištena promjenjiva širina za male UC-ove.

Napravio sam ga jer konačna aplikacija nema zaslon i htio sam znati što se događa prije nego što sam ga dovršio.

Trebate dva 74HC959 smjenska registra, dva sedam-segmentna displeja i 14 (16) otpornika. Trebate 16 ako želite koristiti točkice, koje nisu implementirane u softver. No korištenje točaka proširilo bi prikazive vrijednosti na 10bit ili 0-1027. Ostavljam na vama da ovo shvatite.

Pribor:

Korak 1: Shematski prikaz

Mi koristimo dva 74HC595 registra pomaka za povezivanje sedam segmentnih prikaza. Bilo da koristite zajedničke anode ili zajedničke katode 7-segmentima morate prilagoditi krug. Koristio sam uobičajene katode. Što znači da je svaki segment jedan zeleni LED a katode svih LED dioda su povezane. (Pinovi 3 i 8 na zaslonu od 7 seg.)

Registri za prebacivanje rade na ovaj način:

Svaki put kada primijenite impuls na ulazu pomaka, trenutno stanje pin-a serijskog ulaza pomiče se u memoriji 74HC595. Svaki put kad stigne impuls na ulazu zasuna, stanje interne memorije koristi se za pogon izlaza.

Nakon 8 ciklusa prebacivanja, prvi ulaz se ponovno prebacuje na pin9 i može se koristiti kao ulaz u drugi 74HC595. Ovo se također naziva lanac tratinčica.

74HC595 može voziti do 70mA ukupno, tako da moramo prilagoditi otpornike na način da struja kroz svaki LED segment ostaje ispod 9mA, što je oko 470 Ohm za 5V i korištene zaslone.

Korak 2: Register prebacivanja 75HC595

Pogled na sliku govori vam koje pinove trebate spojiti.

Igle se broje protiv satova počevši od oznake na IC-u ako je pogledate s vrha.

Spojite pin 1 - 7 i pin 15 na pinove 7-segmenta.

Pin 8 i 13 moraju biti spojeni na masu (GND ili negativ terminal baterije)

Pin 9 je spojen na pin 14 sljedeće IC.

Pin 10 i pin 16 moraju biti spojeni na napon napajanja (VCC ili pozitivni priključak baterije)

Pin 11, 12 i 14 su sučelje koje se pokreće pomoću mikrokontrolera, povezite ih s tro-pin pinheader za vanjske sučelja.

Korak 3: Izgradite zaslon

Iako bi bilo moguće rezati ploču s običnim pločicama, odlučio sam se na cijelu stvar na ploči s tankom bakrenom žicom.

Ova bakrena žica je premazana, ali se premaz može spaliti s malo rastaljenog kositra. S njom je vrlo lako uspostaviti veze. Samo tin jedan kraj, lemiti ga na pin, a zatim ga protežu na drugi pin i spali izolaciju gdje želite lemiti ga. Onda ga lemiti na pin i izrezati ostatak. 30W lemilica poput ove iz Obrtnika je više nego dovoljna za taj posao.

Koristio sam male 1206 SMD otpornike, jer se lijepo uklapaju ispod sedam segmentnih zaslona.

Ali nakon svega, morate sami sastaviti ploču i naravno možete uzeti bilo koji otpornik koji vam se sviđa.

Korak 4: Pronađite redoslijed dijelova

Konačno moramo napisati funkcije kako bismo prikazali nešto smisleno.

Glavni je problem sada pronaći pravi segment - kontrolni slijed. Isprva pokušajte gurnuti jedan 1 kroz cijeli registar pomaka.

Primijenite visoki na serijski ulaz i impulsni pomak jedanput. Sada pulsirajte zasun jednom i vidite koji segmenti se upale.

Ako opet pritisnete gumb za pomak i zasun, sljedeći segment će se upaliti i tako dalje.

Konačno imate redoslijed svih segmenata i možete ih prenijeti u binarne brojeve.

Korak 5: Napišite kod

Htio sam koristiti zaslon s mojim AVR mikrokontrolerima. Tako sam napisao *.h datoteku koja bi mogla biti uključena u bilo koji projekt.

Ako ste drukčije ožičili ploču, možda ćete morati podesiti niz kontrolnog segmenta.

Da biste ga koristili, morate podesiti pin-definicije u datoteci debug.h (prvih 12 redaka).

U glavnoj aplikaciji morate dodati sljedeće retke:

#include "debug.h"

initdebug (); / / Ovo inicijalizira izlazne ulaze navedene u debug.h

Tada možete prikazati bilo koju 8bit varijablu samo nazivajući debug funkciju s njom. reći da se varijabla naziva brojač, a trenutna vrijednost brojača prikazuje:

ispravljanje (brojač);

Savjeti:

  • Dodajte malo vremena kašnjenja nakon poziva debug () da biste imali vremena za čitanje vrijednosti.
  • Kada spojite shift i latch zajedno, samo definirati dva porta za isti pin. Svaki put kada se pomak pokrene, on je također zaključao trenutno stanje, što znači da zaslon treperi dok su mjenjači učitani. Ako to učinite brzo u usporedbi s vremenom koje ste ostavili na zaslonu, o.k.
  • Za prikaz 16-bitne vrijednosti ili ga podijeliti na 256 i prikazati rezultat ili odvojiti visoki bajt i niski bajt te ih prikazati jedan za drugim s malom kočnicom između njih.

Korak 6: Testirajte ga

Da biste testirali zaslon, čini se da je idealno upotrijebiti adapter za slaganje attiny2313 koji sam objavio u ovom uputstvu:

www.instructables.com/id/Make-a-breadboard-adapter-for-your-AVR-microcontroller

Program ugrađenog videa samo se broji od 0 do 0xFF i natrag.

Video: