⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.c

📁 SPI C8051单片机 P89LPC938 PIC 单片机模拟SPI
💻 C
字号:
/********************************************************************
			ATmega16L学习板SPI接口程序
			晶振频率:	8MHz
			编译:		ICCAVR 6.31
			编写:		hanzhaowei@2911.net
********************************************************************/

/*===================================================================
//	函数功能:	硬件SPI接口送出一个数据
//	形参:		unsigned char	要送出的数据
//	返回:		void
//	编写:		2004/6/23
===================================================================*/
void	Lib_SPISend(unsigned char data)
{
	SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1);			//	enable hard SPI interface, use host mode, clock at fosc/64
	PORTB &= ~CS_DISP;
	SPDR = data;						 		//	transfer the data
	while( !(SPSR & (1 << SPIF)) );				//	wait last transfer end
	SPCR &= ~(1 << SPE);						//	disable hard SPI interface
	PORTB |= CS_DISP;
}

#define _SPICLK()		{PORTB |= SCK;PORTB &= ~SCK;}

/*===================================================================
//	函数功能:	模拟SPI接口送出一个数据
//	形参:		unsigned char	要送出的数据
//	返回:		void
//	编写:		2004/6/22
===================================================================*/
void	Lib__SPISend(unsigned char data)
{
	unsigned char i;
	unsigned char outdata;
	outdata = data;
	PORTB &= ~CS_DISP;
	for(i = 0; i < 8; i++)
	{
		if(outdata & 0x80)
			PORTB |= MOSI;
		else
			PORTB &= ~MOSI;
		_SPICLK();
		outdata <<= 1;
	}
	PORTB |= CS_DISP;
}

⌨️ 快捷键说明

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