93c46.h

来自「用picc编写的93c46读写程序」· C头文件 代码 · 共 250 行

H
250
字号

//===== Must be defined by user =====

	#define		DI			RC5
	#define		DO			RC4
	#define		CLK			RC3
	#define		CS			RC2
	
	#define		TRIS_DI		TRISC5
	#define		TRIS_DO		TRISC4
	#define		TRIS_CLK	TRISC3
	#define		TRIS_CS		TRISC2

//===================================

extern void WriteData(unsigned char Addr,unsigned char Data)
{
	unsigned char step=0;
	
	TRIS_DI=0;TRIS_DO=1;TRIS_CLK=0;TRIS_CS=0;
	
	CS=1;

//========= Enable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=1;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================

	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=1;CLK=0;CLK=1;
	
	for(step=0;step<7;step++)
	{
		DI=(Addr>>(6-step));
		CLK=0;CLK=1;
	}
	
	for(step=0;step<8;step++)
	{
		DI=(Data>>(7-step));
		CLK=0;CLK=1;
	}
	
	CS=0;CS=1;
	
	while(!DO);
	
//========= Disable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=0;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================		
	
	return;
}

extern unsigned char ReadData(unsigned char Addr)
{
	unsigned char step=0,Data=0;
	
	TRIS_DI=0;TRIS_DO=1;TRIS_CLK=0;TRIS_CS=0;

	CS=1;
	
	DI=1;CLK=0;CLK=1;
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;

	for(step=0;step<7;step++)
	{
		DI=(Addr>>(6-step));
		CLK=0;CLK=1;
	}
	
	for(step=0;step<8;step++)
	{
		CLK=0;CLK=1;
		Data=((Data<<1)|DO);
	}
	
	CS=0;CS=1;
	
	return Data;
}

/*
extern void ClearAll(void)
{
	unsigned char step=0;
	
	TRIS_DI=0;TRIS_DO=1;TRIS_CLK=0;TRIS_CS=0;
	
	CS=1;

//========= Enable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=1;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================

	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	DI=0;CLK=0;CLK=1;	
	for(step=0;step<6;step++){DI=1;CLK=0;CLK=1;}
		
	CS=0;CS=1;	

	while(!DO);
	
//========= Disable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=0;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================		
	
	return;
}
*/

extern void ClearData(unsigned char Addr)
{
	unsigned char step=0;
	
	TRIS_DI=0;TRIS_DO=1;TRIS_CLK=0;TRIS_CS=0;
	
	CS=1;

//========= Enable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=1;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================

	DI=1;CLK=0;CLK=1;
	DI=1;CLK=0;CLK=1;
	DI=1;CLK=0;CLK=1;
	
	for(step=0;step<7;step++)
	{
		DI=(Addr>>(6-step));
		CLK=0;CLK=1;
	}
		
	CS=0;CS=1;	

	while(!DO);
	
//========= Disable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=0;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================		
	
	return;
}

/*
extern void WriteAll(unsigned char Data)
{
	unsigned char step=0;
	
	TRIS_DI=0;TRIS_DO=1;TRIS_CLK=0;TRIS_CS=0;
	
	CS=1;

//========= Enable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=1;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================

	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	DI=1;CLK=0;CLK=1;	
	for(step=0;step<6;step++){DI=0;CLK=0;CLK=1;}
	
	for(step=0;step<8;step++)
	{
		DI=(Data>>(7-step));
		CLK=0;CLK=1;
	}
	
	CS=0;CS=1;
	
	while(!DO);
	
//========= Disable Write ===========
	
	DI=1;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	DI=0;CLK=0;CLK=1;
	
	for(step=0;step<7;step++){DI=0;CLK=0;CLK=1;}
	
	CS=0;CS=1;

//==================================		
	
	return;
}
*/

⌨️ 快捷键说明

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