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

📄 hardware_spi.c

📁 增强型51单片机程序模板
💻 C
字号:
/*********************************************************************************************
文 件 名:
创 建 人:
创建日期:
组成部分:
描    述:
修 改 人:
修改日期:
修改内容:
*********************************************************************************************/
#include "user.h"


#ifdef SST
#ifdef HardWare_SPI
/*********************************************************************************************
函 数 名:void HardWareSPI_Ini(void)
功能描述:完成SST单片机SPI接口初始化
全局变量:无
局部变量:无
参数说明:SPCR(SPI控制寄存器)
		 7		6		5		4		3		2		1		0
		 SPIE	SPE		DORD	MSTR	CPOL	CPHA	SPR1	SPR0
		 SPIE:SPI中断使能位 当SPIE与ES为1时 SPI中断使能
		 SPE :SPI使能位 0禁止SPI 1使能SPI并将SS MOSI MISO SCK	连接P1.4~1.7
		 DORD:数据传输命令 0发送高位数据在前 1发送低位数据在前
		 MSTR:主从模式选择 0选择从模式 1选择主模式
		 CPOL:时钟极性选择 0IDEL(动态高)SCK为低 1IDEL(动态低)SCK为高
		 CPHA:时钟相位控制位 0在时钟前沿触发移位 1在时钟后沿触发移位
		 SPR1:SPI时钟速率选择位
		 SPR0:SPI时钟速率选择位、
		  SPSR(SPI状态寄存器)
		 7		6
		 SPIF	WCOL
		 SPIF:SPI中断标志 数据传输完成后置1 如果SPIE=1和ES=1将产生中断 该位由软件清零
		 WCOL:SPI写冲突标志 数据传输时写SPI数据寄存器将把WCOL置位。该位由软件清零
		  SPDR(SPI数据寄存器)
输    入:无
输    出:无
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明:此函数只针对SST单片机及带SPI接口引脚和SPI寄存器与SST单片机兼容的单片机,需要定义宏才
		 可以使用。					
*********************************************************************************************/
void HardWareSPI_Ini(void)
{
	SPCR=0x70;				//设置寄存器无中断使能SPI主模式
}

/*********************************************************************************************
函 数 名:uint8 SPI_SendByte(uint8 d)
功能描述:硬件SPI接口要主机状态下发送一字节数据并接心一字节数据
全局变量:无
局部变量:info用于保存收到的数据并返回这个值
参数说明:SPSR 当数据写发送完毕后清除发送完成标志
输    入:d 为待发送的数据
输    出:info 为返回值
创 建 人:
创建日期:2008.9.12
修 改 人:
日    期:
函数说明:此函数还没有得到验证 					
*********************************************************************************************/
uint8 SPI_SendByte(uint8 d)
{
	uint8 info;
	SS=0;
	SPDR=d;					//将待发送数据放到数据寄存器中发送
	while((SPSR&0x80)==0x80)
	{
		SPSR=0x00;
	}
	info=SPDR;
	SS=1;
	return(info);
}

/*********************************************************************************************
函 数 名:
功能描述:
全局变量:
局部变量:
参数说明:
输    入:
输    出:
创 建 人:
创建日期: 
修 改 人:
日    期:
函数说明: 					
*********************************************************************************************/
uint8 SPI_ReceiveByte(void)
{
	uint8 info;
	SPDR=0x00;					//将待发送数据放到数据寄存器中发送
	while((SPSR&0x80)==0x80)
	{
		SPSR=0x00;
	}
	info=SPDR;
	return(info);
	
}
#endif
#endif

⌨️ 快捷键说明

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