#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1141;j++);
}
}
void spi_init()
{
DDRB|=0XA0; //设置PB5,7输出
DDRA|=BIT(PA1); //片选信号
PORTA|=BIT(PA1);
SPCR=0X50; //0101 0001 SPI使能,选择主机模式, CPHA=0.CPOL=0模式 4分频
}
void TLC5615(uint daword)
{
uchar temp1=0,temp2=0,status; //uchar 八位 ;uint16位
daword=daword<<2;
temp1=daword>>8;//第八位
temp2=daword;
PORTA&=~BIT(PA1); //选中片选 置低有效
SPSR=0;
SPDR=temp2; //先写高位
do
{
status=SPSR;
}while(!(status&=0X80));
//delay(10);
SPSR=0;
SPDR=temp1; //再写低位
do
{
status=SPSR; //检查SPSR的BIT(7)中断标志位,看是否传输结束。
}while(!(status&=0X80));
SPSR=0;
//delay(10);
PORTA|=BIT(PA1); //取消片选信号
}
void main()
{
spi_init();
DDRD|=BIT(7);
while(1)
{
TLC5615(10);
delay(50);
TLC5615(1000);
delay(50);
PORTD^=BIT(7);
}
}
spi.rar_spi da
版权申诉
146 浏览量
2022-09-22
21:08:00
上传
评论
收藏 13KB RAR 举报
JaniceLu
- 粉丝: 83
- 资源: 1万+