-
-
Erfahrener Benutzer
Roboter Experte
Moin!
Praktischerweise sind 8Bit genau ein Byte, also irgendwas zwischen Dezimal 0-255, Hexadezimal 0x00-0xff, bzw. Binär 0b00000000 - 0b11111111. Du machst also folgendes für z.B. Dein 10110010 :
Variable = 0b10110100
dann 8 mal, z.B. for-schleife oder so:
Und-Verknüpfung mit 1 -> 0b00000001
wenn 1: Datenpin auf High
sonst: Datenpin auf Low
dann CP auf high und wieder auf low
Variable nach rechts schieben(shiften), im Zweifel durch 2 teilen, bewirkt binär genau das
schleife von vorn
das ergibt dann folgendes:
10110010 & 1: D=0
01011001 & 1: D=1
00101100 & 1: D=0
00010110 & 1: D=0
00001011 & 1: D=1
00000101 & 1: D=1
00000010 & 1: D=0
00000001 & 1: D=1
D ist z.B. Dsa, Dsb muß High sein, also an 5V, oder Dsa und Dsb müßen zusammengeschaltet werden.
Die Daten, Takt- und evtl. Latch Pins können direkt an Portpins vom AVR gehängt werden.
das 74* 164 hat kein Latch, das gibt die Pegel sofort aus, der MR-Anschluß setzt alle Ausgänge gleichzeitig auf 0 (Master Reset), das gleiche erreicht man (nur ein klein wenig langsamer), wenn man einfach eine 0 in das Register schiebt, man spart sich aber so den zusätzichen Pin am Controller, MR muß dann an 5V gelegt werden.
Ein Schieberegister mit Latch wäre z.B. das 74LS595.
Schön beschrieben und mit Bildchen steht das übrigens alles https://www.roboternetz.de/wissen/in...xpander_am_AVR
MfG Volker
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen