1.c

来自「PIC单片机的SPI读写源码及其在proteus下的仿真。」· C语言 代码 · 共 48 行

C
48
字号
#include <pic.h>

void delay(unsigned char a)
	{
	unsigned char i;
	unsigned int j;
	for(i=0;i<a;i++)
		{
		j=600;
		while(j--);
		}
	}
	
void spi_init()
	{
	TRISA=TRISA&0xdf;
	TRISC=TRISC&0xd6;// SDO(RC5)引脚为输出,SCK(RC3)引脚为输出
	SSPCON=0x20;	// SSPEN=1;CKP=0,FOSC/4
	SSPSTAT=0x80;	// 时钟上升沿发送数据
	SSPIF=0;	// 清除SSPIF标志
	}

char spi_w(char data1)
	{
	RC0=0;
	SSPBUF=data1; // 启动 SPI 发送 
	while(!SSPIF); // 等待SPI 发送完成 
	SSPIF=0;	// 清SPI 发送完成标志
	while(!STAT_BF);
	STAT_BF=0;
	RC0=1;
	return(SSPBUF);
	}

void main()
	{
	char temp,i;
	TRISB=0;
	spi_init();
	while(1)
		{
		temp=spi_w(i);
		PORTB=temp;
		i++;
		delay(200);
		}
	}

⌨️ 快捷键说明

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