Hex och I/O pinnar?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
morre95
Inlägg: 23
Blev medlem: 28 juli 2011, 12:35:04

Hex och I/O pinnar?

Inlägg av morre95 »

Jag försöker lära mig programmera PIC och som ni säkert kommer förstå av det här inlägget så har jag inte kommit så långt. Och så finns det en sak som jag inte fattar alls.

Säg att man har kopplat in en GK 7 segment display så här:
Bild
Controllern jag använder i schemat ovan var den första jag hittade i Eagle och mest där för att visa hur jag menar.

Om jag nu skriver "PORTB = 0x3f" så kommer en nolla att visas på displayen och skriver jag en "PORTB = 0x06" en etta osv. Det jag inte fattar är hur jag vet att det är just 0x3f som generera en nolla eller att 0x4f blir en trea. Är det någon som kan förklara det?

I boken jag läser så använder författaren PORTC och inte PORTB som det vist blev i mitt schema. Kanske inte har någon betydelse men jag tänkte i alla fall nämna det så att inte just det skapar en massa förvirring. Jag antar att det här är förvirrande nog ändå.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46962
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hex och I/O pinnar?

Inlägg av TomasL »

Om du tänker binärt istället för hexadecimalt, så kanske du kommer på det.
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Hex och I/O pinnar?

Inlägg av Klas-Kenny »

Det är inga konstigheter om du tänker efter lite.

En 7-segment display består av sju lysdioder, en lysdiod i varje segment.
Sätter du då utgången till 0x3F tänder du segmenten som är kopplade till utgång 0, 1, 2, 3, 4, och 5 (0x3F = b00111111), dvs. segment A, B, C, D, E och F, vilka utgör siffran 0.

Här kan du se vilket segment som är vilket:
Bild
Och punkten är då den som heter P i ditt schema.

Angående din koppling hoppas jag att du har motstånd till varje segment då du kopplat, annars kommer du att bränna utgångarna eller displayen!
morre95
Inlägg: 23
Blev medlem: 28 juli 2011, 12:35:04

Re: Hex och I/O pinnar?

Inlägg av morre95 »

Jaha, ibland kan man inte se skogen för alla träd som man brukar säga :oops: Jag har lyckats googla fram sidor där man förklarar detta med binära tal men det har ändå inte kopplat i mitt huvud. Så tack för svaren :tumupp:

@Klas-Kenny: Ja jag har 100 ohms motstånd till alla utgångar på displayen. Jag satte ihop schemat mest för att slippa försöka förklara med ord hur jag har kopplat.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hex och I/O pinnar?

Inlägg av sodjan »

> Ja jag har 100 ohms motstånd till alla utgångar på displayen...

Så länge som du håller till inomhus, och har en rimligt modern 7-seg display,
så är det onödigt lågt med 100 ohm till varje segment. Om du t.ex kör med
1 kohm istället så får du lägre strömförbrukning och mindre *risk* för att stora
och snabba ändringar i strömförbrukningen stör processorn på något annat sätt.

Om du dessutom (som du har ritat) kör katoden från displayen via en annan PIC-pinne,
så kommer all ström för hela displayen (d.v.s alla tända segment) att gå via denna pinne !

Är det så för att kunna växla display genom växla katodpinne (RD7 i ditt exempel) ?
Helt OK, så länge du har koll på max-strömmen per pinne (20 mA).

> Jag har lyckats googla fram sidor där man förklarar detta med binära
> tal men det har ändå inte kopplat i mitt huvud.

Ja, det är inte så stor anledning att programmera så mycket mer alls innan
i alla fall *det* är helt solklart... :-)
morre95
Inlägg: 23
Blev medlem: 28 juli 2011, 12:35:04

Re: Hex och I/O pinnar?

Inlägg av morre95 »

> Är det så för att kunna växla display genom växla katodpinne (RD7 i ditt exempel) ?
Exemplet jag har kopplat efter så används det två displayer. Så ja det är för att man ska kunna växla mellan displayerna. För så som jag har fått det förklarat för mig så ska man aldrig tända båda displayerna samtidigt. Antar att det har med de där 20mA/pinne du pratar om.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hex och I/O pinnar?

Inlägg av sodjan »

Nej, det har mer med att man inte vill använda 14 pinnar till två displeyer.
Eller 21 pinner till 3 o.s.v. Därför multiplexar man displayerna.

> Antar att det har med de där 20mA/pinne du pratar om.

Dels så kan du ju i alla fall inte köra segmenten från samma pinne, om
du inte vill att båda displayerna ska visa samma "siffra". Dels så är
nog 20 mA onödigt högt per segment i alla fall. Moderna 7-seg moduler
behöver bara ett par mA per segment, i alla fall inomhus...
Skriv svar