mega8_spi.c

来自「AVR学习开发 板」· C语言 代码 · 共 38 行

C
38
字号
/****************************************************************************************
                        mega8的SPI功能实验   
		                                                
             程序功能:使用MEGA8的SPI口控制74HC595,
			           循环发送0-255到74hc595,
					   使LED循环点亮
             硬件连接:SCK--SHCP,MOSI--DS,PB1--STCP
			 			位时钟  ,  数据   ,  桢时钟				 
					                                 作者:张国旗
													 2008年12月29号       
****************************************************************************************/
//============================
//  SPI 口初始化
//主机、高位在前、SCK在闲置时
//为低电平,SPI时钟为fosc/128
//============================
void spi_init()
{
    DDRB|=0x2f;          //设置SCK、MOSI、SS、使能为输出
	SPCR=0X53;          //设置SPI控制寄存器SPE、MSTR、SPR1、SPR0为1
}
//============================
//    数据发送子函数
//入口参数:spi_data
//============================
void senddat(uchar spi_data)
{
    uchar status;
	SPSR=0;		   		 //清中断标志
	PORTB&=~BIT(PB0); 	 //桢时钟
	SPDR=~spi_data;
    while(!(SPSR&=0x80));//等待操作完成
	SPSR=0;				 //清中断标志
	delay(10);
	PORTB|=BIT(PB0);     //桢时钟
} 
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?