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

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

?? main.c

?? 基于AT89C2051的SHT11溫濕度傳感器嵌入式程序KEIL環(huán)境
?? C
字號:
#include "reg52.h"   //晶振可以用11.0592MHZ,如果用串口的話
                     //提示:在調(diào)試程序的時候晶振用12MHZ
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "intrins.h"
//#include "bcd.h"
//#include "SHTXX_iic.c"
/**********************************************************************************/
#define uchar unsigned char 
#define BIT7  0X80	                 
#define BIT6  0X40	                 
#define BIT5  0X20	                 
#define BIT4  0X10	                 
#define BIT3  0X08	                 
#define BIT2  0X04	                 
#define BIT1  0X02	                 
#define BIT0  0X01	                 
sbit SDA=P1^6;                          // 將p1.6口模擬數(shù)據(jù)口
bdata uchar canmea;
float hum,tem;float ftem;
uchar aaa,dhum[4],dtem[4];
int  count,second;
uchar MeasureMode;
uchar rnum,tnum,tlen;uchar uartflasR,uartflasT;

#define  NUM  20 	                    //	接收和發(fā)送緩存區(qū)的深度
#define  NUM1  7 	                    //	接收和發(fā)送緩存區(qū)的深度
unsigned char idata sendbuf[NUM];       // 數(shù)據(jù)發(fā)送緩沖區(qū)
unsigned char idata receivebuf[NUM1];    // 數(shù)據(jù)接收緩沖區(qū)

void	TxData ();
void 	Inituart();
void 	InitSHTXX();
void 	Inittimer0();
float 	CalculateHum();
float 	CalculateTem();
void 	MeasureTem();
void 	MeasureHum();
void 	measure();

/*****************************************MAIN  START ******************************/
void main(void)
{	
	uchar okqi;
	int dat;//int i;
	uchar okmea;
//	uchar aaa;
	Inittimer0();
	second=1;
	while(second){}//上電延時
	Inituart();
	InitSHTXX();
	if (F0==1)
		okqi=0;//無傳感器標(biāo)志
	else
		okqi=1;//有傳感器標(biāo)志

	sendbuf[0]=0X80;//起始符
//	sendbuf[1]=0X01;//本機(jī)地址
	sendbuf[1]=P1&0X0F;//本機(jī)地址

	//receivebuf[3]=0x00;uartflasT=1;//上電發(fā)送測試數(shù)據(jù)
	okmea=1;//測量
	MeasureMode=1;

while (1)
	{
	if(uartflasR==1)//接收命令處理
	{
		if(rnum>3) //接收數(shù)據(jù)應(yīng)大于4字節(jié),否則帔格式不對
		if(receivebuf[0]==sendbuf[1]) //本機(jī)地址才處理
		switch(receivebuf[3]) //命令處理
		{
		case 0x12:
		case 0x13:
		case 0x11:{okmea=1;/*P0=~P0;*/}break;//測量濕度和溫度命令
		case 0x00:{uartflasT=1;}break;//檢測命令
		default:;
		}
		uartflasR=0;
	}
	if(uartflasT==1)//發(fā)送命令處理
	{
	//sendbuf[0]=0X80;//起始符
	//sendbuf[1]=0X01;//本機(jī)地址
	switch(receivebuf[3])//命令處理
		{
		case 0x11:{//測量濕度和溫度命令
					sendbuf[2]=0;//字節(jié)數(shù)1
					sendbuf[3]=11;//字節(jié)數(shù)2
					sendbuf[4]=0x11;//命令碼

					sendbuf[5]=0x12;//濕度數(shù)據(jù)
					sendbuf[6]=dhum[0];
					sendbuf[7]=dhum[1];
					sendbuf[8]=dhum[2];
					sendbuf[9]=dhum[3];

					sendbuf[10]=0x13;//溫度數(shù)據(jù)
					sendbuf[11]=dtem[0];
					sendbuf[12]=dtem[1];
					sendbuf[13]=dtem[2];
					sendbuf[14]=dtem[3];

					/*sendbuf[6]=0x07;
					sendbuf[7]=0x06;
					sendbuf[8]=0x05;
					sendbuf[9]=0x04;

					sendbuf[11]=0x00;
					sendbuf[12]=0x02;
					sendbuf[13]=0x09;
					sendbuf[14]=0x08;*/

					sendbuf[15]=sendbuf[5]^sendbuf[6]^sendbuf[7]^sendbuf[8]^sendbuf[9]
								^sendbuf[10]^sendbuf[11]^sendbuf[12]^sendbuf[13]^sendbuf[14];

					sendbuf[16]=0x7F;//停止符
					tlen=17;
				  }break;
		case 0x12:{//測量濕度命令
					sendbuf[2]=0;//字節(jié)數(shù)1
					sendbuf[3]=6;//字節(jié)數(shù)2
					sendbuf[4]=0x11;//命令碼

					sendbuf[5]=0x12;//濕度數(shù)據(jù)
					sendbuf[6]=dhum[0];
					sendbuf[7]=dhum[1];
					sendbuf[8]=dhum[2];
					sendbuf[9]=dhum[3];

					sendbuf[10]=sendbuf[5]^sendbuf[6]^sendbuf[7]^sendbuf[8]^sendbuf[9];

					sendbuf[11]=0x7F;//停止符
					tlen=12;
				  }break;
		case 0x13:{//測量溫度命令
					sendbuf[2]=0;//字節(jié)數(shù)1
					sendbuf[3]=6;//字節(jié)數(shù)2
					sendbuf[4]=0x11;//命令碼

					sendbuf[5]=0x13;//溫度數(shù)據(jù)
					sendbuf[6]=dtem[0];
					sendbuf[7]=dtem[1];
					sendbuf[8]=dtem[2];
					sendbuf[9]=dtem[3];

					sendbuf[10]=sendbuf[5]^sendbuf[6]^sendbuf[7]^sendbuf[8]^sendbuf[9];

					sendbuf[11]=0x7F;//停止符
					tlen=12;
				  }break;
		case 0x00:{//檢測命令
					sendbuf[2]=0;//字節(jié)數(shù)1
					sendbuf[3]=1;//字節(jié)數(shù)2
					sendbuf[4]=0x00;//命令碼

					sendbuf[5]=okqi;//傳感器標(biāo)志

					sendbuf[6]=0x7F;//停止符
					tlen=7;
				  }break;
		default:;
		}
	uartflasT=0;
	tnum=0;
	SBUF=sendbuf[tnum];tnum++;
	}


if(okmea==1)
if(okqi==0)
{
	receivebuf[3]=0x00;uartflasT=1;okmea=0;
}
else
		switch(MeasureMode)
		{
		case 1:{//啟動測量濕度
			MeasureHum();
/*	aaa=0x12;
	TxData();
	if(F0==1)
	aaa=0xaa;//無器件
	else
	aaa=0x55;//有器件
	TxData();
*/			/*TH0=0Xca;
			TL0=0X00;//11.0592MHz 15mS
			TR0=1;*/
			count=0;
			MeasureMode++;}break;
		case 2:if(count==2)
				{MeasureMode++;count=0;}break;//等待延時
		case 3:{//讀濕度數(shù)據(jù)
				if(SDA==0) //等待測量完畢
				{
				canmea=0;
			 	hum=CalculateHum();
				dat=floor(hum*100);
				dhum[0]=floor(hum/10);//十位
				ftem=1000;ftem=fmod(dat,ftem);
				dhum[1]=floor(ftem/100);//個位
				dat=ftem;ftem=100;ftem=fmod(dat,ftem);
				dhum[2]=floor(ftem/10);//十分一位
				dat=ftem;ftem=10;ftem=fmod(dat,ftem);
				dhum[3]=floor(ftem);//百分一位
/*				for(p=dhum,i=0;i<4;i++,p++)
				{aaa=*p;TxData();}
*/				MeasureMode++;
				}
			}break;
		case 4:if(count==2)
				{MeasureMode++;count=0;}break;//等待延時
		case 5:{//啟動測量溫度
			MeasureTem();
/*	aaa=0x13;
	TxData();
	if(F0==1)
	aaa=0xaa;//無器件
	else
	aaa=0x55;//有器件
	TxData();
*/			/*TH0=0X28;
			TL0=0X00;//11.0592MHz 60mS
			TR0=1;*/
			count=0;
			MeasureMode++;}break;
		case 6:if(count==4)
				{MeasureMode++;count=0;}break;//等待延時
		case 7:{//讀溫度數(shù)據(jù)
				if(SDA==0)//等待測量完畢
				{
				canmea=0;
			 	tem=CalculateTem();
			//	dat=fsign(tem/100);
			//	p=&tem;aaa=*p;
				if (tem<0)
				{dtem[0]=0x0f;//符號位
				tem=fabs(tem);
				}
				else
				{tem=fabs(tem);
				ftem=100;
				ftem=fmod(tem,ftem);
				dtem[0]=floor(ftem);//百位
				}
				dtem[1]=floor(tem/10);//十位
				ftem=10;
				ftem=fmod(tem,ftem);
				dtem[2]=floor(ftem);//個位
				ftem=fmod(ftem*10,10);
				dtem[3]=floor(ftem);//十分一位
/*				for(p=dtem,i=0;i<4;i++,p++)
				{aaa=*p;TxData();}
*/				MeasureMode=1;uartflasT=1;okmea=0;/*P0=~P0;*/
				}
			}break;
		default:;
		}
	}
}
/*************************************Rmain      END *******************************/
/**************************************Measure  START ******************************/
/*void measure(void)
{	
}
/**************************************Measure  END   ******************************/
/*void TxData (void)
{
	SBUF=aaa;	
	while(TI==0);
		TI=0;

}*/
void Inituart(void)
{
	TMOD = 0x21;				//timer1 working mode 1
	TL1 = 0xfd;					//fb=9600 for 18.432mhz Fosc,and ... 
	TH1 = 0xfd;					//fd=9600 for 11.0592mhz Fosc
	SCON = 0x50;				//uart mode 3,ren==1
	//PCON = 0x80;				//smod=0
	TR1 = 1;					//start timer1
	ES=1;
}
void Inittimer0(void)
{
	TMOD = 0x21;				//timer0 working mode 1
	TL0 = 0x00;					//
	TH0 = 0xb8;					//20ms for 11.0592mhz Fosc
	TR0 = 1;					//start timer1
	ET0=1;EA=1;
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: timer0
// 定時器0中斷函數(shù)
// 函數(shù)功能: 計時
//--------------------------------------------------------------------------------------------------
void timer0 (void) interrupt 1 using 2
{
	TH0=0Xb8;
	TL0=0X00;//11.0592MHz 20mS
	if (MeasureMode==2)count++;
	if (MeasureMode==4)count++;
	if (MeasureMode==6)count++;
	second++;
	if (second==100)
	{
		second=0;
/*		switch(MeasureMode)
		{
		case 4:{MeasureMode++;}break;
		case 0:{MeasureMode++;}break;
		default:;
		}*/
	}
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: uart
// 定時器0中斷函數(shù)
// 函數(shù)功能: 計時
//--------------------------------------------------------------------------------------------------
void uart (void) interrupt 4 using 0
{
uchar dsbuf;
	if(RI==1)
	{
		RI=0;dsbuf=SBUF;
		switch(dsbuf)
		{
		case 0X80:{rnum=0;}break;
		case 0X7F:{uartflasR=1;}break;
	//	case 0Xaa:{SBUF=0x55;tlen=0;}break;
		default:{receivebuf[rnum]=dsbuf;
		rnum++;}
		}
	}
	if(TI==1)
	{
		TI=0;
		if (tnum<tlen)
		{SBUF=sendbuf[tnum];tnum++;
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产aⅴ原创| 全部av―极品视觉盛宴亚洲| 一区二区激情视频| 精品综合久久久久久8888| 久久99精品一区二区三区三区| 国产一区 二区| 91麻豆福利精品推荐| 欧美日韩一区二区在线观看视频 | 欧美军同video69gay| 日韩精品一区二区三区在线观看| 久久蜜臀精品av| 一区二区三区中文字幕在线观看| 天天色 色综合| 成人激情文学综合网| 欧美久久高跟鞋激| 国产精品久久777777| 美女高潮久久久| 91丨porny丨户外露出| 精品国产1区二区| 亚洲图片欧美色图| 97se亚洲国产综合自在线不卡| 欧美一区二区三区色| 日韩理论片中文av| 黄色小说综合网站| 欧美日本一区二区三区| 亚洲码国产岛国毛片在线| 久久国产精品99精品国产| 欧美精品一二三四| 一区二区三区四区不卡在线| 成人午夜激情视频| 久久精品亚洲乱码伦伦中文| 秋霞国产午夜精品免费视频| 欧美性欧美巨大黑白大战| 国产精品久久久久久久久免费丝袜 | 欧美性猛交xxxxxxxx| 中文字幕第一区| 国产69精品久久99不卡| 精品国产精品一区二区夜夜嗨| 日本怡春院一区二区| 在线播放中文字幕一区| 日韩高清一区二区| 欧美成人三级电影在线| 免费看日韩精品| 欧美sm极限捆绑bd| 国产传媒一区在线| 国产精品免费视频网站| 97精品国产露脸对白| 亚洲毛片av在线| 欧美日韩国产一二三| 久久国产乱子精品免费女| 2021国产精品久久精品| 岛国一区二区三区| 亚洲视频1区2区| 欧美日韩国产一级二级| 蜜桃av一区二区三区电影| 精品久久国产老人久久综合| 国产精品一品二品| 亚洲欧美一区二区三区极速播放 | 久久人人爽人人爽| 94色蜜桃网一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 91成人在线观看喷潮| 日本欧美在线观看| 国产精品蜜臀av| 欧美卡1卡2卡| av电影一区二区| 日本亚洲最大的色成网站www| 日韩免费高清视频| 91同城在线观看| 精油按摩中文字幕久久| 亚洲综合一二区| 国产午夜亚洲精品不卡| 欧美久久久久久久久久| 成人a区在线观看| 麻豆精品久久久| 亚洲国产精品久久久久婷婷884| 久久无码av三级| 在线播放/欧美激情| 91黄色激情网站| 成人中文字幕合集| 久久国产精品一区二区| 亚洲电影第三页| 一区二区三区在线观看国产| 久久综合色之久久综合| 欧美一级电影网站| 欧美日韩电影在线| 99久久综合国产精品| 国产一区二区三区日韩| 另类成人小视频在线| 日韩av电影免费观看高清完整版| 亚洲国产cao| 丝袜美腿亚洲一区| 五月婷婷色综合| 日韩黄色一级片| 午夜成人免费电影| 免费高清在线视频一区·| 日韩激情一区二区| 美腿丝袜亚洲一区| 国产精品一区二区x88av| 国产乱子轮精品视频| 国产高清在线精品| 高清久久久久久| jlzzjlzz亚洲日本少妇| 91免费在线看| 欧美在线制服丝袜| 欧美一区二区视频免费观看| 日韩精品中文字幕在线一区| 久久久久久电影| 一区二区三区加勒比av| 日韩黄色免费电影| 久久成人av少妇免费| 成人h精品动漫一区二区三区| 色偷偷久久一区二区三区| 欧美日韩一区二区三区免费看| 欧美成人aa大片| 亚洲天堂免费看| 日韩**一区毛片| 丁香天五香天堂综合| 色综合天天综合在线视频| 在线不卡免费av| 成人欧美一区二区三区小说 | 国产精品视频在线看| 一级日本不卡的影视| 国产乱码字幕精品高清av| 91福利视频网站| 国产精品美女视频| 美国欧美日韩国产在线播放| 99国产精品久久| 精品国产1区二区| 天堂蜜桃91精品| 色综合久久天天综合网| 久久久久久久久久久电影| 亚洲国产精品久久久男人的天堂 | 久久久www成人免费无遮挡大片| 一级特黄大欧美久久久| 99国产精品视频免费观看| 久久一区二区视频| 蜜臀av性久久久久蜜臀aⅴ | 国产精品久久久久久久岛一牛影视 | 日韩精品一区二区三区中文精品| 一区二区在线观看不卡| 成人教育av在线| 久久一区二区视频| 蜜臀国产一区二区三区在线播放| 在线观看av一区二区| 亚洲色图制服诱惑| 色综合色狠狠综合色| 亚洲日本丝袜连裤袜办公室| 丰满岳乱妇一区二区三区| 国产日韩欧美在线一区| 国产在线视频一区二区| 精品国产成人系列| 国产真实乱子伦精品视频| 久久久久成人黄色影片| 国产精品一区三区| 国产精品嫩草99a| 色视频欧美一区二区三区| 一区二区三区精品在线观看| 欧美亚洲日本一区| 日韩中文字幕av电影| 日韩欧美第一区| 国产精品88888| 亚洲视频每日更新| 欧美精品久久天天躁| 精品一区二区三区在线播放 | 久久久久久电影| 91在线视频播放地址| 亚洲国产成人91porn| 精品国产3级a| 在线免费观看日韩欧美| 蜜臀av一区二区在线观看| 国产人成一区二区三区影院| 色先锋久久av资源部| 五月激情综合网| 国产精品网站在线| 欧美午夜精品免费| 国产一区二区免费看| 亚洲电影一区二区三区| 26uuu欧美| 6080国产精品一区二区| 国产a级毛片一区| 日韩电影一二三区| 亚洲色图视频网| 国产丝袜欧美中文另类| 717成人午夜免费福利电影| 成人高清视频在线观看| 青青草国产成人99久久| 成人免费一区二区三区在线观看 | 成人欧美一区二区三区1314| 日韩亚洲欧美高清| 欧美日韩一二三| 99精品视频一区| 粉嫩aⅴ一区二区三区四区| 日本不卡123| 天天色综合成人网| 一二三区精品视频| 亚洲伦在线观看| 亚洲精选一二三| 136国产福利精品导航| 国产精品久久久爽爽爽麻豆色哟哟|