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

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

?? ds18b20.c

?? 經精心修改后
?? C
字號:
//文件名:ds18b20.c
//功能:實現溫度顯示
//硬件連接:外部電源供電,且只有1個DS18B20
//原理:單總線協議(讀取溫度七步驟,如程序注釋)
//注意:此程序晶振為12M,其他晶振需跟據DS18B20資料修改
//編寫:王曉榮
//日期:20070626
////////////////////////////////////////////////////////////////////////////

#include <REGX51.H>	 
#include <intrins.h>	 //	聲明_nop_()  便于實現延時
#define DS18B20 P1_0 
unsigned char xdata LEDSEG _at_ 0xfeff;	  //P2.0
unsigned char xdata LEDBIT _at_ 0xfdff;	  //P2.1
unsigned char code LEDMAP[] =
{
	0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d,  
	0x07, 0x7f, 0x6f, 0x00, 0x79, 0x46, 0x40,
	//                 滅    "E"   "+"   "-"
};
bit DS18B20_FLG = 0;    //“1”:DS18B20存在 ;“0”:不存在
bit TEMP_FLG = 0;       //“1”:溫度為負
bit T1S_FLG = 0;		//“1”:1秒鐘到
unsigned int t1s; 
unsigned char LEDBuf[6];

//定時中斷
Timer0() interrupt 1
{
	t1s++;
	if(4000 == t1s)
	{
		t1s =0;	
		T1S_FLG = 1;	
	}
}

void delay(unsigned int i)
{
	while(i--);
}

//顯示子函數
display()
{
	unsigned char i;
	unsigned char outbit;
	outbit = 0x01;  // 從右邊開始顯示
	for (i = 0; i < 4; i++)
	{
		LEDBIT = 0x00;     // 關所有LED
		LEDSEG = LEDMAP[LEDBuf[i]];
		LEDBIT = outbit;
		delay(100);
		outbit <<= 1;     // 顯示下一位
	}
}

/////////////////////////////////////////////////////////////////////////////
//DS18B20驅動 

//初始化DS18B20步驟:
//    1)總線拉低,并延時480us-960us
//    2)總線拉高,等待回應,如DS18B20為“0”則初始化成功,
//       如等待60us仍無回應,則DS18B20不存在
Init_DS18B20(void)
{
	bit re = 0;
	unsigned char temp = 30;	
	DS18B20 = 1;    
	_nop_();  		//無需精確
	_nop_();
	DS18B20 = 0;    //拉低
	delay(80); 		// ★務必在480us-960us之間
	DS18B20 = 1;    //拉高總線
	delay(1);		//無需精確
	while(temp--)	//等待60us以上
	{
		re = DS18B20;      //如果x=0則初始化成功
		if(0 == re)
		{
			DS18B20_FLG = 1;
			delay(20);	  //無需精確
			return(0);	
		}
	} 	  
}

//讀DS18B20一個字節
unsigned char Read_DS18B20(void)
{
	unsigned char i = 0;
	unsigned char d = 0;
	for (i=8;i>0;i--)
	{
		DS18B20 = 0; // 給脈沖信號
		d >>= 1;
		_nop_();
		DS18B20 = 1; // 給脈沖信號
		_nop_();	 //	需延時10us-14us
		_nop_();
		_nop_();
		_nop_();
		_nop_();	 
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		if(DS18B20 == 1)
		{
			d = d | 0x80;
		}
		delay(10);		       //	需延時60us以上
	}
	delay(10);	
	return(d);
}

//寫一個字節
Write_DS18B20(unsigned char d)
{
	unsigned char i=0;
	for (i=8; i>0; i--)
	{
		DS18B20 = 1;
		_nop_();
		_nop_();
		DS18B20 = 0;
		_nop_();	//	需延時15us-60us
		_nop_();
		_nop_();
		_nop_();	// ?奇怪:當此處延時超過30us時,會出錯
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();					
		DS18B20 = d & 0x01;
		delay(7);			  //	需延時60us-120us
		d >>= 1;
	}
	DS18B20 = 1;
	delay(7);
}

//溫度返回值被放大100倍
unsigned int TurnTemp(unsigned int temp)
{ 	
	int t;	
	if(temp > 32768)		 //當讀取的溫度為負時
	{
	 	t = (~temp + 1) * 25 / 4;
		TEMP_FLG = 1;
	}
	else					 //當讀取的溫度為正時
	{
	 	t = temp * 25 / 4;
		TEMP_FLG = 0;
	}
	return(t);	
}

//讀取溫度
int ReadTemp(void)
{
	unsigned char tempLowChar = 0;
	unsigned char tempHighChar = 0;
	unsigned int  tempInt = 0;
	int temp = 0;

	DS18B20_FLG = 0;
	Init_DS18B20();	  			//步驟1:初始化
	if(DS18B20_FLG == 0)		//如果沒有檢測到DS18B20返回
	{		
		return(0);	
	}	

	Write_DS18B20(0xCC);  		//步驟2:跳過讀序號操作(單個DS18B20適用)
	Write_DS18B20(0x44);  		//步驟3:啟動溫度轉換

	TL0 = 256 - 250;			//利用定時器實現1s延時
	TH0 = TL0;
	TR0 = 1;
	T1S_FLG = 0;		
	while(!T1S_FLG)		        //步驟4:等待溫度轉換完成(必須大于500ms)
	{
		display();	
	}	  
	
	TR0 = 0;
	
	DS18B20_FLG = 0;
	Init_DS18B20();	  			//步驟5:初始化
	if(DS18B20_FLG == 0)		//如果沒有檢測到DS18B20返回
	{		
		return(0);	
	}
	Write_DS18B20(0xCC); 			//步驟6:跳過讀序號操作(單個DS18B20適用)
	Write_DS18B20(0xBE);     		//步驟7:讀取溫度寄存器設置(共可讀9個寄存器,前兩個就是溫度) 
	
	tempLowChar = Read_DS18B20();	//步驟8:讀取溫度數據低8位
	tempHighChar = Read_DS18B20();	//步驟8:讀取溫度數據高4位
	tempInt = tempHighChar;
	tempInt <<= 8;
	tempInt = tempInt | tempLowChar; 
	temp = TurnTemp(tempInt); 	
	return(temp);
}
//DS18B20驅動
/////////////////////////////////////////////////////////////////////////////

//實現四位LED溫度顯示,其中最高位LED顯示溫度正負,最低位為溫度的一位小數
main()
{	
	unsigned int t  =0;
		
	IE = 0x82;		 //開1#中斷
	TMOD = 0x02;	 //定時工作方式2	
	while(1)
	{ 
		t = ReadTemp();//讀溫度
		if(DS18B20_FLG == 0)
		{
			LEDBuf[3] = 10;		 
			LEDBuf[2] = 10;
			LEDBuf[1] = 11;
			LEDBuf[0] = 0;		 //顯示“E0”
			
		}
		else
		{
			if(TEMP_FLG)
			{
				if(t > 5500)
				{
					LEDBuf[3] = 10;
					LEDBuf[2] = 10;
					LEDBuf[1] = 11;
					LEDBuf[0] = 1;		//顯示“E1”
				}
				else
				{
					LEDBuf[3] = 13;             //顯示“-”
					LEDBuf[2] = t/1000;			//顯示溫度的十位
					LEDBuf[1] = (t/100)%10;		//顯示溫度的個位
					LEDBuf[0] = (t/10)%10;		//顯示溫度的小數位
				}								
			}
			else
			{
				if(t > 20000)
				{
					LEDBuf[3] = 10;
					LEDBuf[2] = 10;
					LEDBuf[1] = 11;
					LEDBuf[0] = 1;		//顯示“E2”
				}
				else
				{
					LEDBuf[3] = 12;				 //顯示“+”
					LEDBuf[2] = t/1000;			 //顯示溫度的十位
					LEDBuf[1] = (t/100)%10;		 //顯示溫度的個位
					LEDBuf[0] = (t/10)%10;		 //顯示溫度的小數位
				}								
			}			
		}			
		display();			
	}
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区久久久| 亚洲国产精品久久不卡毛片| 在线观看亚洲精品视频| 韩国三级电影一区二区| 亚洲欧美二区三区| 精品电影一区二区| 欧美三区免费完整视频在线观看| 国产精品主播直播| 免费观看在线综合色| 亚洲视频网在线直播| 欧美成人激情免费网| 一本色道综合亚洲| 国产成人亚洲精品狼色在线| 人人精品人人爱| 亚洲一区二区欧美激情| 国产精品免费人成网站| 精品免费一区二区三区| 欧美福利视频导航| 一本色道a无线码一区v| 高清beeg欧美| 国内欧美视频一区二区| 午夜精品久久久久久久99樱桃| 中文字幕欧美一| 中文字幕国产一区| 欧美精品一区男女天堂| 91精品久久久久久久91蜜桃| 欧美在线视频你懂得| 99久久er热在这里只有精品15| 国产福利电影一区二区三区| 另类小说图片综合网| 日韩中文字幕av电影| 亚洲成a人片在线观看中文| 亚洲免费av在线| 亚洲精品国产一区二区精华液| 日本一区二区三区国色天香| 久久精品亚洲一区二区三区浴池| 日韩一级二级三级| 日韩一区二区三区在线视频| 911国产精品| 4hu四虎永久在线影院成人| 欧美综合一区二区三区| 在线免费精品视频| 欧美在线不卡视频| 欧美性三三影院| 欧美日韩一区二区三区在线| 欧美视频在线一区二区三区| 欧美在线三级电影| 欧美日韩国产三级| 欧美高清视频在线高清观看mv色露露十八| 欧美性videosxxxxx| 欧美日免费三级在线| 欧美日韩久久久一区| 欧美一二三在线| 日韩欧美三级在线| 亚洲精品一区二区三区影院| 国产情人综合久久777777| 中文av一区特黄| ...av二区三区久久精品| 亚洲欧美日韩在线播放| 亚洲一区精品在线| 日本不卡123| 国产专区综合网| 成人小视频免费在线观看| 成人av在线播放网址| 色视频一区二区| 91精品免费观看| 国产日韩影视精品| 一区二区三区在线观看动漫| 五月天一区二区三区| 美美哒免费高清在线观看视频一区二区 | 欧美日韩国产a| 精品剧情在线观看| 国产精品女主播av| 亚洲bt欧美bt精品777| 九九热在线视频观看这里只有精品| 国产综合久久久久久久久久久久| 成人99免费视频| 欧美日本免费一区二区三区| xvideos.蜜桃一区二区| 自拍偷自拍亚洲精品播放| 香蕉av福利精品导航| 久久er99精品| 91女神在线视频| 日韩一区二区在线看| 国产精品久久久久久久久图文区| 亚洲一区二区三区四区的| 捆绑紧缚一区二区三区视频| 99精品视频一区| 欧美成va人片在线观看| 亚洲欧美激情在线| 精品一区二区久久久| 99国产精品久久久久久久久久久 | av在线一区二区三区| 91麻豆精品国产91久久久久| 中文字幕精品三区| 日本成人中文字幕在线视频| 99热国产精品| 欧美电影免费观看高清完整版在线观看| 亚洲欧洲日产国产综合网| 免费看日韩a级影片| 99精品久久久久久| 久久综合色综合88| 亚洲mv大片欧洲mv大片精品| bt7086福利一区国产| 精品国精品自拍自在线| 亚洲国产精品自拍| 91丨porny丨首页| 精品国产91洋老外米糕| 亚洲不卡av一区二区三区| 91论坛在线播放| 国产精品私房写真福利视频| 麻豆精品视频在线| 欧美日精品一区视频| 亚洲欧洲成人自拍| 国产精品538一区二区在线| 日韩精品在线一区| 天天影视涩香欲综合网| 在线观看91视频| 亚洲精品国产一区二区精华液 | 国产精一区二区三区| 欧美日韩一二区| 亚洲自拍欧美精品| 一本色道a无线码一区v| 国产精品久久久久三级| 国产成人高清在线| 精品久久久久久最新网址| 日本亚洲天堂网| 3d动漫精品啪啪1区2区免费| 一区二区三区不卡视频| 91天堂素人约啪| 《视频一区视频二区| www.av精品| 亚洲欧美综合在线精品| www.欧美日韩国产在线| 中文字幕欧美一| 91日韩精品一区| 自拍偷在线精品自拍偷无码专区| 99在线精品视频| **欧美大码日韩| 色综合视频一区二区三区高清| 国产精品久久久久一区二区三区| 成人综合婷婷国产精品久久免费| 久久精品亚洲精品国产欧美 | 精品美女在线观看| 韩国一区二区在线观看| 久久婷婷成人综合色| 国产一区二区精品久久99| 国产视频一区二区在线观看| 丁香天五香天堂综合| 国产精品美女久久久久高潮| 99热精品国产| 亚洲成人在线观看视频| 欧美一区二区网站| 精东粉嫩av免费一区二区三区| 久久久久久久久久看片| 福利一区福利二区| 一区二区在线免费| 欧美一级二级三级乱码| 国产成人精品影视| 亚洲乱码中文字幕| 欧美伦理电影网| 国产一区二区三区免费看| 国产精品色婷婷| 在线观看日韩电影| 久久精品国产久精国产| 欧美激情一区二区三区蜜桃视频 | 首页亚洲欧美制服丝腿| 精品日韩99亚洲| 99热这里都是精品| 午夜久久久久久| 国产农村妇女精品| 欧美性受xxxx| 国产二区国产一区在线观看 | 国产91精品在线观看| 夜夜嗨av一区二区三区 | 曰韩精品一区二区| 日韩视频一区二区三区在线播放 | 中文字幕一区二区视频| 欧美人与z0zoxxxx视频| 丁香另类激情小说| 午夜精品久久久久久不卡8050| 国产亚洲制服色| 欧美在线你懂得| 国产精品小仙女| 婷婷成人激情在线网| 国产女人18水真多18精品一级做| 欧美日韩精品欧美日韩精品| 国内精品不卡在线| 亚洲一卡二卡三卡四卡无卡久久| 欧美电视剧在线观看完整版| 99精品欧美一区二区蜜桃免费| 秋霞电影一区二区| 亚洲精品免费在线观看| 精品va天堂亚洲国产| 欧美在线视频你懂得| 国产.精品.日韩.另类.中文.在线.播放| 亚洲国产精品欧美一二99| 国产午夜亚洲精品羞羞网站| 欧美群妇大交群的观看方式| 成人国产精品免费网站|