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

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

?? eeprom.c

?? ATMEL 20C04 EEPROM 讀寫程序
?? C
字號:
#include "p18f87j10.h"
#include "public.h"
#include "eeprom.h"
#include "delays.h"
#include "dwt_lcd_config.h"

#define WRITE 0xA0
#define READ 0xA1

struct EEPARA eepara;
//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void delay(void)
{
	Delay10TCYx(2);
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void I_start(void)
{
	ECLK = 0;
	EDATA_OUT;
	EDATA = 1;
	delay();
	ECLK = 1;
	delay();
	EDATA = 0;
	delay();
	ECLK = 0;
	delay();
	EDATA = 1;
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void I_stop(void)
{
	ECLK = 0;
	EDATA_OUT;
	EDATA = 0;
	delay();
	ECLK = 1;
	delay();
	EDATA = 1;
	delay();
	ECLK = 0;
	delay();
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void I_init(void)
{
	ECLK = 0;
	I_stop();
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
char I_clock(void)
{
	//bit sample;
	char sample, i;
	i = 0;
	ECLK = 1;
	EDATA_IN;
	delay();
	i = EDATA;
	if (i == 1)
	{
		sample = 1;
	}
	else
	{
		sample = 0;
	}
	ECLK = 0;
	delay();
	return (sample);
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void I_clock1(void)
{
	ECLK = 1;
	delay();
	ECLK = 0;
	delay();
}
//----------------------------------------------------------------------------------
void reset_eeprom(void)
//----------------------------------------------------------------------------------
// communication reset: DATA-line=1 and at least 9 SCK cycles followed by transstart
//       _____________________________________________________         ________
// DATA:                                                      |_______|
//          _    _    _    _    _    _    _    _    _        ___     ___
// SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______|   |___|   |______
{
	unsigned char i;
	EDATA_OUT;
	I_start();
	EDATA = 1; //Initial state
	for (i = 0; i < 9; i++)
	//9 SCK cycles
	{
		ECLK = 1;
		delay();
		ECLK = 0;
		delay();
	}
	I_start();
	I_stop();
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
char I_send(char I_data)
{
	char i;
	EDATA_OUT;
	for (i = 0; i < 8; i++)
	{
		//EDATA=(bit)(I_data&0x80);
		if ( (I_data &0x80) == 0x80)
		{
			EDATA = 1;
		}
		else
		{
			EDATA = 0;
		}
		I_data = I_data << 1;
		I_clock1();
	}
	EDATA = 1;
	if (I_clock() == 1)
	{
		return (0);
	}
	else
	{
		return (1);
	}
	//return(~I_clock());   
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
char I_receive(void)
{
	char I_data = 0;
	char i;
	for (i = 0; i < 8; i++)
	{
		I_data *= 2;
		if (I_clock() == 1)
		{
			I_data++;
		}
	}
	return (I_data);
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void I_ACK(void)
{
	EDATA_OUT;
	EDATA = 0;
	I_clock1();
	EDATA = 1;
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
char E_address(char Address)
{
	I_start();
	if (I_send(WRITE) )
	{
		return (I_send(Address) );
	}
	else
	{
		return (0);
	}
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
char E_read_block(void)
{
	uchar i, j;
	uchar *p;
	uchar temp[10], crc = 2;
	
	j = sizeof(eepara);
	p = (void *)&eepara;
	if (E_address(0) )
	{
		I_start();
		if (I_send(READ) )
		{
			for (i = 0; i < j; i++)
			{
				temp[i] = I_receive();
				if(i >= (j-1))
				{
					if(crc != temp[i])
						return 0;
//					return 1;
				}
				else
					crc += temp[i];
				I_ACK();
			}
			I_clock1();
			I_stop();
			for(i = 0; i < j; i++)
			{
				*p = temp[i];
				p++;
			}
			return (1);
		}
		else
		{
			I_stop();
			return (0);
		}
	}
	else
	{
		I_stop();
	}
	return (0);
}


//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void wait_50ms(void)
{
	int i;
	for (i = 0; i < 10000; i++)
		;
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void wait_5ms(void)
{
	int i;
	for (i = 0; i < 1000; i++)
		;
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void wait_2ms(void)
{
	int i;
	for (i = 0; i < 50; i++)
		;
}

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
char E_write_block(void)
{
	char i;
	uchar *p;
	uchar crc = 2;
	
	p = (void *)&eepara;
	for (i = 0; i < (sizeof(eepara)-1); i++)
	{
		crc += *p;
		p++;
	}	
	*p = crc;
	p = (void *)&eepara;
	for (i = 0; i < sizeof(eepara); i++)
	{
		if (E_address(i) && I_send(*p) )
		{
			p++;
			I_stop();
			wait_5ms();
		}
		else
		{
			return (0);
		}
	}
	return (1);
}

void Eeprom_Init(void)
{
	TRISJbits.TRISJ4 = IO_OUTPUT; //E2PROM CONTROL
	TRISJbits.TRISJ5 = IO_OUTPUT;
	EWP = 1;
	reset_eeprom();
}

uchar Eeprom_Read(void )
{
	uchar i, ok, crc;
	uchar *p;

	for(ok = 0, i = 0; i < 10; i++)
	{
		reset_eeprom();
		wait_5ms();	
		if(E_read_block() == 1)
		{
			ok = 1;
			break;
		}
	}
	if(!ok)
	{
		p = (void *)&eepara;
		eepara.Ifr_Warning_Ceiling = 90;
		eepara.address = 1;
		eepara.speed = 24;
		eepara.verh = SOFT_VERH;
		eepara.verl = SOFT_VERL;
		for(crc = 2, i = 0; i < (sizeof(eepara)-1); i++)
		{
			crc += *p;
			p++;
		}
		eepara.crc = crc;
	}
	return ok;
}

uchar Eeprom_Write(void)
{
	uchar i, j, ok;
	
	for(i = 0, ok = 0; i< 10; i++)
	{
		reset_eeprom();
		wait_5ms();
		EWP = 0;
		j = E_write_block();
		EWP = 1;
		if(j == 1)
		{
			ok = 1;
			break;
		}
	}
	return ok;
}


















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
依依成人精品视频| 欧美日韩卡一卡二| 激情六月婷婷久久| 午夜电影一区二区三区| 亚洲第一电影网| 亚洲一区电影777| 亚洲成人你懂的| 日本欧美在线观看| 精品一区二区免费| 国产激情91久久精品导航| 国产精品一卡二卡在线观看| 国产精品自拍三区| 99久久精品国产网站| 91视频免费观看| 欧美日韩国产美| 欧美成人猛片aaaaaaa| 欧美大尺度电影在线| 久久久91精品国产一区二区精品| 久久久久久久久岛国免费| 亚洲国产精品激情在线观看| 成人欧美一区二区三区在线播放| 一区二区三区中文在线| 日韩激情在线观看| 国产大陆精品国产| 欧美亚洲一区二区在线| 91精品国产综合久久久久久| 国产午夜精品福利| 亚洲一区二区三区免费视频| 麻豆国产精品视频| 91啪在线观看| 日韩精品一区二区三区三区免费 | 一本大道久久a久久综合婷婷| 欧美性大战久久| 久久久久久免费毛片精品| 亚洲乱码精品一二三四区日韩在线| 丝袜美腿亚洲综合| 成人综合婷婷国产精品久久蜜臀| 在线中文字幕一区| 欧美国产综合色视频| 视频一区二区三区入口| 9i在线看片成人免费| 欧美一区二区福利视频| 最新高清无码专区| 久久成人18免费观看| 在线看不卡av| 中文字幕av免费专区久久| 日韩福利电影在线| 色婷婷av一区二区三区软件 | 国产精品免费看片| 日本怡春院一区二区| 色综合久久综合中文综合网| 精品国产伦一区二区三区观看体验 | 精品国产1区2区3区| 亚洲国产欧美日韩另类综合| 高清成人在线观看| 精品国产乱码久久久久久浪潮| 亚洲国产日韩在线一区模特| 99精品1区2区| 亚洲国产经典视频| 国产精品综合在线视频| 欧美成人猛片aaaaaaa| 日韩国产成人精品| 欧美亚一区二区| 亚洲日本中文字幕区| 99视频在线精品| 中文欧美字幕免费| 成人精品鲁一区一区二区| 久久免费看少妇高潮| 精品一区二区三区香蕉蜜桃| 日韩天堂在线观看| 麻豆国产91在线播放| 日韩欧美国产综合在线一区二区三区| 亚洲国产另类精品专区| 欧美在线观看视频在线| 亚洲一区二区三区在线播放 | 亚洲国产精品一区二区www在线| 色综合久久中文综合久久97 | 欧美日韩一区二区欧美激情| 一区二区三区91| 色婷婷激情综合| 天天操天天干天天综合网| 欧美日韩国产色站一区二区三区| 亚洲bt欧美bt精品777| 欧美日本国产一区| 麻豆视频一区二区| 国产欧美日韩在线| 色综合中文综合网| 综合久久久久久久| 欧美日韩精品一二三区| 美日韩一区二区三区| 久久久亚洲精华液精华液精华液| 成人午夜免费电影| 一区二区成人在线视频| 91精品蜜臀在线一区尤物| 麻豆国产91在线播放| 国产精品色一区二区三区| 91免费精品国自产拍在线不卡| 亚洲国产aⅴ成人精品无吗| 欧美一卡2卡3卡4卡| 国产一区二区按摩在线观看| 国产精品人人做人人爽人人添| 色综合久久综合| 青青草伊人久久| 欧美韩国日本不卡| 欧美三级欧美一级| 国产成人一区在线| 亚洲sss视频在线视频| 欧美精品一区二区三区在线播放| 99精品1区2区| 韩国成人在线视频| 亚洲美女视频在线观看| 精品区一区二区| 一本久久精品一区二区| 九一九一国产精品| 亚洲一区二区三区三| 日韩中文欧美在线| 欧美天堂亚洲电影院在线播放| 国产日韩欧美精品一区| 国产欧美日韩不卡| 美国十次了思思久久精品导航| 欧美电影免费观看高清完整版在| 91亚洲国产成人精品一区二三| 午夜精品久久久久影视| 国产精品丝袜黑色高跟| 日韩欧美色电影| 欧美中文字幕一区二区三区 | 日韩黄色一级片| 中文字幕中文乱码欧美一区二区| 91精品午夜视频| 欧美影院午夜播放| 99久久777色| 国产福利一区二区三区视频| 奇米精品一区二区三区在线观看一| 国产精品久久久久久久久免费相片| 日韩精品一区二区三区swag| 欧美日韩mp4| 欧美日韩大陆一区二区| 91国内精品野花午夜精品| 成人动漫av在线| 成人一二三区视频| 国产高清久久久久| 国产一区二三区| 久久精品免费看| 久久精品国产亚洲高清剧情介绍 | 国产精品亚洲人在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 免费亚洲电影在线| 日产欧产美韩系列久久99| 夜夜揉揉日日人人青青一国产精品| 亚洲人成小说网站色在线| 中文字幕一区二区三区精华液| 国产精品毛片无遮挡高清| 中文字幕不卡在线观看| 中文字幕欧美激情| 国产精品亲子乱子伦xxxx裸| 欧美国产日本视频| 国产精品久久久久久久蜜臀| 中文字幕在线视频一区| 亚洲人成精品久久久久久| 一区二区在线免费观看| 亚洲午夜在线视频| 丝瓜av网站精品一区二区 | 高清av一区二区| aaa欧美日韩| 日本韩国欧美一区| 欧美高清视频在线高清观看mv色露露十八| 欧美中文字幕一二三区视频| 欧美日韩一区三区| 日韩视频一区二区三区| 久久久久久久电影| 国产精品久久久久四虎| 亚洲国产视频一区二区| 蜜桃在线一区二区三区| 国产成人精品午夜视频免费| 91网站在线观看视频| 在线播放/欧美激情| 久久色在线视频| 亚洲欧洲中文日韩久久av乱码| 亚洲福利视频导航| 久久精品国产一区二区三 | 国产精品天美传媒沈樵| 一区二区在线观看视频在线观看| 美女视频黄频大全不卡视频在线播放| 国产综合色产在线精品| 色8久久精品久久久久久蜜| 日韩午夜在线影院| 国产精品国产a级| 麻豆91免费看| 91老师国产黑色丝袜在线| 日韩精品在线看片z| 亚洲天堂免费看| 韩国v欧美v日本v亚洲v| 欧美在线观看视频在线| 国产日韩欧美激情| 日韩国产在线观看一区| av一区二区三区四区| 欧美一区二区黄色| 一区二区三区中文字幕在线观看| 国产原创一区二区| 欧美理论在线播放|