www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4094 Schieberegister mit PIC 16F627 ansteuern


Autor: karlkoch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: was-willst-du (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Shibbi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan bitte -.-

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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


....

Autor: karlkoch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck mal ins Datenblatt was Strobe und die anderen Pins so machen....

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl,

zum Label TRANSMIT kommst du aber nicht. Du taktest nur CLOCK.

Autor: karlkoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rainer:
Doch komm ich, schau mal ab der Sprungmarke Warten.

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl,

Entschuldige! Habe ich glatt uebersehen.

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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ß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.