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

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

?? at24c02.c

?? 硬件協議棧芯片w3100a的DHCP實現
?? C
字號:
/*
###############################################################################
 Wiznet.
 5F Simmtech Bldg., 228-3, Nonhyun-dong, Kangnam-gu,
 Seoul, Korea

 (c) Copyright 2002, Wiznet, Seoul, Korea

 Filename : at24c02.c
 Created : 2002/01/29
 Modified :
 Description : Implement I2C I/F using Port #1's No 3(SDA) and No 4(SCL) of 89C51 MCU and Read/Write Serail EEPROM, AT24C02.
                    AT24C02 Size : 2K Bits, 256 Byte, 
	       AT24C02 Address Range : 0x00 ~ 0xFF
	       AT24C02 I/F :  I2C using SDA and SCL
Note : AT24C02 has Address A2-A0 to address several,but it's not implemented in this source.
And AT24C02 has PAGE(8 BYTE) Writing, but it's not implemented in this source and it's possible to implement using this functions.
###############################################################################
*/

/*
###############################################################################
Include Part
###############################################################################
*/
#include "i2c.h" 						// i2c definition file
#include "AT24C02.h"						// Header file

/*
###############################################################################
Function Implementation Part
###############################################################################
*/

/*
Description  :  Check operatiton of EEP_ROM(AT24C02)
	 Write 0xEE value into 0xFE address and 0xFF value into 0xFF address.Read and Verify these value.
Argument     :  
Return Value :  success = 1, fail = 0;
Note         :  
*/
char Check_EEPROM()
{
	char c=0;
	if(EEP_Write(0xFE,0xEE)==0) return 0;	     			// write 0xEE's value into 0x00 address
	if(EEP_Write(0xFF,0xFF)==0) return 0;	     			// write 0xFF's value into 0xFF address
	if(EEP_Read(0xFE,&c, NACK)==0) return 0;			// read 0x00's value
	if(c != (char)0xEE)	return 0;	     			// Verify
	if(EEP_Read(0xFF,&c,NACK)==0) return 0;				// read 0xFF's value
	if(c != (char)0xFF) return 0;		     			// Verify
	return 1;
}

/*
Description  :  Write 1 byte data('d') into appropriate address(addr)
Argument     :  
Return Value :  success = 1, fail = 0;
Note         :  
*/
char EEP_Write(char addr, char d)
{
	GEN_START();  							// Generate "START BIT PATTERN" and inform starting of i2C into AT24C02.
	WriteByte(DEVICE_WR);						// Write device's address defined by AT24C02
	if( WAIT_ACK()!=ACK ) 						// if AT24C02 receive DEVICE_WR or not correctly, wait for ACK
		return 0;

	WriteByte(addr);      						// Inform address to write to AT24C02
	if( WAIT_ACK()!= ACK )						// wait for ACK
		return 0;

	WriteByte(d);	      						// write Data

	if( WAIT_ACK()!= ACK )						// wait for ACK
		return 0;
	GEN_STOP();	      						// Send "STOP BIT Pattern" to AT24C02, Informa the end of I2C.
	Delay(10);
	return 1;
}

/*
Description  :  Write len-sized data string into appropriate address(addr)
Argument     :  addr - address to write into AT24C02(INPUT)
	        d    -  starting address of data string's to write(INPUT)
	        len  - length of data string's  to write(INPUT)
Return Value :  success = 1, fail = 0;
Note         :  
*/
char EEP_WriteBytes(char addr, char* d,int len)
{
	int i;
	for(i = 0; i < len ; i++)					// Log per 1 Byte 
		if(EEP_Write(addr+i,d[i])==0) return 0;
	return 1;
}

/*
Description  :Read from AT24C02 of appropriate address(addr) and Return into 'd' value.
Argument     :  addr - address to be read from AT24C02(INPUT)
		d    - variable to store value to be read (OUTPUT)
		IsContinue - to read sequentially, send ACK instead of NACK. Flag's value:ACK-->ACK, NACK-->NACK (INPUT)
Return Value :  success = 1, fail = 0;
Note         :  
*/
char EEP_Read(char addr, char* d,char IsContinue)
{
	GEN_START();
	WriteByte(DEVICE_WR);	 					// Write device's address defined by AT24C02 to write
	if( WAIT_ACK()!= ACK )	
		return 0;
	WriteByte(addr);	 					// Inform address to write to AT24C02 actually
	if( WAIT_ACK()!= ACK )
		return 0;        
	GEN_START();							// Inform starting of Read
	WriteByte(DEVICE_RD);						// Write device's address defined by AT24C02 to read
	if( WAIT_ACK()!= ACK )
		return 0;
	*d = ReadByte(); 
	if(IsContinue == NACK )
	{
		if(WAIT_ACK()!=NACK) return 0;
		GEN_STOP();		      				// If it's read just 1Byte,inform all operations are finished.
	}                           
	else								// If it's read continuously, do without STOP
		SEND_ACK(IsContinue);					// If it's read continuously, then ACK.Else if just 1Byte, then NACK.
	return 1;
}

/*
Description   :  Read each 'len' length from AT24C02 of appropriate address(addr) and Write into 'd' and Return
Argument      :  addr - Address to be read from AT24C02(INPUT)
	    	 d    - starting address variable to be stored data string's value to be Read(INPUT)
		 len  - data string's length to Read(INPUT)
Return Value  :  success = 1, fail = 0;
Note          : It's implemented according to Datasheet,but can't be read in sequential.So read each 1 Byte repeatedly.
*/
char EEP_ReadBytes(char addr, char* d, int len)
{
	char c;
	int i ;

	for(i = 0 ; i < len ; i++)					// Read each 1 byte and store into 'd' sequentially.
	{
		if(EEP_Read(addr+i,&c,NACK)==0)
			return 0;
		d[i] = c;
	}
/*
	if(!EEP_Read(addr,&c,ACK)) return 0;				// 1Byte綽 Read 1Byte according to I2C Spec(ACK instead of NACK, Read 1 Byte without STOP)
	d[0] = c;
	for(i = 1 ; i < len ; i++)					// Read 1 Byte through I2C continuously and wait for ACK
	{
		d[i] = ReadByte();
		PutHTOA(d[i]);PutStringLn("");                          
		if(i == len -1 )					// If read last Byte, don't wait for ACK and send NACK
		{
			if(WAIT_ACK()!=NACK) return 0;
		}
		else	SEND_ACK(ACK);
	}
	GEN_STOP();							// All operations are finished.
*/
	return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区日韩二区欧美三区| 精品入口麻豆88视频| 久久精品亚洲一区二区三区浴池| 精品一区二区综合| 久久精品人人做人人综合| 懂色av中文字幕一区二区三区| 国产亚洲一区二区在线观看| 99天天综合性| 一区二区三区日韩欧美| 在线电影院国产精品| 午夜国产精品一区| 精品国产3级a| 成人国产精品免费观看视频| 亚洲视频综合在线| 91麻豆精品91久久久久久清纯| 免费一级片91| 国产精品久久久久久久久免费樱桃 | 99re成人在线| 亚洲欧美另类在线| 欧美日韩欧美一区二区| 久久超碰97中文字幕| 国产精品网站在线观看| 91女神在线视频| 日韩经典中文字幕一区| 国产农村妇女精品| 久久久天堂av| 91精品国模一区二区三区| 日韩成人一区二区三区在线观看| 精品国产一区二区三区四区四 | 久久久777精品电影网影网| 久久电影网站中文字幕| 久久久久久麻豆| 91精品欧美久久久久久动漫| 日本中文字幕一区二区有限公司| 日韩三级在线免费观看| 国内国产精品久久| 欧美激情一区在线观看| 成人黄色免费短视频| 亚洲午夜久久久久| 久久久欧美精品sm网站| 日本高清免费不卡视频| 看国产成人h片视频| 国产日韩av一区| 欧美亚洲图片小说| 国产一区二区三区免费播放| 一区二区三区色| 精品对白一区国产伦| 岛国av在线一区| 日韩和欧美的一区| 中文字幕欧美三区| 欧美一区二区精美| 91丨九色丨黑人外教| 麻豆精品视频在线观看免费| 国产精品夫妻自拍| 日韩一区二区视频| 91女厕偷拍女厕偷拍高清| 美女mm1313爽爽久久久蜜臀| 亚洲人成在线播放网站岛国 | 欧美伊人精品成人久久综合97 | 一区二区三区在线高清| 久久久欧美精品sm网站| 制服丝袜国产精品| 色欧美日韩亚洲| 国产一区二区不卡| 亚洲三级电影网站| 国产精品久久久久国产精品日日| 777亚洲妇女| 色视频成人在线观看免| 成人激情av网| 国内外成人在线视频| 爽好多水快深点欧美视频| 欧美性色aⅴ视频一区日韩精品| 成人网在线播放| 午夜精品福利一区二区蜜股av | 成人高清视频免费观看| 视频一区二区三区中文字幕| 成人欧美一区二区三区小说| 久久蜜桃av一区二区天堂| 9191成人精品久久| 欧美视频一区二区在线观看| 99免费精品在线| caoporn国产一区二区| 国产精品一区在线观看你懂的| 精品写真视频在线观看| 日本人妖一区二区| 五月天网站亚洲| 夜色激情一区二区| 亚洲欧美日韩一区二区| 亚洲欧洲中文日韩久久av乱码| 久久精品欧美一区二区三区麻豆| 日韩免费看的电影| 日韩午夜电影av| 91视频www| 色综合久久综合中文综合网| av爱爱亚洲一区| 色综合一区二区| 91美女片黄在线| 在线免费观看视频一区| 色一情一乱一乱一91av| 色婷婷av一区二区三区大白胸| 在线免费观看日本一区| 91美女蜜桃在线| 偷窥国产亚洲免费视频| 亚洲丝袜制服诱惑| 亚洲黄色录像片| 亚洲一区二区在线免费看| 亚洲尤物在线视频观看| 亚洲成av人在线观看| 日韩电影在线看| 国产成人av电影在线播放| 国产91精品欧美| 丰满少妇久久久久久久| 91丨porny丨国产入口| 色999日韩国产欧美一区二区| 日本乱人伦一区| 日韩欧美精品在线视频| 国产欧美一区二区三区在线看蜜臀| 亚洲男人的天堂在线观看| 亚洲h动漫在线| 国产成人精品影院| 欧洲精品一区二区三区在线观看| 精品999久久久| 亚洲视频一区二区在线| 捆绑紧缚一区二区三区视频| 国产91综合一区在线观看| 欧美日韩一区在线| 久久美女艺术照精彩视频福利播放| 亚洲精品乱码久久久久久日本蜜臀| 欧美综合天天夜夜久久| 蜜桃一区二区三区四区| 国产经典欧美精品| 欧美猛男超大videosgay| 欧美tickle裸体挠脚心vk| 亚洲激情男女视频| 国产综合久久久久久鬼色| 欧美色偷偷大香| 久久综合一区二区| 日韩专区欧美专区| 播五月开心婷婷综合| 精品国产乱码久久久久久免费| 日本一区二区三区久久久久久久久不| 亚洲一区二区在线免费观看视频| 国内成人自拍视频| 欧美一区二区视频免费观看| 日韩毛片精品高清免费| 另类中文字幕网| 欧美亚洲另类激情小说| 国产欧美日韩在线视频| 日韩成人免费看| 色吊一区二区三区| 久久久久国产精品人| 日韩电影在线看| 欧美调教femdomvk| 国产精品成人一区二区三区夜夜夜| 激情综合色丁香一区二区| 色av综合在线| 亚洲一区在线视频| 国产91丝袜在线观看| 国产日韩v精品一区二区| 蜜桃免费网站一区二区三区| 日韩一级大片在线| 亚洲欧美日韩人成在线播放| 成人高清在线视频| 国产精品久久福利| 成人国产免费视频| 国产精品你懂的在线欣赏| 国产成人在线视频网站| 国产午夜精品一区二区 | 欧美成人a∨高清免费观看| 一区二区不卡在线视频 午夜欧美不卡在| 粉嫩蜜臀av国产精品网站| 久久久噜噜噜久久中文字幕色伊伊 | 欧美国产日韩精品免费观看| 国产乱码一区二区三区| 日韩精品一区二区三区在线 | 欧美在线观看视频一区二区| 国产精品国产三级国产aⅴ原创| 国产精品1区2区3区在线观看| 日韩欧美成人一区| 国产精品一二三四五| 久久蜜桃av一区精品变态类天堂 | 欧美一区二区日韩一区二区| 蜜臀av一区二区在线免费观看| 欧美军同video69gay| 亚洲不卡一区二区三区| 欧美日韩国产综合一区二区三区| 亚洲一区av在线| 欧美精三区欧美精三区| 亚洲午夜在线视频| 色老汉一区二区三区| 亚洲在线观看免费视频| 欧美日韩黄色一区二区| 日韩成人dvd| 精品国产伦一区二区三区观看方式 | 国产午夜精品一区二区三区四区 | 欧美精品一区在线观看| 久久97超碰色| 国产无一区二区| 色菇凉天天综合网| 麻豆91免费看|