Difference between revisions of "U23 2007/Inhalt Abend 2/Schieberegister"

From C4 Wiki
Jump to: navigation, search
m (Kategorie)
 
(4 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
* [http://www.it.lth.se/datablad/Logik/74HC/74HC4094.pdf 74HC4094 Schieberegister Datenblatt]
 
* [http://www.it.lth.se/datablad/Logik/74HC/74HC4094.pdf 74HC4094 Schieberegister Datenblatt]
  
 +
==Bits Setzten==
 +
 +
Setze Bit an Stelle x
 +
PORTA |= (1<<x);
 +
 +
lösche Bit an Stelle x
 +
PORTA &= ~(1<<x);
 +
 +
[<< schifftet 1 um Anzahl von x Stellen! Achtung Anfang zu zählen bei 0]
  
 
==Unsere Ansteuerung==
 
==Unsere Ansteuerung==
A0 - CP
+
A0 - CP
A1 - Data
+
A1 - Data
A2 - Strobe
+
A2 - Strobe
A3 - OE
+
A3 - OE
 
 
  
 
==Programm==
 
==Programm==
Line 22: Line 30:
 
         DDRA = 0xFF;
 
         DDRA = 0xFF;
 
         PORTA = 0x00;
 
         PORTA = 0x00;
         PORTA |= (1<<STROBE)|(1<<OE);
+
         PORTA |= (1<<STROBE)|(1<<OE);         //Setz Ausgänge auf aus!
 +
 
         PORTA |= (1<<DATA);
 
         PORTA |= (1<<DATA);
 
         PORTA |= (1<<CP);
 
         PORTA |= (1<<CP);
         PORTA &= ~(1<<CP);
+
         PORTA &= ~(1<<CP);                   //Wert 1 ins Register geschoben
 +
 
         PORTA &= ~(1<<DATA);
 
         PORTA &= ~(1<<DATA);
 
         PORTA |= (1<<CP);
 
         PORTA |= (1<<CP);
         PORTA &= ~(1<<CP);
+
         PORTA &= ~(1<<CP);                   //Wert 0 ins Register geschoben
 
         return 0;
 
         return 0;
 
  }
 
  }
Line 44: Line 54:
 
         return 0;
 
         return 0;
 
  }
 
  }
 +
 +
[[Category:U23 2007]]

Latest revision as of 13:37, 1 June 2007

Datenblatt

Bits Setzten

Setze Bit an Stelle x

PORTA |= (1<<x);

lösche Bit an Stelle x

PORTA &= ~(1<<x);

[<< schifftet 1 um Anzahl von x Stellen! Achtung Anfang zu zählen bei 0]

Unsere Ansteuerung

A0 - CP
A1 - Data
A2 - Strobe
A3 - OE

Programm

Schieberegister - Ansteuerung schiebe 1 0 rein und Ausgabe aktiv.

#include <avr/io.h>
#define CP 0
#define DATA 1
#define STROBE 2
#define OE 3

int main(void)
{
       DDRA = 0xFF;
       PORTA = 0x00;
       PORTA |= (1<<STROBE)|(1<<OE);         //Setz Ausgänge auf aus!

       PORTA |= (1<<DATA);
       PORTA |= (1<<CP);
       PORTA &= ~(1<<CP);                    //Wert 1 ins Register geschoben

       PORTA &= ~(1<<DATA);
       PORTA |= (1<<CP);
       PORTA &= ~(1<<CP);                    //Wert 0 ins Register geschoben
       return 0;
}


Schieberegister - Ansteuerung setzte 1 rein und Ausgabe an!

int main(void)
{
       DDRA = 0xFF;
       PORTA = 0x0E;
       PORTA = 0x0F;
       PORTA = 0x0E;
         
       return 0;
}