Forum: Mikrocontroller und Digitale Elektronik Problem bei Tasterabfrage mit dem 74HC164


von Dieter M. (diamant400)


Angehängte Dateien:

Lesenswert?

Hallo an alle Bastler mit µCs

Ich habe diese Schaltung gefunden um LEDs und Taster an einem µC 
abzufragen.

Ich möchte zwei dieser Schaltungen in Reihe an einem Atmega 644 
betreiben mit folgender Funktion:

Die Taster 1-8 sind für eine Binärumschaltung vorgesehen.
Die LEDs am oberen 164er sollen eben 1-8 darstellen.
Die LEDs am unteren 164er sollen die Funktionen 9-15 darstellen.
Somit muss ich mit den Tastern 1-8  2 Ebenen tasten können.
Die zweite Schaltung möchte ich für spätere Erweiterungen in Reserve 
haben.

Ich wollte den Port C folgendermaßen benutzen:

PC0 - PC3 als Ausgang für das Binär-Signal
PC4 als Taster-Rückmeldung
PC5 als LED-Freigabe
PC6 als Daten-Signal
PC7 als Takt-Signal

Meine Frage: Wie lese ich mit einem Pin 8 Taster ein noch dazu auf 2 
Ebenen?

von troll (Gast)


Lesenswert?

Bildformate
Google:Schieberegister

von Dieter M. (diamant400)


Angehängte Dateien:

Lesenswert?

Bildformat war schon richtig.
Hier nochmal als JPG

von hp-freund (Gast)


Lesenswert?

Dieter Mueller schrieb:
> Bildformat war schon richtig.

Der war gut!
Es gibt sicher eine Variante die paar Striche in < 20kB unterzubringen 
;)

Zum Problem:
am Besten zyklisch ein einzelnes Bit durch die Register schieben und 
gleich danach (vor dem nächsten schieben) die Rückmeldung abfragen.

von Dieter M. (diamant400)


Lesenswert?

Hallo hp-freund

Die LEDs müssten aber auch noch mit ins Spiel kommen

von STK500-Besitzer (Gast)


Lesenswert?

hp-freund schrieb:
> Zum Problem:
> am Besten zyklisch ein einzelnes Bit durch die Register schieben und
> gleich danach (vor dem nächsten schieben) die Rückmeldung abfragen.

ganz viele 1 ("einsen") und nur eine "0" durchschieben.
Dort, wo die "0" anliegt, kann die Taste abgefragt werden, gleichzeitig 
leuchtet aber auch die LED, sofern der BC485 durchgeschaltet wurde.

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

STK500-Besitzer schrieb:
> gleichzeitig
> leuchtet aber auch die LED, sofern der BC485 durchgeschaltet wurde.

Das kommt auf die Zeit an. Wenn Du schnell genug schiebst wirst Du das 
nicht sehen können.

Noch mal zum Bildformat, siehe Anhang ;-)

von Dieter M. (diamant400)


Lesenswert?

Das heisst bei zwei dieser Platinen schiebe ich 56 einser und eine 0 
durch, soweit ich das jetzt richtig verstehe.
Und ich frage jeden Takt auf Taster ab.

von Dieter M. (diamant400)


Lesenswert?

falsch! ich schiebe 63 einser durch und eine 0

von Dieter M. (diamant400)


Lesenswert?

oder reicht es aus wenn ich nur 31 einser durch schiebe und dann eine 0
da ja auf der zweiten Seite nur die LEDs sind

von hp-freund (Gast)


Lesenswert?

Dieter Mueller schrieb:
> ich schiebe 63 einser durch und eine 0

Genau.
Dann fragst Du das erste bit ab und schiebst noch 15 mal eine 1 
hinterher und fragst auch diese jeweils ab. Wenn Du die Brücke A 
entfernst, das Ganze gleich noch 16 mal für das zweite Modul. Danach 
kannst Du die LED Daten hinein schieben, da ja die untere Reihe nicht 
abgefragt wird.

von Dieter M. (diamant400)


Lesenswert?

Das mit dem Bild konnte ich nicht vorher probieren, hatte es als PDF auf 
dem Rechner liegen und habe es nur mit Bildbearbeitung in PNG umbenannt.

von Dieter M. (diamant400)


Lesenswert?

Danke für die Hilfe, werde ich morgen mal ausprobieren.
Wenn alles klappt muss ich nur noch den Binär-Code in mein Programm 
einbinden.

von Peter D. (peda)


Lesenswert?

Ich würde die klassische Schaltung nehmen, d.h. 2 * 74HC595 für die 16 
LEDs und 1 * 74HC165 für die 8 Tasten.
Dann kann man so langsam schieben, wie man will und nichts flackert 
dabei.


Peter

von Dieter M. (diamant400)



Lesenswert?

Das Problem ist nur:
Ich habe diese Schaltung als fertige Platine vor mir liegen,
die Schaltung ist bewährt und läuft seit 1984 in einer Musikmaschine 
ohne Probleme. Ich tausche nur noch die roten LEDs gegen blaue.

von Dieter M. (diamant400)


Lesenswert?

In der Orginal Schaltung werden über 200 Taster und 420 Leds und 50 
Potis und ein LCD Display abgefragt, und das bei einem 4Mhz getakteter 
CPU und da flackert auch nichts

von Peter D. (peda)


Lesenswert?

Dieter Mueller schrieb:
> da flackert auch nichts

Ich hatte den Transistor übersehen, damit wird während des Schiebens 
dunkel getastet, sonst gäbe es Geister-LEDs.
Das wäre beim 595 nicht mehr nötig.


Peter

von Peter D. (peda)


Lesenswert?

Dieter Mueller schrieb:
> Ich tausche nur noch die roten LEDs gegen blaue.

Blau ist keine anwenderfreundliche Farbe.

Am besten ist amber. Deshalb waren früher auch die monochromen 
Computermonitore amber, weil die Leute daran möglichst ermüdungsfrei 
arbeiten sollten.


Peter

von Dieter M. (diamant400)


Lesenswert?

ich hab das heute mal ausprobiert.
Ich schiebe eigentlich immer nur eine 1 und eine 0
und dann frage ich einmal die Taster und einmal die LEDs ab.
Klappt eigentlich gut.

von Dieter M. (diamant400)


Lesenswert?

Das mit blau ist wieder so ein Thema für sich.
Ich mag blaue LEDs - ist auch besser in der Nacht
Ich kann ja mal ein paar Bilder mit einschieben von meiner Musikmaschine 
wenn gewünscht

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.