#include <avr/io.h>
#include <avr/delay.h>
#define SCK 7 //PB7
#define MISO 6 //PB6
#define PL 4 //PB4
void portinitial(void)
{
PORTA=0XFF;
DDRA=0XFF; //OUT
PORTB=0XFF;
DDRB=(1<<SCK)|(1<<PL); //PB7,PB4 OUT
PORTC=0XFF; //PULL-UP
PORTD=0XFF; //PULL-UP
}
void spiinit(void)
{
SPCR=(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0); //enable spi,Master Mode
}
int main(void)
{
portinitial();
spiinit();
while(1)
{
PORTB&=~(1<<PL);
_delay_us(10);
PORTB|=(1<<PL);
SPDR=0XAA;
while(!(SPSR&(1<<SPIF))); //wait until spi receive succeed
PORTA=~SPDR; //light led to the corresponding bit
}
}