spi_main.c

来自「利用805151单片机实现spi总线模拟。」· C语言 代码 · 共 68 行

C
68
字号

#define	uchar	unsigned char
#define uint	unsigned int
#define ulong 	unsigned long
//---------------------------
#include <REG52.H>	
#include<STDIO.H>

 //---------------------------
sbit	SPICLK	=	P1^0;
sbit	MOSI	=	P1^1;
sbit	MISO	=	P1^2;
sbit	SS		=	P1^3;
//---------------------------
void	Nop(void)
	{
		;
	}
void	Delay(uchar t)
	{
		while(t--){;}
	}

uchar	Data_Receive(void)
	{
		uchar	i,dat=0,temp;
		bit		bt;		
		SPICLK=1;
		MISO=1;
		SS=0; 			//选中器件
		Nop();
		Nop();
		for(i=0;i<8;i++)
			{	
				SPICLK=1;
				Nop();
				Nop();
				Nop();
				SPICLK=0;
				Nop();
				Nop();				
				bt=MISO;
				if(bt)
					temp=0x01;
				else	temp=0x00;
				dat=(dat<<1);				
				dat=(dat|temp);				
			}
		SS=1;
		SPICLK=1;		
		return	dat; 
	}
void	main(void)
	{
		uchar	exdat;
		uchar	i=0;
		uchar	code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
                          0x7F,0x6F};
		P2=0;			
		while(1)
			{
				exdat=Data_Receive();
				P0=table[exdat];
				for(i=0;i<200;i++)			
				Delay(200);			
						
			}
	}

⌨️ 快捷键说明

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