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

📄 spi.c

📁 开发板自带的C8051F0404的SPI源代码。
💻 C
字号:
/************************************************************************************
*  Copyright (c) 2004,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* 文件名称: SPI.C
* 文件标识: none
* 适用器件: C8051F120
* 
* 摘 要: 本文件是串行外设接口总线子程序;实现串口发送数据功能;将跳线器JP6短接,
*   	  使用外部22.1184MHz晶振.
* 
* 当前版本:1.2
* 作 者:张宁强
* 完成日期:2006年1月10日
*
* 历史版本:1.0 
* 原作者 : 李林利 卢阳
* 完成日期:2005年6月1日
*************************************************************************************/

/************************************************************************************/
// 引用外部头文件

#include "c8051f040.h"
#include "SPI.h"
#include <intrins.h>

/************************************************************************************/

/************************************************************************************
// 常量及全局变量定义
*************************************************************************************/



/************************************************************************************
*  SPI功能子程序
*************************************************************************************/

/***********************************************************************************
* 函数名称:SPI_Init;
*
* 函数功能描述:SPI初始化函数;
*              
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: 	none;
************************************************************************************/

void SPI_Init (void)
{
	char data SFRPAGE_SAVE = SFRPAGE;    // Save Current SFR page
   
     SFRPAGE = SFR_PAGE_0;          	 	// set SFR page F
	
	//SPI0CFG = 0x07;
	//SPI0CN  = 0x03;
	//SPI0CKR = 0x10;
	SPI0CFG = 0x40;
	SPI0CN  |= 0x01;
	SPI0CKR = 0x10;

	while(SPI0CFG&0x80);
	NSS=0;
	SPI0DAT=0x00;
	while(!SPIF);
	NSS=1;
	SPIF=0;

	SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
}

/***********************************************************************************
* 函数名称:SPI_Send;
*
* 函数功能描述:SPI发送一个字节的数据函数;
*              
* 输入参数:发送数据;
*
* 返回数据:none;
*
* 注意: 	none;
************************************************************************************/

void SPI_Send(char dat)
{
	char data SFRPAGE_SAVE = SFRPAGE;    // Save Current SFR page   
    SFRPAGE = SFR_PAGE_0;          	 	// set SFR page F

	while(SPI0CFG&0x80);
	NSS=0;
	SPI0DAT=dat;
	while(!SPIF);
	NSS=1;
	SPIF=0;

	SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
}

/***********************************************************************************/
// 文件结束
/***********************************************************************************/

⌨️ 快捷键说明

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