Preload av skiftregister
Preload av skiftregister
Jag ska använda ett skiftregister (595) som ringräknare men hur sjutton sätter man den i startläge, d.v.s hur får man in en etta och resten nollor?
Jag tar också gärna emot tips på klocka, Någonstans från 100 Hz och uppåt, inte noga alls. Vad är enklast, 555:a?
Jag tar också gärna emot tips på klocka, Någonstans från 100 Hz och uppåt, inte noga alls. Vad är enklast, 555:a?
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Många skiftregister har en parallel load. Kolla på 74395 - dock så går det åt dubbelt så många kretsar eftersom pinnarna inte räcker annars.
Kör man med 395án (eller annan Parallel in/serial in/
parallel out) skiftregister så lägger man isf hårt parallel ingångarna till önskad startstate och RC-klockar in en parallel load.
7495,7496, 74194, 74195, 74299 och som sagt 74395 har alla möjligheterna att göra det du vill fast på lite olika sätt.
Kör man med 395án (eller annan Parallel in/serial in/
parallel out) skiftregister så lägger man isf hårt parallel ingångarna till önskad startstate och RC-klockar in en parallel load.
7495,7496, 74194, 74195, 74299 och som sagt 74395 har alla möjligheterna att göra det du vill fast på lite olika sätt.
Konstigt att jag inte tänkte på det själv, att det finns skiftregister med parallell-load.
74299 verkade ju bra, både 8 bitar parallell in *och* ut.
595:an har ju dock latchar på utgångarna, något jag behöver, men det går ju att lösa med en separat krets (74273).
Det jag inte riktigt kan lista ut är hur jag ska bära mig åt med "förladdningsdelen".
Eftersom både parallella in- och utgången är på samma pinnar så måste "förladdningskretsen" kopplas bort då den gjort sitt för att inte påverka utgångarna. Eller?!
74299 verkade ju bra, både 8 bitar parallell in *och* ut.
595:an har ju dock latchar på utgångarna, något jag behöver, men det går ju att lösa med en separat krets (74273).
Det jag inte riktigt kan lista ut är hur jag ska bära mig åt med "förladdningsdelen".
Eftersom både parallella in- och utgången är på samma pinnar så måste "förladdningskretsen" kopplas bort då den gjort sitt för att inte påverka utgångarna. Eller?!
Exempel på AVR kod för rinnande ljus.
Edit: ska vara = och inte != (lite förkyld och förvirrad idag).
Kod: Markera allt
#include <io.h>
#include <util/delay.h>
#include <stdint.h>
int main(void){
uint8_t i=0;
DDRB = 0xFF; /* all out */
for(;;){
PORTB = 1<<i;
i++;
if(i>=8)i=0;
/* some delay */
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
}
}
Senast redigerad av Micke_s 24 augusti 2007, 19:42:02, redigerad totalt 1 gång.
Jojo, att lösa det med en uC blir ju väldigt lätt, nästan för lätt.
Den här apparaten ska bara utföra en uppgift, om och om igen och alltid på samma sätt och då känns det lite overkill med en uC.
Det är lite roligare att försöka få ihop det med "dumma" komponenter.
Det blir lite mer pussel.
Men det är klart, det kan ju vara intressant att bli klar också
Den här apparaten ska bara utföra en uppgift, om och om igen och alltid på samma sätt och då känns det lite overkill med en uC.
Det är lite roligare att försöka få ihop det med "dumma" komponenter.
Det blir lite mer pussel.
Men det är klart, det kan ju vara intressant att bli klar också

Räknar inte en Johnson-räknare:anlamotte skrev:Om du bara är ute efter funktionen med en etta som rullar runt skulle väl en dekadräknare (johnson) vara perfekt.. t.ex 4017
0000
0001
0011
0111
1111
1110
1100
1000
?
Idén att det kan finnas andra sätt att generera en "rullande" etta är bra. Jag kanske har snöat in mig på fel spår.
En binär-räknare och en dekoder är ett annat alternativ.
EDIT: Jag hade fel, 4017 är en johnson-räknare och sekvensen är precis som jag vill ha.
Jag såg att ämnet har behandlats tidigare
Perfekt, tack för hjälpen.... tills vidare
