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

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

?? onewire.c

?? ds2431驅動,自己定義延時和IO即可使用.
?? C
字號:
//-------------------------OneWire.c----------------------
#define  ONEWIRE

#include"OneWire.h"

//***************************************************
//1-Wire器件復位,并檢查應答;有應答返回0,無應答返回1
//***************************************************
unsigned char Reset(void)
{
    WIRE_PORT=1;
	_nop_();
    WIRE_PORT=0;
    DELAY_550us;	//復位低脈沖保持

    WIRE_PORT=1;	//釋放總線后70us讀應答
    DELAY_70us;

    if(WIRE_PORT==0)
    {
        DELAY_420us;
        return(0);
     }
    else
    {
       return(1);
     }    
}
//***************************************************
//               寫數據位1
//***************************************************
void WriteBit1(void)
{
      WIRE_PORT=1;
      WIRE_PORT=0;	//拉低總線保持6us
      DELAY_6us;

      WIRE_PORT=1;	//釋放總線延時65us
      DELAY_65us;
}
//***************************************************
//                  寫數據位0
//***************************************************
void WriteBit0(void)
{
	WIRE_PORT=1;
	WIRE_PORT=0;	//拉低總線保持65us
	DELAY_65us;

	WIRE_PORT=1;	//釋放總線延時6us
	DELAY_6us;
}
//***************************************************
//                  讀數據位
//***************************************************
unsigned char ReadBit(void)
{
	bit value;

	WIRE_PORT=1;
	WIRE_PORT=0;	//拉低總線保持6us
	DELAY_6us; 

	WIRE_PORT=1;	//釋放總線延時9us
	DELAY_9us;

	value = WIRE_PORT;	//讀取總線狀態延時55us 
	DELAY_55us;
	return value;   
}
//***************************************************
//                  寫字節
//***************************************************
void WriteByte(unsigned char value)
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
		if(value&0x01)
		{
			WriteBit1();
		}
		else
		{
			WriteBit0();
		}
		value=value>>1;
	}
}
//***************************************************
//                   讀字節
//***************************************************
unsigned char ReadByte(void)
{
	unsigned char i,value;

	value=0;
	for(i=0;i<8;i++)
	{
		if(ReadBit()) 
			value += 1;

		value=_cror_(value,1);
	}
	return value;
}


//***************************************************
//讀8位家族碼;的48位序列號;8位CRC碼;讀取成功返回0
//參數:	*id--讀取的數據存放地址
//返回:0--操作成功;1--總線不可用;2--校驗錯誤;
//***************************************************
unsigned char ReadRom(unsigned char *id)
{
	unsigned char i;

	if(Reset() != 0)
		return(1);

	WriteByte(CMD_READ_ROM);	//寫命令

	for(i=0;i<8;i++)
	{
	  	*id++ =	ReadByte();
	}

	if(Calc_Crc8(id-8,8) != 0) //校驗
		return(2);

	return(0);
}

//***************************************************
//讀EPROM
//參數:tgaddr--目標地址;len--要讀取的字節數;
//     *buffer--存放地址
//返回:0--操作成功;1--總線不可用;
//***************************************************
unsigned char ReadMemory(unsigned char tgaddr,unsigned char len,
						                  unsigned char * buffer)
{
	if(Reset() != 0)
		return(1);

	WriteByte(CMD_SKIP_ROM);		//寫命令  
	WriteByte(CMD_READ_MEMORY);	//寫命令
	WriteByte(tgaddr);	 		//寫地址低字節
	WriteByte(0); 				//寫地址高字節

	while(len--)
	{
	 	*buffer++ = ReadByte();
	}

	Reset();
	return(0);
}

//***************************************************
//DS2431的EEPROM 共為8 X 18個字節,可以看作18個8字節塊.
//參數:nblock--塊號取值(0--17) 16塊為特殊功能寄存器
//    17塊為保留;*buffer為要寫入的8字節數據起始指針
//返回:0--操作成功;1--總線不可用;  2--寫暫存器失敗;
//	   3--寫主存儲器錯誤;       4--寫暫存器校驗錯誤;
//***************************************************
unsigned char WriteBlock(unsigned char nblock,unsigned char *buffer)
{
	unsigned char sbuf[14];
	unsigned char i,temp;
	unsigned int  crcode;

	if(nblock > 17)
		return(3); //地址超出范圍 

	//構造要寫入的命令和數據
	sbuf[0] =  CMD_SKIP_ROM;
	sbuf[1] =  CMD_WRITE_SCRATCHPAD;
	sbuf[2] =  (nblock << 3); 		//寫地址低字節
	sbuf[3] =  0;			  		//寫地址高字節
	for(i =0;i<8;i++)		  		//8字節數據
		sbuf[i+4] =  *(buffer+i);

	//器件復位
	if(Reset() != 0)
		return(1); 

	//寫命令和數據
	for(i=0;i<12;i++)				
		WriteByte(sbuf[i]);	

	//讀取CRC校驗碼
	temp = ReadByte();
	crcode =  ReadByte();
	crcode =  (crcode << 8) | temp;	

	//如果沒收到CRC校驗或校驗錯誤則讀暫存器來驗證數據,如果校驗正確可略過暫存器比較
	if( (crcode ^ Calc_Crc16(sbuf+1,11)) != 0xFFFF)
		return(4);
	 
//******************讀暫存器比較寫入的數據**************
	
	if(Reset() != 0)
		return(1);

	WriteByte(CMD_SKIP_ROM);	//寫命令  
	WriteByte(CMD_READ_SCRATCHPAD);

	for(i=1;i<14;i++)
		sbuf[i] = ReadByte();

	if(sbuf[1] != (nblock << 3)) return(2);
	else if (sbuf[2] != 0) return(2);
	else if (sbuf[3] != 7) return(2); 

	for(i=0;i<8;i++)
		if(sbuf[i+4] !=  *(buffer+i)) return(2);
	
//******************拷貝暫存器數據到主存儲器**************

	//構造要寫入的命令和數據
	sbuf[1] =  CMD_COPY_SCRATCHPAD;
	sbuf[2] =  (nblock << 3); 		//寫地址低字節
	sbuf[3] =  0;			  		//寫地址高字節
	sbuf[4] =  7; 
	
	//器件復位
	if(Reset() != 0)
		return(1); 		 

	for(i=0;i<5;i++)				
		WriteByte(sbuf[i]);

	DELAY_13ms;
	if(ReadByte() == 0xaa)
	{
		Reset();
		return(0);
	}
	else
	{
		Reset();
	 	return(3);
	} 	
}

//***************************************************
//寫保護,一旦寫保護將無法撤消
//DS2431的EEPROM 共為8 X 18個字節,可以看作4 X 32 + 16.
//4個32字節頁面加8字節寄存器,加8字節保留字節
//參數:npage--的低4位分別映射到EEPROM的0--3頁,該位為1
//     則對應頁被寫保護. 
//返回:0--操作成功;1--總線不可用;  2--寫暫存器錯誤;
//	   3--寫主存儲器錯誤
//***************************************************
unsigned char WriteProtect(unsigned char npage)
{
	unsigned char i;
	unsigned char memmap[8];
	
	for(i=0;i<4;i++)
		memmap[i] =	((npage >> i) & 0x01) * 0x55; 

   return (WriteBlock(16,memmap));

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久| 欧美a级一区二区| 26uuu国产一区二区三区| 欧美一级理论片| 欧美一级xxx| 2020国产成人综合网| 久久免费的精品国产v∧| 国产欧美日韩亚州综合| 国产精品丝袜一区| 日韩毛片视频在线看| 亚洲精品国产成人久久av盗摄| 亚洲激情av在线| 日韩精品乱码av一区二区| 久久国产精品露脸对白| 国产黄人亚洲片| 91香蕉视频mp4| 色噜噜久久综合| 在线播放日韩导航| 精品美女一区二区| 国产精品久久久久久福利一牛影视 | www.色精品| 91久久精品国产91性色tv| 欧美日韩在线一区二区| 欧美α欧美αv大片| 国产精品乱码一区二三区小蝌蚪| 亚洲三级理论片| 蜜桃av一区二区在线观看| 国产麻豆欧美日韩一区| 色播五月激情综合网| 日韩午夜激情视频| 欧美激情自拍偷拍| 亚洲成a人v欧美综合天堂下载| 久久99精品国产.久久久久久 | 亚洲高清不卡在线观看| 日本大胆欧美人术艺术动态| 国产成人精品1024| 884aa四虎影成人精品一区| 国产三级一区二区三区| 亚洲国产日韩综合久久精品| 国产成人精品免费视频网站| 欧美日韩一级片在线观看| 国产精品网友自拍| 青草国产精品久久久久久| 99精品桃花视频在线观看| 日韩区在线观看| 亚洲在线视频一区| 国产不卡免费视频| 欧美大度的电影原声| 亚洲综合色网站| www.欧美.com| 久久久久久夜精品精品免费| 舔着乳尖日韩一区| 91美女片黄在线观看| 国产日韩一级二级三级| 蜜桃91丨九色丨蝌蚪91桃色| 在线看日韩精品电影| 成人免费一区二区三区视频| 国产真实乱对白精彩久久| 欧美女孩性生活视频| 亚洲午夜激情av| 色呦呦网站一区| **欧美大码日韩| 成人福利视频在线看| 久久精品一区二区三区不卡| 麻豆国产精品一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 91精品国产入口| 亚洲一二三区不卡| 欧美性猛交xxxxxxxx| 一区二区三区国产| 在线视频欧美精品| 亚洲综合自拍偷拍| 欧美四级电影网| 亚洲不卡在线观看| 欧美剧在线免费观看网站| 亚洲成人在线观看视频| 91精品国产一区二区人妖| 五月综合激情日本mⅴ| 欧美精品xxxxbbbb| 经典三级一区二区| 亚洲精品一区二区三区99| 国产麻豆一精品一av一免费| 国产日韩一级二级三级| av在线播放成人| 亚洲激情自拍视频| 91麻豆精品国产自产在线| 久久精品国产精品亚洲精品| 久久久久久一级片| 91视视频在线观看入口直接观看www| 亚洲同性同志一二三专区| 欧美日韩一区中文字幕| 另类人妖一区二区av| 久久久影视传媒| 色综合亚洲欧洲| 日韩专区欧美专区| 欧美精品一区二区三| 成人伦理片在线| 亚洲成人动漫精品| 久久久久亚洲蜜桃| 欧美性生活影院| 国产毛片一区二区| 亚洲一区二区在线视频| 欧美日韩不卡视频| 国产福利视频一区二区三区| 亚洲情趣在线观看| 欧美电影免费观看高清完整版| 高清不卡一区二区| 午夜精品在线视频一区| xf在线a精品一区二区视频网站| av综合在线播放| 日本中文字幕一区二区有限公司| 久久精品视频免费| 欧美日韩中文一区| 裸体在线国模精品偷拍| 亚洲欧洲一区二区三区| 欧美一级视频精品观看| 福利一区二区在线| 蜜臀91精品一区二区三区 | 精品久久久久久亚洲综合网| 国产精品538一区二区在线| 亚洲在线观看免费视频| 欧美国产一区视频在线观看| 欧美日韩国产区一| 91蜜桃视频在线| 国产激情一区二区三区| 日韩专区中文字幕一区二区| 亚洲三级电影网站| 亚洲国产精品成人综合| 精品国产欧美一区二区| 欧美亚洲一区二区在线观看| 国产盗摄一区二区三区| 日本伊人午夜精品| 亚洲无线码一区二区三区| 欧美国产日韩a欧美在线观看 | 久久久亚洲精品石原莉奈| 精品视频在线免费观看| 色屁屁一区二区| 94色蜜桃网一区二区三区| 国产suv精品一区二区三区 | 国产精品免费视频网站| 日韩三级视频在线观看| 欧美精品成人一区二区三区四区| 99精品热视频| 99久久婷婷国产综合精品电影| 国产mv日韩mv欧美| 成人亚洲一区二区一| 风流少妇一区二区| 国产精品亚洲第一| 国产超碰在线一区| 99久久免费视频.com| www.亚洲国产| 色视频成人在线观看免| 欧美这里有精品| 欧美在线不卡视频| 在线观看一区二区精品视频| 欧美在线影院一区二区| 欧美日韩中字一区| 91精品国产乱码| 精品免费视频.| 国产精品三级久久久久三级| 中文字幕国产一区二区| 亚洲人快播电影网| 亚洲成av人片在www色猫咪| 视频一区二区欧美| 蜜桃精品在线观看| 国产不卡视频在线观看| 91网上在线视频| 欧美高清一级片在线| 日韩丝袜美女视频| 国产日本亚洲高清| 亚洲欧美日韩国产成人精品影院| 亚洲与欧洲av电影| 免费人成黄页网站在线一区二区| 韩国精品久久久| 99re视频精品| 日韩一区二区免费高清| 国产色综合一区| 亚洲无线码一区二区三区| 激情综合亚洲精品| 91同城在线观看| 日韩一区二区三| 亚洲私人黄色宅男| 蜜桃久久久久久| 成人爱爱电影网址| 欧美一级在线视频| 成人欧美一区二区三区视频网页| 午夜影视日本亚洲欧洲精品| 国产一区二区三区久久悠悠色av| 成人午夜电影网站| 91精品国产免费久久综合| 国产精品私房写真福利视频| 五月婷婷久久丁香| 成人白浆超碰人人人人| 91精品免费在线| ...xxx性欧美| 国产精品综合在线视频| 欧美无砖专区一中文字| 国产精品婷婷午夜在线观看| 日韩国产成人精品| 一本大道久久a久久综合婷婷|