亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iic.c

?? 采用華邦79E834+HT1380+24C04實現全自動抽水將置的源程式。如要疑問可發Email到nwm-2003@163.com。
?? C
字號:
/******************************************************************************
* CPU:          Winbond W79E834
* Purpose:      IIC.c
* Creator:   	Ningweiming
* Version:		Revision: 0
* File Name:	$Workfile: iic.c $
******************************************************************************/
#include "all_func.h"
#include "main_func.h"

unsigned char i2cSlaveAddress = 0xA0;
unsigned char I2C_Data_buf[6];
#define i2c_half_delay()
#define i2c_delay()  {unsigned char i=0;while (i!=7)i++;};
#define SCL_H() {SCL_PIN = 1;}   /* SCL high */
#define SCL_L() {SCL_PIN = 0;} /* Pull SCL down */
#define SDA_H() {SDA_PIN = 1;}  /* SDA high using external pull-up (SDA is input)*/
#define SDA_L() {SDA_PIN = 0;}  /* Pull SDA down */

unsigned char SDA_IN(void)
{
	SDA_H();
	if (SDA_PIN == 0x00) return(0);
	else return(1);
}


unsigned char i2c_error = 0;                 /* Last error */


/*
 * Makes sure that the bus is in a known condition. Returns 1 on success,
 * 0 if some other device is pulling on the bus.
 */

void i2c_init(void)
{
	SCL_H();
	SDA_H();
	i2c_error = 0;
}

unsigned char i2c_start(void)
{
	SCL_H();        /* EHO: 15-07-2003 in case of repeated start, first scl high */
	SDA_L();        
	_nop_();
	_nop_();
	_nop_();
	_nop_();
//	i2c_delay();
	SCL_L();        
	return 0;
}

void i2c_stop(void)
{
	SDA_L();        /* Pull SDA down if it was not down */
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	i2c_delay();
	SCL_H();        
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	i2c_delay();
	SDA_H();        
}

void i2c_bit_out(bit bout)
{
	SDA_PIN=bout;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL_H();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
//	i2c_delay();
	_nop_();
	_nop_();
	SCL_L();			
}

unsigned char i2c_bit_in(void)
{
	unsigned char bin;
	unsigned char i=0;
	_nop_();
	_nop_();
	SCL_H();			/* Let SCL go up */
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	bin = SDA_IN();		/* Read in data */
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL_L();		
	return bin;		
}


/*
 * Send one byte on the bus. No start or stop conditions are generated here,
 * but i2c_error will be set according to the result.
 * Returns 0 on success, 1 if we lose arbitration or if the slave doesn't
 * acknowledge the byte. Check i2c_error for the actual result on error.
 */

unsigned char I2cSentByte(unsigned char dat)
{
	unsigned char  bit_count;
	bit_count = 8;
	while(bit_count)
	{
		if (dat & 0x80)
		{
			SDA_PIN=1;
		}
		else
		{
			SDA_PIN=0;
		}
			_nop_();
			_nop_();
			_nop_();
			SCL_H();
			dat <<= 1;
			bit_count--;
			SCL_L();
	}
		SDA_PIN=1;
		_nop_();
		_nop_();
		_nop_();
		SCL_H();
		_nop_();
		_nop_();
		_nop_();
		SCL_L();
	return 0;
}


/*
 * Reads one byte in from the slave. Ack must be 1 if this is the last byte
 * to be read during this transfer, 0 otherwise (as per I2C bus specification,
 * the receiving master must acknowledge all but the last byte during a
 * transfer).
 */

unsigned char I2cReadByte(unsigned char ack)
{
	unsigned char bit_count, byte_in;

	bit_count = 8;
	byte_in = 0;
	while(bit_count)
	{
		byte_in <<= 1;
		SCL_H();			/* Let SCL go up */
		if(SDA_PIN==1)
		{
			byte_in|=1;
		}
		else byte_in|=0;
		SCL_L();
		bit_count--;
	}
		if(ack==0)
		{
			SDA_PIN=0;
		}
		else SDA_PIN=1;
		SCL_H();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SCL_L();
		SDA_H();
	return byte_in;
}



unsigned char I2C_Write_Byte(unsigned char map,	unsigned char dat)
{
	return 	(I2C_Write_Buf(map, &dat, 1));
}

unsigned char I2C_Read_Byte(unsigned char map)
{
	unsigned char tmp;
	unsigned char result;
		
	/* we do not want to overwrite I2C_Data_buf[0] */
	tmp = I2C_Data_buf[0];
	
    I2C_Read_Buf(map, 1);
    
	result = I2C_Data_buf[0];
	/* set back the old data */
	I2C_Data_buf[0] = tmp;

    return (result);
}

/* read data is availeble in RX_Data_recv_array */
unsigned char I2C_Read_Buf (unsigned char map, unsigned char rx_count)
{
	if ( I2C_Write_Buf (map, &map, 0))/* second map addres is dummy pointer no data writtten only i2cSlave address and map address*/
	{
		if (i2c_error != I2CERR_LOST) i2c_stop();
		return 1;
	}

	SDA_H();        /* One of these may be low now, in which case the next */
	SCL_H();        /*   start condition wouldn't be detected so make */
	i2c_delay();    /*   sure that they're up and wait for one delay slot */
	if (i2c_recv(rx_count)) return 1;

	return (i2c_error ? 1 : 0);
}


/*
 * Read in 'count' bytes from slave 'addr'.
 * Returns 0 on success.
 */

unsigned char i2c_recv(unsigned char count)
{
	unsigned char byteptr, byte_in;

	if (i2c_start()) return 1;
	i2c_error = 0;
	byteptr = 0;

	byte_in = i2cSlaveAddress  | 0x01;

	if (I2cSentByte(byte_in))   //send device address
	{
		if (i2c_error == 1) i2c_stop();
		return i2c_error;
	}
	while(count)
	{
		if (--count)
		{
			byte_in = I2cReadByte(0);
		}
		else
		{
			byte_in = I2cReadByte(1);   /* No ACK during last byte */
		}
		I2C_Data_buf[byteptr] = byte_in;
		byteptr++;
	}

	i2c_stop();

	return (i2c_error ? 1 : 0);
}

/***************************************
* addr: first writed address
* *buf: data buffer first address
* count: byte numbers
****************************************/
unsigned char I2C_Write_Buf (unsigned char addr, unsigned char *buf, unsigned char count)
{
	unsigned char byte_out;
	if (i2c_start()) return 1;    //start I2C
	i2c_error = 0;
	byte_out = i2cSlaveAddress & 0xFE;     
	if (I2cSentByte(byte_out))   //send device address
	{
		if (i2c_error == 1)
		{
			i2c_stop();
		}
		return i2c_error;
	}
	byte_out = addr;
	count = count+1;                    
	while(count)
	{
		if (I2cSentByte(byte_out)) //send sub address
		{
			if (i2c_error == 1)
			{
				i2c_stop();
			}
			return i2c_error;
		}
		else 	byte_out = *buf++;//send data
		i2c_delay();
		count--;
	}

	i2c_stop();
	return 0;
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久爽爽爽麻豆色哟哟 | 欧美在线视频日韩| 欧美精品一卡二卡| 久久久不卡网国产精品二区| 亚洲综合区在线| 丰满白嫩尤物一区二区| 欧美日韩欧美一区二区| 国产视频视频一区| 蜜臀av亚洲一区中文字幕| 北条麻妃国产九九精品视频| 精品国产91久久久久久久妲己 | 久久综合久久久久88| 一区二区在线观看免费视频播放| 精品一区二区三区的国产在线播放| 日本韩国欧美在线| 国产精品久久久久aaaa| 国产在线精品一区在线观看麻豆| 欧美剧情电影在线观看完整版免费励志电影 | 中文字幕日本不卡| 国产精品综合一区二区| 在线不卡的av| 亚洲午夜久久久| 在线看国产一区二区| 国产精品久久久久久久久久免费看| 老司机午夜精品99久久| 欧美精选一区二区| 香蕉久久一区二区不卡无毒影院 | 777久久久精品| 亚洲电影第三页| 欧美日韩在线播放一区| 悠悠色在线精品| 一本大道久久a久久精品综合| 亚洲国产精品精华液2区45| 久久成人免费网站| 精品久久久久香蕉网| 麻豆专区一区二区三区四区五区| 91精品麻豆日日躁夜夜躁| 五月天一区二区三区| 欧美日韩视频在线第一区| 亚洲午夜三级在线| 欧美一区中文字幕| 久久99最新地址| 久久久蜜臀国产一区二区| 国产精品亚洲第一| 国产精品天干天干在观线| 成人午夜视频网站| 亚洲精品成人少妇| 91.com视频| 激情小说亚洲一区| 国产精品网友自拍| 欧美色涩在线第一页| 日韩国产欧美在线视频| 日韩一二三四区| 国产成人精品影视| 中文字幕亚洲精品在线观看| 91成人在线精品| 日韩和欧美一区二区三区| 91精品国产福利在线观看| 国产精品一二三| 一区二区三区精品视频在线| 3751色影院一区二区三区| 国产在线观看一区二区| 中文字幕一区二区三区视频 | 日韩精品一区二区三区中文精品| 国产精品白丝av| 亚洲精品一卡二卡| 91麻豆精品久久久久蜜臀| 国产精品一线二线三线精华| 亚洲视频一区二区在线观看| 91精品在线一区二区| 成人性视频免费网站| 五月天中文字幕一区二区| 国产欧美一区二区精品忘忧草 | 午夜久久福利影院| 国产欧美一区二区精品婷婷| 欧美日韩色综合| 国产v日产∨综合v精品视频| 亚洲国产精品久久久久秋霞影院| 2024国产精品视频| 欧美日韩一区二区三区在线看| 韩国成人福利片在线播放| 亚洲乱码国产乱码精品精小说| 日韩欧美亚洲另类制服综合在线| 成人深夜视频在线观看| 日韩av在线免费观看不卡| 国产精品大尺度| 精品日韩一区二区三区免费视频| 91美女视频网站| 国产精品一二三区| 久久精品久久综合| 亚洲一区二区三区自拍| 中文字幕av一区 二区| 在线播放一区二区三区| 91免费国产在线观看| 国产老妇另类xxxxx| 日韩影视精彩在线| 亚洲最大成人网4388xx| 国产精品福利一区| 精品99一区二区| 日韩色视频在线观看| 欧美性三三影院| 91黄色免费网站| 9i在线看片成人免费| 国产精品一区二区三区乱码| 久久99精品国产| 久久激情五月激情| 美国十次综合导航| 欧美aaaaaa午夜精品| 亚瑟在线精品视频| 亚洲18色成人| 天堂成人国产精品一区| 亚洲一区二区视频在线| 亚洲一区二区三区美女| 一区二区久久久久久| 亚洲色图在线播放| 一区二区三区**美女毛片| 亚洲人成小说网站色在线| 国产精品视频在线看| 国产精品视频九色porn| 中文在线资源观看网站视频免费不卡| 久久久蜜臀国产一区二区| 国产偷国产偷亚洲高清人白洁| 久久久久99精品一区| 久久久久国产成人精品亚洲午夜 | 成人精品视频一区二区三区| 国产乱妇无码大片在线观看| 丁香五精品蜜臀久久久久99网站| 国产91精品在线观看| 波波电影院一区二区三区| 色av一区二区| 欧美理论在线播放| 精品久久久久久久久久久久久久久久久| 制服丝袜亚洲精品中文字幕| 日韩欧美久久一区| 国产亚洲污的网站| 亚洲日本在线a| 亚洲成av人片在www色猫咪| 日本女人一区二区三区| 国内精品视频666| 不卡一区二区在线| 欧洲一区二区三区免费视频| 欧美精品一二三| 26uuu国产电影一区二区| 国产精品久久久久久久浪潮网站| 一区二区在线免费观看| 美女脱光内衣内裤视频久久网站| 国产一区二区三区黄视频 | 国产东北露脸精品视频| 成人av电影免费观看| 在线免费不卡视频| 精品国产伦理网| 亚洲免费观看高清完整版在线观看熊| 亚洲国产cao| 国产伦精品一区二区三区免费迷 | 亚洲成av人影院在线观看网| 麻豆一区二区三区| 91丨porny丨户外露出| 欧美大黄免费观看| 亚洲免费av在线| 精品在线视频一区| 色婷婷av一区二区三区之一色屋| 欧美一级免费观看| 亚洲精品免费播放| 久久99国内精品| 在线视频中文字幕一区二区| 亚洲精品在线观看视频| 亚洲自拍偷拍麻豆| 成人免费视频一区| 欧美videos中文字幕| 一区二区三区在线观看视频| 国产精品影视在线| 欧美一区二区免费视频| 一区二区在线看| 99视频精品全部免费在线| 精品99一区二区| 丝袜美腿亚洲色图| 一本久久精品一区二区| 久久久久久久精| 韩国一区二区在线观看| 欧美精品一卡二卡| 亚洲高清免费一级二级三级| 成人激情免费视频| 久久久久久麻豆| 久久99国产精品麻豆| 911国产精品| 日产精品久久久久久久性色| 在线免费观看一区| 亚洲精品国产第一综合99久久| 粉嫩高潮美女一区二区三区 | 粉嫩av一区二区三区在线播放| 欧美一区二区在线播放| 亚洲国产成人av网| 日本高清免费不卡视频| 亚洲视频综合在线| 色综合久久久久网| 亚洲精品成人少妇| 欧美在线观看视频一区二区三区| 亚洲人成在线观看一区二区| 91网站在线播放| 综合久久一区二区三区|