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

📄 24021.c

📁 用CS5532做的无线吊钩称的吊称端程序
💻 C
字号:
#include <reg52.h> 
#include <intrins.h>
//*================*//
//*对24C02的操作   *//
//*日期:2004/09/08 *//
//*版本:V1.01	 *//
//*================*//
//定义CLK,DATA,和WP的引脚
sbit    sda 	=P1^7;//
sbit    sclk  	=P1^6;
sbit    iic_en   	=P1^5;
//定义EEROM读写的地址
#define  	cont_write 	0xa0 
#define  	cont_read  	0xa1
extern 	unsigned char data temp[8]  ;	     
//=============================================
void delay (void)   	//写入每字节后延时8ms
{
	unsigned  int  loop;
	for(loop=2000;loop>0;loop--)
	{
		_nop_( );      
	}
}
void start_2402 (void)   
{
	sda=1;
	_nop_();
	_nop_();
	sclk=0;
	_nop_();
	_nop_();
	sclk=1;
	_nop_();
	_nop_();
	sda=0;
	_nop_();
	_nop_();
	sclk=0;
}
void stop_2402 (void)	
{
	sda=0;
	_nop_();
	_nop_();
	sclk=1;
	_nop_();
	_nop_();
	sda=1;
}
void outbyt(unsigned char da)
{
	unsigned char loop;
	for (loop=0;loop<8;loop++)
	{
		da=da<<1;
		sda=CY;
		_nop_();
		_nop_();
		sclk=1; 
		_nop_();
		_nop_();
		sclk=0;
	}
}
unsigned char inbyte (void)
{
	unsigned char  loop,da=0;  
	for (loop=0;loop<8;loop++) 
	{
		da=da<<1;
		sda=1;
		_nop_();
		_nop_();
		da=da|sda;
		sclk=1 ;
		_nop_();
		_nop_();
		sclk=0;   
	}
	return(da);
}
void ack (void)	    	//应答信号
{
	sda=0;
	_nop_();
	_nop_();
	sclk=1;
	_nop_();
	_nop_();
	sclk=0;
}
void noack(void)		//无应答		
{
	sda=1;
	_nop_();
	_nop_();
	sclk=1;
	_nop_();
	_nop_();
	sclk=0;
}
void wr_2402 (unsigned char t_addr,unsigned char num)
{
	unsigned  char  loop;
	iic_en=0;
	_nop_( );
	_nop_( );
	_nop_( );
	_nop_( );
	for(loop=0;loop<num;loop++)
	{
		sda=1;
		_nop_( );
		_nop_( );
		sclk=0;
		_nop_( );
		_nop_( );
		start_2402( );
		outbyt(0xa0);
		ack( );
		outbyt(t_addr);
		ack( );
		outbyt(temp[loop]);
		ack( );
		stop_2402( );
		delay( );
		t_addr++;        
	}
	iic_en=1;
}
void rd_2402 (unsigned char s_addr,unsigned char num)
{
	unsigned  char  loop;
	start_2402();
	outbyt (0xa0) ;
	ack();
	outbyt(s_addr);
	ack();
	start_2402(); 
	outbyt (0xa1);
	for (loop=0;loop<num;loop++)
	{
		ack();
		temp[loop]=inbyte();
	}
	noack();
	stop_2402();
}
///////////////////////////////////

⌨️ 快捷键说明

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