Hallo, ich habe ein kleines Problem. Ich würde gern ein 4094 Schieberegister mit einem PIC16F627 ansteuern (CLK -> RB0; DATA -> RB1). Am Schieberegister habe ich 8 LEDs angeschlossen. Ich habe schon im Internet und hier im Forum nach einer Lösung gesucht, aber hier findet man nur Lösungen für ATMEL µC. Auch selbst hab ich schon probiert aba das funzt auch nich recht. Im Anhang hab ich mal meine ASM Datei reingepackt, sodass ihr mal gucken könnt was ich falsch mache. Als erstes habe ich mir gedacht das ich das Speicherregister 'daten' immer um eins erhöhe und das 0. Bit abfrage ob es eins ist. Wenn es eins ist dann soll er auch für den Dateneingang ne eins setzen, bei null soll er den Dateneingang rücksetzen. Weil ich also nur das erste Bit abfrage, ersteht so eine bitfolge von '01010101', was er dann über das schieberegister an die LEDs 'sendet'. Sollte man eigendlich denken, aber so ist es nicht. Könnt ihr mir weiterhelfen?
Hat das Schieberegister einen Strobe-Eingang ? Weißt Du, was der macht? Ohne den zu bedienen wird nix gehen. ASM-Code schau ich mir nicht an, erst muß die Hardware stimmen.
Hallo Karl, vermutlich hast du hier eine Endlosschleife programmiert: Auszug aus deinem Listing: .... main goto takt takt bsf PORTB,1 ; Takt fuer den CLK eingang call warten bcf PORTB,1 call warten goto takt ....
@was-willst-du: STROBE und OE sind auf + und nein ich weiss nicht was er macht. ich habe aber im Internet Schaltpläne gesehen wo er auf + war, also dacht ich mir das das ok wär, genauso wie der Enable. @Shibbi: Hier der Quick-Schaltplan (in Anhang), ohne Wiederstäne auf die Schnelle gemacht. Vllt hilft es euch ja. @Rainer: Ja die Endlosschleife ist beabsichtigt, er soll erstmal eine Konstante 01-Folge generieren. Oder muss man immer 8-Bit Abschnitte senden? An alle: Danke für die schnelle Antwort. Es geht aber immernoch nicht. Die LEDs Leuchten, aber in einer mir nicht ersichtlich logischen kombination. Ich weiss echt nicht mehr weiter.
Guck mal ins Datenblatt was Strobe und die anderen Pins so machen....
Hallo Karl, zum Label TRANSMIT kommst du aber nicht. Du taktest nur CLOCK.
@Rainer: Doch komm ich, schau mal ab der Sprungmarke Warten.
Hallo Karl, Entschuldige! Habe ich glatt uebersehen.
Ist total verquert deine programmierweise. Du musst folgendes tun: Der Ruhezustand von CLK sollte High sein, dann 1. Dein Bit auf Data legen 2. CLK auf Low schalten 3. Ein bis zwei Befehle lang warten (NOPs) 4. CLK wieder auf High schalten (damit wird das Bit in das SR geschoben) 5. Deine Warteschleife abarbeiten. 6. wieder bei 1. weitermachen Besser ist aber, du verwendest auch Strobe. Damit kannst du die 8 Bit erst mal in das SR rein schieben, ohne dass sich an den Ausgängen etwas ändert. Dann aktivierst du Strobe und die 8 reingeschobenen Bits werden mit einmal auf die Ausgänge geschaltet. Zum Experimentieren kannst du Strobe aber erst mal auf + lassen.
mach es erst einmal wie sven sagt. Aber ich nehme andere Pins zur Ausgabe, lasse TxD u. RxD ,Int frei zum Ansteuern mit dem Pc(für später) Gruß
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.