📄 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 + -