#include <iom16v.h>
#include <macros.h>
#include "lcd0.h"
void SPI_SlaveInit(void)
{
/* 设置MISO 为输出,其他为输入 */
DDRB = (1<<PB6);
/* 使能 SPI */
SPCR = (1<<SPE);//PR1 和SPR0 对从机没有影响。
}
char SPI_SlaveReceive(void)
{
uchar clear;
while(!(SPSR & (1<<SPIF))) ;
clear = SPSR;
return SPDR;
}
char SPI_SlaveTransmit(char cData)
{
char clear;
SPDR = cData;
//while(!(SPSR & (1<<SPIF)));
clear = SPSR;
return SPDR;
}
void main(void)
{
uchar x,y;
SPI_SlaveInit();
init_lcd();
clrram ();
delayms(10);
lcd_display_string(0x90,10,"从机发送:");//注意延时
lcd_display_string(0x98,10,"从机接收:");
while(1)
{
PORTB&=~(1<<PB4);
delayms(200);
PORTB|=(1<<PB4);//不能有???
x=SPI_SlaveTransmit(0x39);
//send_i(0x96);
//send_d(x);
send_int(0x96,4,x);
delayms(10);
/*y=SPI_SlaveReceive();
//send_i(0x9e);
//send_d(y);
send_int(0x9e,4,y);
delayms(10);*/
}
}