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

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

?? ds18b20.h

?? 基于8051的DS18B20的數字溫度計源程序,可以精確到2個小數點位
?? H
字號:
//===========================================
//DS18B20 drive
//===========================================
#include <intrins.h>
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
/*----------------引腳定義-----------------*/
sbit DQ=P2^7;

/*----------------變量定義-----------------*/
uchar code offset=2;				//溫度顯示時第一位數字的x方向的偏移量
uchar code ty=0;					//溫度顯示在y方向的位置
uchar code SKROM=0xcc;				//跳過ROM讀取的指令
static uchar code CONVT=0x44;		//溫度轉換指令
uchar code RROM=0x33;				//讀取ROM指令
uchar code WSCR=0x4e;				//寫寄存器指令
uchar code RPOW=0xb4;				//讀取電源類型指令
uchar code RSCR=0xbe;				//讀取寄存器指令
//uchar code MROM=0x55;				//匹配ROM指令

uchar data f_t=1;
uchar data TEMPL=0;
uchar data TEMPM=0;
uchar data TH=0;
uchar data TL=0;
uchar data CONF=0;
uchar data FamilyCode=0;
uchar data SerialNumber[6];
uchar data CRC=0;
/*----------------函數定義-----------------*/

//===========================================
//函數名稱:timer0()
//函數功能:產生較準確的定時中斷
//===========================================
void timer0() interrupt 1 using 0
{
	f_t=0;
}

//===========================================
//函數名稱:delay(uint t)
//函數功能:延時
//===========================================
void delay(uint t)
{
 	uint i=0;
	for(i=0;i<t;i++);
}

//----------------------------------------
//函數名稱:ShowByte(uchar x,uchar y,uchar num)
//功能描述:以二進制顯示一個字節中數據
//----------------------------------------	
void ShowByte(uchar x,uchar y,uchar num)
{
 	uchar i=0;
	uchar str[8];
	str[8]='\0';
	for(i=0;i<8;i++)
		str[i]=(num>>(7-i))&0x01;
	for(i=0;i<8;i++)
	{									   
		write_LCD_char(x+i,y,str[i]+'0');
	}
}

//===========================================
//函數名稱:WriteDQ(uchar num)
//函數功能:寫數據線一位
//===========================================
void WriteDQ(uchar num)
{
 	if(num==0)
	{
	 	DQ=0;
		f_t=1;
		TH0=0xff;
		TL0=0x60;
		TR0=1;
		while(f_t);
		TR0=0;
		DQ=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();			
	}
	else
	{
	 	DQ=0;
		f_t=1;
		TH0=0xff;
		TL0=0xf6;
		TR0=1;
		while(f_t);
		TR0=0;
		f_t=1;
		DQ=1;
		TH0=0xff;
		TL0=0x60;
		TR0=1;
		while(f_t);
		TR0=0;
		
	}
}
//===========================================
//函數名稱:ReadDQ()
//函數功能:讀數據線
//===========================================
uchar ReadDQ()
{
	DQ=0;
	f_t=1;
	TH0=0xff;
	TL0=0xe2;
	TR0=1;
	while(f_t);
	TR0=0;
	DQ=1;
	return DQ;	
}

//===========================================
//函數名稱:Reset()
//函數功能:產生復位信號
//===========================================
void Reset()
{
	DQ=0;	 	
	f_t=1;		
	TH0=0xfb;	
	TL0=0x7e;	
	TR0=1;		
	while(f_t);	
	TR0=0;		
	DQ=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();		
}
//===========================================
//函數名稱:WriteByte(uchar COMM)
//函數功能:寫入一個字節
//===========================================
void WriteByte(uchar COMM)
{
	uchar i=0;
	for(i=0;i<8;i++)
	{
	 	if((COMM>>i)&0x01)
				WriteDQ(1);
		 else
		 		WriteDQ(0);
	}	
}

uchar ReadByte()
{
 	uchar i=0,in=0,temp=0;
	for(i=0;i<8;i++)
	{
	 	temp=ReadDQ();
		if (temp==1)
          in=(in>>1)|0x80;
      	else
          in=(in>>1)&0x7f;
	}
	return in;
}

//===========================================
//函數名稱:Init()
//函數功能:初始化系統
//===========================================
uchar Init()
{
	uchar f_i=0;
	DQ=0;	 		  //
	f_t=1;			  
	TH0=0xfb;		  //延時600us
	TL0=0x50;		  //產生復位脈沖 
	TR0=1;			  
	while(f_t);		  
	TR0=0;			  
	DQ=1;			  //
	f_t=1;			  //
	TH0=0xff;		  //延時80us
	TL0=0x60;
	TR0=1;			  //
	while(f_t);
	TR0=0;
	f_i=!DQ;
	do{}while(!DQ);
	return f_i; //成功返回1   失敗返回0	
}

//===========================================
//函數名稱:WriteSCR(uchar TH,uchar TL,uchar config)
//函數功能:寫寄存器
//===========================================
void WriteSCR(uchar TH,uchar TL,uchar CONFIG)		  
{
	WriteByte(WSCR);
	WriteByte(TH);
	WriteByte(TL);
	WriteByte(CONF);
	Reset();
	while(!Init());
				
}

//===========================================
//函數名稱:ReadSCR()
//函數功能:讀寄存器
//===========================================
void ReadSCR()
{
	uchar i=0,p[8];
	WriteByte(SKROM);
	WriteByte(RSCR);
	for(i=0;i<8;i++)
	{
	 	p[i]=ReadByte();
	}
	Reset();
	while(!Init());
	TEMPL=p[0];
	TEMPM=p[1];
	TH=p[2];
	TL=p[3];
	CONF=p[4];
}

//===========================================
//函數名稱:ReadPower()
//函數功能:讀取電源類型
//===========================================
uchar ReadPower()
{
	WriteByte(RPOW);
	Reset();
	while(!Init());
	return DQ;	//0為電容電源,1為外部電源
}

//===========================================
//函數名稱:ConvT()
//函數功能:轉化溫度
//===========================================
void ConvT()
{
	WriteByte(SKROM);
	WriteByte(CONVT);
	DQ=1;
	while(!DQ);
	Reset();
	while(!Init());		
}

//----------------------------------------
//函數名稱:ShowT()
//功能描述:將讀出的溫度顯示
//----------------------------------------	
void ShowT()
{
	uchar data tstr[9];
	uchar data WTEMPL[8];
	uchar data WTEMPM[8];
	uchar data i=0;
	uint data sum=0;				//整數位和 
	for(i=0;i<8;i++)
		WTEMPL[i]=(TEMPL>>i)&0x01;
	for(i=0;i<8;i++)
		WTEMPM[i]=(TEMPM>>i)&0x01;
	sum=WTEMPL[4]+WTEMPL[5]*2+WTEMPL[6]*4+WTEMPL[7]*8
			+WTEMPM[0]*16+WTEMPM[1]*32+WTEMPM[2]*64;
	if(WTEMPM[3]) tstr[0]='-';
	else tstr[0]=' ';
	if(WTEMPL[0])	tstr[8]='5';
	else	tstr[8]='0';
	if(WTEMPL[1])
	{
	 	switch(tstr[8])
		{
		 	case '0':tstr[7]='5';break;
			case '5':tstr[7]='7';break;
			default: tstr[7]='0';
		}
	}
	else
	{
		switch(tstr[8])
		{
		 	case '0':tstr[7]='0';break;
			case '5':tstr[7]='2';break;
			default: tstr[7]='0';
		}
	}
	if(WTEMPL[2])
	{
	 	switch(tstr[7])
		{
		 	case '0':tstr[6]='5';break;
			case '2':tstr[6]='1';break;
			case '5':tstr[6]='7';break;
			case '7':tstr[6]='3';break;
			default: tstr[6]='0';
		}
	}
	else
	{
	 	switch(tstr[7])
		{
		 	case '0':tstr[6]='0';break;
			case '2':tstr[6]='6';break;
			case '5':tstr[6]='2';break;
			case '7':tstr[6]='8';break;
			default: tstr[6]='0';
		}
	}
	if(WTEMPL[3])
	{
	 	switch(tstr[6])
		{
		 	case '0':tstr[5]='5';break;
			case '1':tstr[5]='8';break;
			case '2':tstr[5]='6';break;
			case '3':tstr[5]='9';break;
			case '5':tstr[5]='7';break;
			case '6':tstr[5]='5';break;
			case '7':tstr[5]='8';break;
			case '8':tstr[5]='6';break;
			default: tstr[5]='0';
		}
	}
	else
	{
	 	switch(tstr[6])
		{
		 	case '0':tstr[5]='0';break;
			case '1':tstr[5]='3';break;
			case '2':tstr[5]='1';break;
			case '3':tstr[5]='4';break;
			case '5':tstr[5]='2';break;
			case '6':tstr[5]='0';break;
			case '7':tstr[5]='3';break;
			case '8':tstr[5]='1';break;
			default: tstr[5]='0';
		}
	}
	tstr[4]='.';
	if(WTEMPM[0]&&WTEMPM[1]&&WTEMPM[2])
	{
	 	tstr[1]='1';
	}
	else tstr[1]=' ';
	tstr[2]=(sum%100)/10+'0';
	tstr[3]=sum%10+'0';
/*	for(i=0;i<8;i++)
	{									   
		write_LCD_char(7-i,0,WTEMPL[i]+'0');
	}
	write_LCD_str(0,1,"TEML");
	for(i=0;i<8;i++)
	{									   
		write_LCD_char(15-i,0,WTEMPM[i]+'0');
	}*/
	for(i=0;i<9;i++)
	{
		write_LCD_char(offset+i,ty,tstr[i]);	
	}	
	write_LCD_char(offset+9,ty,0);
}

//----------------------------------------
//函數名稱:ReadFamilyCode()
//功能描述:讀取器件的FamilyCode
//----------------------------------------	
void ReadFamilyCode()
{
	while(!Init());
	WriteByte(RROM);
	FamilyCode=ReadByte();
	while(!Init());	
}

//----------------------------------------
//函數名稱:ReadSerialNumber()
//功能描述:讀取器件的SerialNumber
//----------------------------------------	
void ReadSerialNumber()
{
	uchar i=0;
	while(!Init());
	WriteByte(RROM);
	ReadByte();				//跳過FamilyCode的讀取
	for(i=0;i<6;i++)
	{
	 	SerialNumber[i]=ReadByte();
	}
	while(!Init()); 	
}

//----------------------------------------
//函數名稱:ReadCrc()
//功能描述:讀取器件的CRC
//----------------------------------------	
void ReadCrc()
{
	uchar i=0;
	while(!Init());
	WriteByte(RROM);
	for(i=0;i<7;i++) ReadByte();
 	CRC=ReadByte();
	while(!Init());
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲嫩草精品久久| 蜜臀av性久久久久蜜臀av麻豆| 亚洲欧美中日韩| 日韩精品一级二级 | 国产精品亲子伦对白| 亚洲精品v日韩精品| 免费成人av在线播放| av在线这里只有精品| 日韩午夜激情视频| 亚洲欧洲中文日韩久久av乱码| 久久福利资源站| 91激情五月电影| 国产欧美视频一区二区| 日韩av电影一区| 91麻豆精品在线观看| 欧美激情资源网| 久久99久久久欧美国产| 欧美日韩国产一区| 亚洲三级在线观看| k8久久久一区二区三区 | 精品国产乱码91久久久久久网站| 亚洲美女免费视频| 成人精品亚洲人成在线| 久久天天做天天爱综合色| 亚洲va韩国va欧美va| 色域天天综合网| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日韩免费视频线观看| 亚洲综合久久久| 91浏览器打开| 1024成人网| 91性感美女视频| 日韩毛片视频在线看| 国v精品久久久网| 国产亚洲精品7777| 国产精品1区2区3区| 欧美成人官网二区| 精品一区二区久久久| 日韩欧美电影一二三| 美女脱光内衣内裤视频久久影院| 在线成人午夜影院| 日本视频一区二区三区| 欧美人xxxx| 日韩av电影天堂| 日韩久久免费av| 精品综合免费视频观看| 久久影音资源网| 国产黄色精品视频| 国产精品久久久久久一区二区三区| 福利视频网站一区二区三区| 国产精品女主播av| 91蜜桃视频在线| 亚洲成人一区在线| 精品国产三级电影在线观看| 精品综合久久久久久8888| 国产日产欧美一区| 91毛片在线观看| 亚洲国产精品久久人人爱蜜臀| 欧美日韩黄色影视| 美国一区二区三区在线播放| 欧美成人一区二区| 暴力调教一区二区三区| 亚洲女人小视频在线观看| 91精品久久久久久蜜臀| 国产精品一区在线观看乱码| 国产精品天美传媒| 欧美精品日韩一本| 国产一区二区福利视频| 一区二区三区中文字幕在线观看| 欧美日韩午夜精品| 国产精品主播直播| 一区二区三区国产| 久久久综合九色合综国产精品| 成人国产精品免费网站| 香港成人在线视频| 国产女主播视频一区二区| 欧美性大战久久| 国内成人精品2018免费看| 亚洲欧美日韩国产成人精品影院| 欧美日韩1234| 成人精品电影在线观看| 午夜av一区二区三区| 国产欧美日韩精品a在线观看| 欧美丝袜自拍制服另类| 国产伦精品一区二区三区免费| 一区2区3区在线看| 国产视频一区在线播放| 欧美日本一区二区| 懂色av中文一区二区三区| 日韩一区欧美二区| 亚洲精品高清视频在线观看| 久久精子c满五个校花| 欧美日韩在线播| 99亚偷拍自图区亚洲| 精品一区二区在线观看| 香蕉久久夜色精品国产使用方法 | 国产亲近乱来精品视频| 欧美日韩一区二区在线观看视频| 国产**成人网毛片九色| 久久99久久久久| 亚洲第一二三四区| 国产精品国产成人国产三级| 精品第一国产综合精品aⅴ| 欧美日韩一区二区三区不卡 | 麻豆传媒一区二区三区| 亚洲一卡二卡三卡四卡| 国产精品美女久久久久久 | 激情综合色丁香一区二区| 亚洲一区二区欧美| 一区二区三区在线观看网站| 久久久午夜精品理论片中文字幕| 欧美一级艳片视频免费观看| 欧美伊人精品成人久久综合97 | 久久99在线观看| 日本成人在线不卡视频| 亚洲va韩国va欧美va| 亚洲图片一区二区| 亚洲综合久久久久| 亚洲一区二区三区三| 亚洲综合一区二区三区| 亚洲一区二区不卡免费| 亚洲一区二区在线播放相泽| 1000部国产精品成人观看| 国产精品久久久久久久裸模| 欧美国产在线观看| 国产精品国产三级国产普通话三级 | 久久亚洲二区三区| 久久亚洲一级片| 国产三区在线成人av| 久久精品视频在线免费观看| 久久久久久久综合日本| 国产欧美日韩久久| 亚洲免费在线视频一区 二区| 亚洲色图制服诱惑| 亚洲一区二区欧美日韩| 免费观看一级欧美片| 韩国av一区二区三区四区| 成人免费观看av| 日本高清不卡在线观看| 欧美日韩成人综合在线一区二区| 91麻豆精品国产无毒不卡在线观看| 欧美一级片免费看| 久久亚洲精品小早川怜子| 国产精品成人免费精品自在线观看| 亚洲美女视频一区| 天堂成人国产精品一区| 狠狠网亚洲精品| 成人h精品动漫一区二区三区| 欧洲另类一二三四区| 日韩欧美成人一区二区| 亚洲国产精品高清| 亚洲成在线观看| 国产盗摄一区二区| 欧美三级日本三级少妇99| 欧美一区二区不卡视频| 中文字幕一区二区三区不卡在线| 亚洲va韩国va欧美va精品| 美女免费视频一区| 91亚洲精品乱码久久久久久蜜桃| 欧美一区二区免费| 中文字幕中文字幕一区二区| 五月婷婷激情综合| 丁香婷婷综合激情五月色| 欧美日韩日日摸| 欧美国产日韩精品免费观看| 亚洲福利视频三区| 国产成人在线免费观看| 4hu四虎永久在线影院成人| 国产日韩影视精品| 日韩中文字幕区一区有砖一区 | 国产精品国产三级国产普通话蜜臀 | 欧美色图在线观看| 久久嫩草精品久久久久| 亚洲成人免费av| 成人午夜免费电影| 欧美一区二区三区影视| 亚洲男人天堂av| 国产福利不卡视频| 91精品国产一区二区| 亚洲色图欧美偷拍| 国产精品一区二区三区乱码| 欧美卡1卡2卡| 亚洲女与黑人做爰| 成人在线综合网| 精品国产青草久久久久福利| 一区二区三区影院| 99久久精品国产导航| 国产天堂亚洲国产碰碰| 韩国理伦片一区二区三区在线播放| 欧美疯狂做受xxxx富婆| 一区二区三区在线视频免费观看| 高清成人免费视频| 精品国产91乱码一区二区三区| 午夜精品一区二区三区电影天堂 | 一区二区三区免费| av在线不卡观看免费观看| 久久亚洲一区二区三区明星换脸 | 欧美二区在线观看| 亚洲电影第三页| 欧美日韩亚洲综合在线|