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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? shtxx.c

?? SHT11溫濕傳感器+AVR 單片機(jī)MEGA16程序
?? C
字號(hào):
#include "shtxx.h"

void shtxx_init(void)
{
	shtxx_temp = shtxx_humi = 0;
	SHTXX_SCK_LOW();
	SHTXX_DAT_1();
	shtxx_reconnect();
}

void shtxx_reconnect(void)
{
	SHTXX_DAT_1();
	SHTXX_SCK_LOW();
	for(uint8 i=0; i<9; i++)
	{
		SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
	}
	SHTXX_START();
}

uint8 shtxx_softrst(void)
{
	uint8 error = 0;
	shtxx_reconnect();
	error += shtxx_write_byte(SHTXX_SOFT_RST);
	return error;
}

//寫命令函數(shù)
//參數(shù):命令類型
//返回:0成功,1失敗
uint8 shtxx_write_byte(uint8 cmd)
{
	uint8 ack;
	for (uint8 i=8; i>0; i--)
	{
		if (BITCHK(cmd, (i-1)))		//trans '1' 
		{
			SHTXX_DAT_1();	
			SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
		}	
		else 						//trans '0'
		{
			SHTXX_DAT_0();						 
			SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
		}
	}
	//SHTxx 會(huì)以下述方式表示已正確地接收到指令:
	//在第8 個(gè)SCK 時(shí)鐘的下降沿之后,將DATA 下拉為低電平(ACK 位)。
	//在第9 個(gè)SCK 時(shí)鐘的下降沿之后,釋放DATA(恢復(fù)高電平)。
	BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT);
	SHTXX_SCK_HIGH();
	ack = BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT);
	SHTXX_SCK_LOW();
	return ack;
}

uint8 shtxx_read_byte(uint8 dat_crc)
{
	uint8 dat8 = 0;
	for (uint8 i=8; i>0; i--)
	{
		BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT);
		c4680504cSHTXX_SCK_HIGH();
		if (BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT)) 
			BITSET(dat8, (i-1));
		SHTXX_SCK_LOW();
	}
	
	if (dat_crc)
	{
		SHTXX_DAT_0();
		SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
	}
	else
	{
		SHTXX_DAT_1();
		SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
	}
	SHTXX_DAT_1();	
	
	return dat8;
}

int8 shtxx_measure(uint8 mode)
{
	uint8 error = 0;
	
	SHTXX_START();	
	switch (mode)
	{
		case SHTXX_MODE_TEMP:
			error = shtxx_write_byte(SHTXX_CMD_TEMPTURE);
			for(uint16 i=0; i<65535; i++)
			{	
				_delay_us(5);
				BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); 
				if (!(BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT))) break;
			}
			BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); 
			if (BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT)) error += 1;
						
			shtxx_temp = shtxx_read_byte(1);
			shtxx_temp = (shtxx_temp << 8) + shtxx_read_byte(1);
			shtxx_crc = shtxx_read_byte(0);	
			break;
		case SHTXX_MODE_HUMI:
			error = shtxx_write_byte(SHTXX_CMD_HUMIDITY);
			for(uint16 i=0; i<65535; i++)
			{	
				_delay_us(5);
				BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); 
				if (!(BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT))) break;
			}
			BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); 
			if (BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT)) error += 1;
			shtxx_humi = shtxx_read_byte(1);
			shtxx_humi = (shtxx_humi<<8) + shtxx_read_byte(1);			
			shtxx_crc = shtxx_read_byte(0);		
			break;
		default:
			break;
	}

	return error;
}

void shtxx_calc(void)
{
	uint32 rh_line = 0;
	//所有濕度常量放大10000000
	const uint32 C1 = 40000000;
	const uint32 C2 = 405000;
	const uint32 C3 = 28;
	const uint32 T1 = 100000;
	const uint32 T2 = 8000;	
	
	//溫度常量放大100
	t_c = shtxx_temp - 4000;	//結(jié)果除以100
	
	rh_line = C2*shtxx_humi - C3*shtxx_humi*shtxx_humi - C1;
	rh_true = (t_c/100-25)*(T1+T2*shtxx_humi) + rh_line;
	
	if (rh_true>1000000000) rh_true = 1000000000; //cut if the value is outside of
	if (rh_true<1000000) rh_true = 1000000; //the physical possible range
}

void hex_bcd(uint32 hex32)
{
	memset(bcd32, '\0', 10);
	while (hex32 >= 1000000000)		//
	{
		bcd32[9]++;
		hex32 = hex32 - 1000000000;
	}	  
		   
	while (hex32 >= 100000000)		//
	{
		bcd32[8]++;
		hex32 = hex32 - 100000000;
	}
	
	while (hex32 >= 10000000)		//
	{
		bcd32[7]++;
		hex32 = hex32 - 10000000;
	}
	
	while (hex32 >= 1000000)		//
	{
		bcd32[6]++;
		hex32 = hex32 - 1000000;
	}
	
	while (hex32 >= 100000)			//
	{
		bcd32[5]++;
		hex32 = hex32 - 100000;
	}
	
	while (hex32 >= 10000)			//
	{
		bcd32[4]++;
		hex32 = hex32 - 10000;
	}	
	
	while (hex32 >= 1000)			//
	{
		bcd32[3]++;
		hex32 = hex32 - 1000;
	}	
	
	while (hex32 >= 100)			//
	{
		bcd32[2]++;
		hex32 = hex32 - 100;
	}	
	
	while (hex32 >= 10)				//
	{
		bcd32[1]++;
		hex32 = hex32 - 10;
	}
	
	bcd32[0] = hex32;
}

void shtxx_disp(void)
{
	if (!shtxx_measure(SHTXX_MODE_TEMP))
	{
		shtxx_calc();
		hex_bcd(t_c);
		lcd_print_str(2, 1, "溫度: ");
		
		if(bcd32[4] != 0)
			lcd_write_dat(bcd32[4]+0x30);
		lcd_write_dat(bcd32[3]+0x30);
		lcd_write_dat(bcd32[2]+0x30);
		lcd_write_dat('.');
		lcd_write_dat(bcd32[1]+0x30);
		lcd_write_dat(bcd32[0]+0x30);
	}
	if (!shtxx_measure(SHTXX_MODE_HUMI))
	{
		shtxx_calc();
		hex_bcd(rh_true);
		lcd_print_str(3, 1, "濕度: ");
		
		if(bcd32[9] != 0)
			lcd_write_dat(bcd32[9]+0x30);
		lcd_write_dat(bcd32[8]+0x30);
		lcd_write_dat(bcd32[7]+0x30);
		lcd_write_dat('.');
		lcd_write_dat(bcd32[6]+0x30);
		lcd_write_dat(bcd32[5]+0x30);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区美女在线| 中文字幕日本不卡| 国产欧美日韩卡一| 亚洲欧美日韩久久| 亚欧色一区w666天堂| 狠狠网亚洲精品| 99久久国产免费看| 制服丝袜国产精品| 亚洲国产精品国自产拍av| 亚洲精品成人少妇| 精品夜夜嗨av一区二区三区| av综合在线播放| 3atv一区二区三区| 国产目拍亚洲精品99久久精品| 伊人开心综合网| 久草精品在线观看| 色综合天天性综合| 日韩精品一区二区三区四区| 亚洲人123区| 久久激情五月婷婷| 91久久精品国产91性色tv| 日韩视频一区在线观看| 亚洲视频一区在线| 国产一区二区三区免费在线观看 | 欧美一区日韩一区| 国产精品免费视频网站| 成人成人成人在线视频| 欧美人与禽zozo性伦| 国产精品欧美一区二区三区| 日韩二区三区四区| 色综合久久综合| 久久亚洲一区二区三区四区| 亚洲一区二区三区中文字幕在线| 国产一区二区导航在线播放| 欧美日韩国产中文| 成人免费在线播放视频| 精品综合久久久久久8888| 欧美色综合网站| 成人欧美一区二区三区| 国产在线麻豆精品观看| 91麻豆精品国产91久久久久久 | 久久99精品国产.久久久久 | 午夜视频一区在线观看| www.欧美.com| 国产欧美一区二区三区沐欲| 美洲天堂一区二卡三卡四卡视频| 色婷婷综合久久久中文字幕| 欧美国产在线观看| 国产一区二区三区免费观看| 欧美一区二区在线免费播放| 亚洲已满18点击进入久久| 成人黄色免费短视频| 欧美精品一区二区三区高清aⅴ| 亚洲国产视频直播| 色婷婷亚洲一区二区三区| 中国色在线观看另类| 国产乱妇无码大片在线观看| 日韩三级在线观看| 视频一区视频二区中文字幕| 在线观看国产一区二区| 亚洲欧美日韩久久精品| 99这里只有精品| 国产精品免费视频网站| 成人一区二区视频| 欧美激情中文字幕| 粉嫩在线一区二区三区视频| 久久久噜噜噜久久中文字幕色伊伊 | 久久激情五月婷婷| 欧美一区二区福利在线| 视频一区二区国产| 欧美日韩国产高清一区二区三区 | 欧美视频一区二| 一区二区三区四区av| 色成年激情久久综合| 亚洲精品视频一区二区| 91精彩视频在线| 亚洲一级二级在线| 欧美三级韩国三级日本三斤| 亚洲综合一区二区| 欧美日韩一级二级三级| 日韩精品亚洲一区二区三区免费| 3d成人h动漫网站入口| 蜜桃av一区二区三区| 26uuu亚洲综合色欧美| 国产精品资源在线看| 国产欧美日韩精品在线| aaa亚洲精品一二三区| 专区另类欧美日韩| 欧美中文字幕一二三区视频| 亚洲.国产.中文慕字在线| 制服丝袜激情欧洲亚洲| 久久99精品国产.久久久久久| 26uuu精品一区二区三区四区在线| 国产一区美女在线| 日韩伦理电影网| 欧美主播一区二区三区美女| 七七婷婷婷婷精品国产| 久久综合九色综合97_久久久| 福利视频网站一区二区三区| 亚洲男同性恋视频| 3d成人h动漫网站入口| 国产一区视频导航| 综合激情成人伊人| 欧美高清视频www夜色资源网| 久久精品国产999大香线蕉| 国产午夜亚洲精品午夜鲁丝片| 2023国产精品| 成人午夜视频在线| 亚洲一区二区精品3399| 精品久久久久久无| 99久久久久免费精品国产| 亚洲国产精品影院| 欧美成人精品二区三区99精品| 成人精品视频网站| 五月婷婷激情综合| 国产亚洲精品久| 在线观看日韩毛片| 精一区二区三区| 亚洲另类春色校园小说| 日韩免费在线观看| 91亚洲精华国产精华精华液| 日韩制服丝袜先锋影音| 国产午夜亚洲精品羞羞网站| 欧美色综合网站| 国产成人8x视频一区二区| 亚洲成人av福利| 欧美国产精品一区二区三区| 欧美三级一区二区| 成人午夜视频在线观看| 日韩高清中文字幕一区| 国产精品传媒入口麻豆| 日韩一区二区三区电影| 日本韩国一区二区| 国产一区中文字幕| 亚洲成人777| 国产精品美女久久久久av爽李琼| 欧美二区在线观看| 91日韩在线专区| 国产一区 二区 三区一级| 亚洲丰满少妇videoshd| 国产欧美日韩精品在线| 日韩欧美国产精品一区| 在线观看国产精品网站| 成人性色生活片| 久久成人久久爱| 亚洲成a天堂v人片| 国产精品传媒视频| 国产亚洲一二三区| 日韩欧美中文字幕一区| 日本久久一区二区三区| 成人美女视频在线观看18| 国内不卡的二区三区中文字幕| 午夜免费久久看| 一二三区精品视频| **网站欧美大片在线观看| 久久久国产精品午夜一区ai换脸| 欧美一二三区精品| 欧美日韩一本到| 日本精品一级二级| 95精品视频在线| 丁香另类激情小说| 欧美一区二区三区电影| 色婷婷综合久久久久中文一区二区| 国产不卡视频一区| 国产揄拍国内精品对白| 久久精品国产一区二区| 日本亚洲最大的色成网站www| 夜夜爽夜夜爽精品视频| 亚洲精选视频在线| 亚洲欧洲99久久| 国产精品久久久久天堂| 国产丝袜美腿一区二区三区| 久久综合九色综合欧美就去吻| 日韩一区二区三区视频在线观看| 欧美日韩第一区日日骚| 欧美三级在线视频| 欧美日韩一卡二卡三卡| 欧美色图激情小说| 欧洲色大大久久| 欧美日韩一区不卡| 5月丁香婷婷综合| 91麻豆精品国产自产在线观看一区 | 久久综合丝袜日本网| www国产成人| 国产亚洲综合性久久久影院| 国产亚洲一区二区三区四区| 久久久www成人免费无遮挡大片| 欧美电影免费观看高清完整版在| 日韩一区二区三区高清免费看看| 日韩亚洲欧美在线观看| 精品成人免费观看| 久久久精品国产免费观看同学| 久久精品一区蜜桃臀影院| 国产亚洲欧洲997久久综合| 久久久高清一区二区三区| 国产精品伦理在线| 亚洲精品精品亚洲| 午夜欧美2019年伦理| 久久福利视频一区二区| 国产福利91精品一区二区三区|