📄 spird.c
字号:
#include <reg52.h>
#include <string.h>
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>
#include "FM1702.h"
sbit RF_NSS = P1^4;
sbit RF_MISO = P1^3;
sbit RF_MOSI = P1^2;
sbit RF_SCK = P1^1;
sbit RF_RST = P3^5; //由高变低时启动内部复位程序
sbit CARD_LED = P3^3;
sbit SPEAKER = P3^4;
sbit LCD_CS = P2^4;
sbit LCD_RD = P2^5;
sbit LCD_WR = P2^6;
sbit LCD_DATA = P2^7;
sfr P4 = 0xD8;
sbit key = P4^3;
/****************************************************************/
/*名称: SPIRead */
/*功能: 该函数根据给定的地址读取FM1702SL的寄存器*/
/*输入: 寄存器地址<SpiAddress>, 读出值存放首地址<ReadBuf>*/
/*输出: 寄存器值*/
/****************************************************************/
unsigned char SPIRead(unsigned char SpiAddress)
{
unsigned char data i,k,rdata,temp;
rdata=0;
SpiAddress=_crol_(SpiAddress,1);
SpiAddress=SpiAddress | 0x80;
RF_SCK=0;
RF_NSS=0;
//Send SpiAddress;
for (i=0;i<8;i++)
{
temp=SpiAddress&0x80;
if (temp==0x80) RF_MOSI=1;
else RF_MOSI=0;
RF_SCK=1;
SpiAddress=_crol_(SpiAddress,1);
RF_SCK=0;
}
//Send SpiAddress;
//Receive data
for (k=0;k<8;k++)
{
RF_SCK=1;
CY=RF_MISO;
if (CY) rdata+=1;
rdata=_crol_(rdata,1);
RF_SCK=0;
_nop_();
}
RF_NSS=1;
CY=0;
return(rdata);
}
/****************************************************************/
/*名称: SPIWrite */
/*功能: 该函数根据给定的地址写入FM1702SL的寄存器*/
/*输入: 寄存器地址<SpiAddress>,要写入的字节数<WriteCount> */
/*输出: N/A*/
/****************************************************************/
void SPIWrite(unsigned char idata SpiAddress,unsigned char idata SpiData)
{
unsigned char data i,k,temp;
// temp=SpiAddress&0xc0;
// if (temp!=0)
// {
// CY=1;
// return;
// }
SpiAddress=_crol_(SpiAddress,1);
SpiAddress=SpiAddress &0x7e;
RF_SCK=0;
RF_NSS=0;
//Send SpiAddress
for (i=0;i<8;i++)
{
temp=SpiAddress&0x80;
if (temp==0x80) RF_MOSI=1;
else RF_MOSI=0;
RF_SCK=1;
SpiAddress=_crol_(SpiAddress,1);
RF_SCK=0;
}
//Send SpiAddress
// Send data;
for(k=0;k<8;k++)
{
temp=SpiData&0x80;
if (temp==0x80) RF_MOSI=1;
else RF_MOSI=0;
RF_SCK=1;
SpiData=_crol_(SpiData,1);
RF_SCK=0;
}
//Send data;
RF_NSS=1;
CY=0;
// return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -