Kod: Zaznacz cały
#include <avr/io.h>
#include <util/delay.h>
#define DS_PORT PORTB
#define DS_PIN 0
#define ST_CP_PORT PORTB
#define ST_CP_PIN 1
#define SH_CP_PORT PORTB
#define SH_CP_PIN 2
#define DS_low() DS_PORT&=~_BV(DS_PIN)
#define DS_high() DS_PORT|=_BV(DS_PIN)
#define ST_CP_low() ST_CP_PORT&=~_BV(ST_CP_PIN)
#define ST_CP_high() ST_CP_PORT|=_BV(ST_CP_PIN)
#define SH_CP_low() SH_CP_PORT&=~_BV(SH_CP_PIN)
#define SH_CP_high() SH_CP_PORT|=_BV(SH_CP_PIN)
int a;
int dana=0b01101011;
int main()
{
DDRB = 0b00000111;
PORTB = 0b00000000;
write(dana);
}
void write(dana)
{
for(a=0;a<8;a++)
{
PORTB = (dana & 0x01);
dana>>=1;
_delay_us(500);
SH_CP_low();
SH_CP_high();
_delay_us(500);
}
ST_CP_high();
}
Kod: Zaznacz cały
PORTB = (dana & 0x80);
dana<<=1;