U23 2007/Inhalt Abend 2/Schieberegister

From C4 Wiki
Jump to: navigation, search

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;
}