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

📄 新建 文本文档 (2).txt

📁 spi总线的模拟程序,可以实现单片机的spi传输
💻 TXT
字号:
模拟SPI实验的C语言代码
 
调试通过

#include "config.h"
#define SPI_CS 0x00000100 /*p0.8*/
#define SPI_DATA 0x00000040 /*p0.6*/
#define SPI_CLK 0x00000010 /*p0.4*/
#define SPI_IOCON 0x00000150 /*SPI接口的I/O设置字*/

void DelayNS(uint32 dly) //延时函数
{ uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}

void HC595_SendDat(uint8 dat)
{ uint8 i;
IOCLR=SPI_CS; //SPC_CS=0
for(i=0;i<8;i++) //发送8位数据
{IOCLR=SPI_CLK; //SPI_CLK=0
/*设置SPI的DATA输出值*/
if((dat&0x80)!=0) IOSET=SPI_DATA;
else IOCLR=SPI_DATA;
dat<<=1;
IOSET=SPI_CLK; //SPI_CLK=1
}
IOSET=SPI_CS; //SPI_CS=1,输出显示数据
}

int main(void)
{ const uint8 DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
uint8 i;

PINSEL0=0x00000000; //设置所有引脚连至GPIO
PINSEL1=0x00000000;

IODIR=SPI_IOCON; //设置SPI控制口为输出
while(1)
{for(i=0;i<16;i++)
{HC595_SendDat(DISP_TAB[i]); //输出LED显示数据
DelayNS(50);
}
}
return(0);
} 

⌨️ 快捷键说明

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