Hur fungerar shift-register?

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Användarvisningsbild
gunne
Inlägg: 2076
Blev medlem: 17 juni 2004, 15:00:31
Ort: sthlm
Kontakt:

Hur fungerar shift-register?

Inlägg av gunne »

Som titeln säger: hur fungerar shift-register? Är det samma sak som kallas räknare?

Jag är ute efter en krets som stegar igenom utportarna en efter en. Alltså första gången skickar en signal till kretsen så går den till första utpinnen, nästa gång till andra, nästa till tredje osv. Detta för att styra LED-matriser och 7-segmentsdisplayer från en mC.

Ett litet artikelnummer till elfa kanske? Och en liten förklaring om hur man kopplar tack...
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Du är ute efter en sånhär 4017
Användarvisningsbild
gunne
Inlägg: 2076
Blev medlem: 17 juni 2004, 15:00:31
Ort: sthlm
Kontakt:

Inlägg av gunne »

Den här alltså...
Bild

Kan någon förklara vad CL, R och Carry out betyder? Jag antar att pinnarna 1-11 är dem som stegas igenom.

Säg att jag vill skicka en signal till 0, sen till 1, till 2 ... osv hur skulle jag göra då? Koppla 12, 13, 14, 15 till mC och sen göra vad?

Jag har läst lite i databladet, men eftersom jag är ganska grön på elektronik så ger det inte så mkt...
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Inlägg av karlstedt »

Skulle gissa på att ben:

13 == clock input
14 == clock enable
15 == reset

clock enable lär behöva hållas hög

Det enda du behöver göra är att koppla in en klockpuls på CL så kommer den att räkna själv
babbage
Inlägg: 637
Blev medlem: 10 november 2004, 11:33:17
Ort: Sthlm

Inlägg av babbage »

Utan att gå in på specifika kretsar så är ett skiftsregister något som ser ut som nedan. En Johnson-räknare (även ibland kallad Moebius-räknare eller twisted ring counter, kärt barn har många namn) är väl strikt talat inte ett skiftesregister. Det finns olika typer av räknare (räknar på olika sätt) men en Johnson-räknare är som ett återkopplat skiftesregister.

Kod: Markera allt


     reg1 reg2   ---   regN 
     ___   ___         __
     |  |  |  |        |  |
clk--|> | -|> |       -|> |
in --|  |--|  |-- osv--|  |-- out
     |__|  |__|        |__|

ex: starttillstånd för alla register är 0 (det finns en reset)
     in  reg1 reg2 reg3 reg4
           0    0    0    0
clk1  1    1    0    0    0
clk2  0    0    1    0    0   
clk3  0    0    0    1    0
clk4  1    1    0    0    1
clk5  0    0    1    0    0
clk6  0    0    0    1    0
En förenklad beskrivning: Ovan visar ASCII-grafiken rektangulära lådor, dessa är någon komponent som lagrar värdet på ingången när det kommer en positiv flank på klocksignalen (klocksignalen går från 0 till 1). Oftast finns det även en resetsignal som tvingar komponenten att lagra värdet 0 oberoende av klocksignalen (ej inritad). Ett skiftesregister fungerar så att vid en klockflank får det första reg1 värdet som ligger på ingånen till reg1, reg2 får värdet som ligger på utgången på reg1, reg3 får värdet som ligger på utgången från reg2 osv. Vid nästa klockflank upprepas proceduren. En skillnad du kan se i tabellen ovan är att med ett skiftesregister kan man ha en godtycklig sekvens beroende på vad man lägger för värde på ingången vid klockflankerna. En räknare har en fast (eller åtminstonde rejält begränsad) sekvens.

Jag inser nu att jag har givet en väldigt luddigt beskrivning av ett seriellt-in seriellt-ut skiftesregister. Om man ska ge en bra beskrivning blir det mycket mer text (förklara register, flip-flop, vippa, parallell-in seriell-ut, seriell-in parallell-ut osv) Usch det blir ju en hel lärobok.

Så till orginalfrågan: Nej, ett skiftesregister är inte samma sak som en räknare. Däremot kan man implementera en Johnson-räknare med skiftesregister. För ett skiftes-register, se t.ex. kretsen 4006 och/eller 4014.

Carry out används om man vill koppla ihop flera räknare för att kunna räkna större värden.
Användarvisningsbild
gunne
Inlägg: 2076
Blev medlem: 17 juni 2004, 15:00:31
Ort: sthlm
Kontakt:

Inlägg av gunne »

Okej, det har blivit lite klarare nu i alla fall. Så om jag skulle vilja använda denna räknare för att kontroller kolumnerna på en LED-matris skulle jag koppla kolumnerna, via transistorer, till pinnarna 1, 2, 3, osv på räknaren och sen skicka en signal till clk varje gång jag vill hoppa till nästa rad?
Skriv svar