Lav en fejlfindingsskærm til mikrocontrollere: 6 trin

Lav en fejlfindingsskærm til mikrocontrollere: 6 trin

Indholdsfortegnelse:

Anonim

Denne skærm kommer meget praktisk, hvis du arbejder med ADC-funktionen af ​​mikro controllere.

Det har kun brug for to ben til at styre displayet (tre hvis du også gerne vil kontrollere låsen). Med to syv segmenter kan det vise op til 0xFF som hex. Det er hele 8bit-rækken, hvad er den mest anvendte variabelbredde for små uC'er.

Jeg bygget det, fordi den endelige ansøgning ikke har en skærm, og jeg ønskede at vide, hvad der sker, før jeg færdiggør det.

Du har brug for to 74HC959 skifteregister, to syv segmenter og 14 (16) modstande. Du har brug for 16, hvis du vil bruge prikkerne, som ikke implementeres i softwaren. Men ved hjælp af prikkerne udvides de viste værdier til 10bit eller 0-1027. Jeg overlader det til dig at finde ud af det.

forsyninger:

Trin 1: Den skematiske

Vi bruger to 74HC595 shift-registers til at interface de syv segment displays. Uanset om du bruger almindelige anoder eller fælles katode 7-segmenter, skal du justere kredsløbet. Jeg brugte almindelige katoder. Hvad betyder, at hvert segment er en grøn LED, og ​​katoderne på alle lysdioder er forbundet sammen. (Pins 3 og 8 på 7-tommers display)

Skiftregisterene virker på denne måde:

Hver gang du anvender en puls ved skiftindgangen, skiftes den nuværende tilstand for den serielle indgangsstift i hukommelsen til 74HC595. Hver gang en puls ved låseindgangen ankommer, bruges tilstanden til den interne hukommelse til at drive udgangene.

Efter 8 skiftcykler skiftes den første indgang til pin9 igen og kan bruges som input til en anden 74HC595. Dette kaldes også en daisy chain.

74HC595 kan køre op til 70mA i alt, så vi skal justere modstandene på en måde, at strømmen gennem hvert LED-segment forbliver under 9mA, hvilket er ca. 470 Ohm for 5V og de anvendte skærme.

Trin 2: Skiftregistreringen 75HC595

Et kig på billedet fortæller dig, hvilke stifter du skal tilslutte.

Stifterne tælles med anti-clock-klogt fra begyndelsen af ​​mærket på IC'en, hvis man ser på det fra toppen.

Tilslut pin 1 - 7 og pin 15 til stifterne i 7-segmentet.

Pin 8 og 13 skal tilsluttes jord (GND eller negativ terminal på batteriet)

Pin 9 er forbundet til pin 14 i den næste IC.

Pin 10 og pin 16 skal tilsluttes til forsyningsspændingen (VCC eller den positive terminal på batteriet)

Pin 11, 12 og 14 er grænsefladen, der skal drives af mikrocontrolleren, forbinder disse med tre-pin pinheader til ekstern grænseflade.

Trin 3: Opbygget skærm

Selv om det ville have været muligt at ætse et brugerdefineret printkort, valgte jeg at bygge hele det på brødbræt med tynd kobbertråd.

Denne kobbertråd er belagt, men belægningen kan brændes ned med en smule smeltet tin. Det er meget nemt at lave forbindelser med det. Bare tin den ene ende, lodd den til stiften og stræk den derefter til den anden stift og brænd den isolation, hvor du vil lodde den. Løs det derefter på stiften og skær resten. Et 30W loddejern som dette fra Craftsman er mere end nok til jobbet.

Jeg brugte små 1206 SMD modstande, fordi disse passer fint under de syv segment skærme.

Men trods alt skal du selv sammensætte brættet, og du kan selvfølgelig også tage enhver modstand du kan lide.

Trin 4: Find rækkefølgen af ​​segmenter

Endelig skal vi skrive funktionerne for at vise noget meningsfuldt.

Det største problem er nu at finde det rigtige segment - kontrol sekvens. Prøv først at skubbe en enkelt 1 gennem hele skiftregisteret.

Anvend en høj til den serielle indgang og puls skiftet én gang. Nu puls låsen en gang og se, hvilke segmenter tænder.

Hvis du derefter rammer skifte- og låseknappen igen, lyser næste segment og så videre.

Endelig har du rækkefølgen af ​​alle segmenterne, og du kan overføre dem til binære tal.

Trin 5: Skriv koden

Jeg ønskede at bruge skærmen med min AVR mikrocontrollere. Så jeg skrev en *.h-fil, der kunne indgå i ethvert projekt.

Hvis du har tilsluttet styret forskelligt, skal du muligvis justere segmentkontroll -opsætningen.

For at bruge det skal du justere pin-definieringen i filen debug.h (første 12 linjer).

I hovedapplikationen skal du tilføje følgende linjer:

#include "debug.h"

initdebug (); // Dette initialiserer de Output-porte, der er angivet i debug.h

Derefter kan du vise enhver 8bit-variabel ved blot at kalde fejlsøgningsfunktionen sammen med den. sig variablen kaldes tæller, så vises den aktuelle værdi af tælleren af:

debug (tæller);

Tips:

  • Tilføj noget forsinkelsestid efter indkaldelsen af ​​fejlfinding () for at have tid til at læse værdien.
  • Når du tilsluttes skift og lås sammen, skal du blot definere de to porte til samme pin. Hver gang skiftet udløses, lukkede det også den aktuelle tilstand, det vil sige displayet flimrer, mens skiftregisterene er indlæst. Hvis du gør det hurtigt i forhold til det tidspunkt, du lader displayet forblive det, er det alligevel
  • For at vise en 16bit-værdi dividerer du den med 256 og viser resultatet eller adskiller højbyte og lav byte og viser dem efter hinanden med en lille bremse imellem.

Trin 6: Test det

For at teste skærmbilledet synes det at være ideelt at bruge den tiliny2313 brødbrætadapter jeg offentliggjorde i denne instruerbare:

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

Programmet for den integrerede video tæller kun fra 0 til 0xFF og tilbage igen.

Videoen: