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

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

?? wdbj.c

?? 溫度傳感器的使用程序
?? C
字號(hào):
#include<intrins.h>     
#include<reg52.h>
#include<absacc.h>
#define uint  unsigned int
#define uchar unsigned char

#define	liangtime	40					//設(shè)置閃爍時(shí)間
#define	mietime		40					
#define MaxRate 50						//重復(fù)前的延遲值600MS
#define MinRate 20						//重復(fù)速度240MS
#define 	N	2						//設(shè)定去抖時(shí)間

//定時(shí)器1的時(shí)間常數(shù)和方式控制字2ms
#define V_TH0	(65535-10000)/256
#define V_TL0 	(65535-10000)%256
#define	V_TMOD	0x01
sbit	ds18b20_IO=P1^0;
sbit	duX=P2^7;	//段選使能
sbit	weX=P2^6;	//位選使能
sbit 	K1=P3^7;	//設(shè)置鍵
sbit 	K2=P3^5;	//加數(shù)鍵
sbit 	K3=P3^6;	//減數(shù)鍵
sbit	K4=P3^4;
sbit	led4=P1^3;	
sbit	led8=P1^7;
sbit 	sda=P1^2;	
sbit 	scl=P1^1;
uchar	buffer[]={0,0,0,0,0,0,0,0};		//數(shù)碼管鍵顯緩存
uchar 	*pb=&buffer[0];
uchar   code	duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                 	0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//數(shù)碼管段碼表
uchar	code	wema[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位選
uchar 	tempL,tempH;
uchar 	task;                   			//task:按鍵狀態(tài),0:去抖,1:重復(fù)的延緩,2:重復(fù)
bit		keydone,keyprocess;					//keydone:按鍵任務(wù)完成標(biāo)志,為1時(shí)已完成
										//keyprocess:按鍵有效標(biāo)志,為1時(shí)對(duì)按鍵執(zhí)行
bit 	shans;								//shans 為閃爍使能位,1時(shí)LED閃,shanz為閃爍狀態(tài)位,
bit		shanz;								//1時(shí)為滅
bit 	keymark;						//設(shè)定狀態(tài)標(biāo)志位
uchar 	blink;						//閃爍控制器,某位為1時(shí)閃爍。
uchar 	ledtime;						//閃爍時(shí)間
uchar 	sdate;						//顯示位置變量

uchar 	funcnt;						//功能鍵的個(gè)數(shù)
uchar 	funval;						//最后掃描到的功能鍵的值
uchar 	keypre=0x00; 				//存放上次功能鍵的鍵值
uint	num1;
void 	keyXZ(void);
void 	display(uchar pos);
/****************************************************************************/
/*                                                                          */
/*                         所用的延時(shí)子程序                                 */
/*                                                                          */
/****************************************************************************/
void DelayM(uint a)										//延時(shí)函數(shù) 1MS/次	
{
		unsigned char i;
		while( --a != 0)
		{		
			for(i = 0; i < 125; i++);  					//一個(gè) ; 表示空語句,CPU空轉(zhuǎn)。
		}   				  			 				//i 從0加到125,CPU大概就耗時(shí)1毫秒
}
void DelayU(uint b)										//延時(shí)函數(shù) US級(jí)別	
{
		unsigned char i;
		while( --b != 0)
		{		
			for(i = 0; i < 20; i++);  					//一個(gè) ; 表示空語句,CPU空轉(zhuǎn)。
		}   				  
}
void delay_5us(uchar c)         //(2.17*y+5)us延時(shí),11.0592M晶振
{
    while(--c);
}
void	delay(void)
{;;}
/******************************************************************/
/******************************************************************/
/*						DS18B20驅(qū)動(dòng)函數(shù)							  */
/******************************************************************/
void DS18b20_w_byte(uchar dat);
uchar DS18b20_r_byte(void);
DS18b20_init(void);
uint DS18b20_readTemp(void);
/******************************************************************/
/*						寫一字節(jié)函數(shù)							  */
/*						入口參數(shù)dat								  */
/******************************************************************/
void DS18b20_w_byte(uchar dat)    		//向18b20寫一個(gè)字節(jié)dat是要寫的內(nèi)容
{
    uchar i;
    for(i=0;i<8;i++)
    {
        ds18b20_IO=0;
        ds18b20_IO=0x01&dat;
        delay_5us(15);                  //要求總時(shí)間在60-120us
        ds18b20_IO=1;                  	//釋放總線    
        dat=dat>>1;
    }    
}

/******************************************************************/
/*						讀一字節(jié)函數(shù)							  */
/*																  */
/******************************************************************/
uchar DS18b20_r_byte(void)        		//從18b20讀一個(gè)字節(jié).返回讀到的內(nèi)容
{
    uchar i,dat;
    dat=0;                              
    for(i=0;i<8;i++)
    {

        ds18b20_IO=0;
        dat=dat>>1;
        ds18b20_IO=1;                  	//釋放總線
        if(ds18b20_IO)
             dat|=0x80;
        delay_5us(15);                  //要求總時(shí)間在60-120us
    }
    return dat;    
}

/******************************************************************/
/*						ds18b20初始化函數(shù)						  */
/*																  */
/******************************************************************/
DS18b20_init(void)         				//每次上電都給18b20初始化,設(shè)置18b20的參數(shù)
{
	uchar x=0;
    ds18b20_IO=1;
	delay_5us(25);
	ds18b20_IO=0;
    delay_5us(255);                     //要求480-960us
    ds18b20_IO=1;                      	//釋放總線
    delay_5us(40);                      //要求60-120us
	x=ds18b20_IO;						//用X值來判斷初始化是否成功
	delay_5us(60);
}

/******************************************************************/
/*						向DS18B20讀溫度值						  */
/*						出口參數(shù)DS18b20_temp					  */
/******************************************************************/
uint DS18b20_readTemp(void)     				//讀18b20溫度值
{
	uint DS18b20_temp,t;  				//讀出的18b20溫度值存放地
	uchar	i;
	float tt=0;
	DS18b20_init();
	DS18b20_w_byte(0xcc);         		//發(fā)送Skip ROM命令
    DS18b20_w_byte(0x44);         		//發(fā)送溫度轉(zhuǎn)換命令
	for(i=0;i<7;i++)
	{
		for(sdate=0;sdate<=7;sdate++)
		{
			display(sdate);
			DelayM(3);
		}
		keyXZ();
	}
	DS18b20_init();
	DS18b20_w_byte(0xcc);         		//發(fā)送Skip ROM命令
    DS18b20_w_byte(0xbe);         		//讀溫度寄存器(頭兩個(gè)值分別為溫度的低和高位
	tempL=DS18b20_r_byte();    			//讀溫度低字節(jié)	
	tempH=DS18b20_r_byte();    			//讀溫度高字節(jié)
	t=tempH;
	t<<=8;
	t|=tempL;
	tt=t*0.0625;
	DS18b20_temp=tt*10+0.5;
	return(DS18b20_temp); 
}
//以下為EEPROM所用子函數(shù)
//起始信號(hào)
void start()
{
	sda=1;
	delay();
	scl=1;
	delay();
	sda=0;
	delay();
	scl=0;
	delay();
}
//停止信號(hào)
void stop()
{
	sda=0;
	delay();
	scl=1;
	delay();
	sda=1;
	delay();
}
//應(yīng)答
void yingda()
{
	uchar i=0;
	scl=1;
	delay();
	while((sda==1)&&(i<250))i++;
	scl=0;
	delay();
}
//初始
void init()
{
	scl=1;
	delay();
	sda=1;
	delay();	
}
//寫一個(gè)字節(jié)
void write_byte(uchar date)
{
	uchar i,temp;
	temp=date;
	for(i=0;i<8;i++)
	{
		temp=temp<<1;
		scl=0;
		delay();
		sda=CY;
		delay();
		scl=1;
		delay();	
	}
	scl=0;
	delay();
	sda=1;
	delay();
}
//讀一個(gè)字節(jié)
uchar read_byte()
{	
	uchar i,j,k;
	scl=0;
	delay();
	sda=1;
	for(i=0;i<8;i++)
	{
		delay();
		scl=1;
		delay();
		if (sda==1) j=1;
		      else j=0;
		k=(k<<1)|j;
		scl=0;		
	}
	delay();
	return k;
}

void write_add(uchar dizhi,uchar date)
{
	start();
	write_byte(0xa0);
	yingda();
	write_byte(dizhi);
	yingda();
	write_byte(date);
	yingda();
	stop();
	EA=1;
	DelayM(5);
}

uchar read_add(uchar dizhi)
{	
	uchar date;
	start();
	write_byte(0xa0);
	yingda();
	write_byte(dizhi);
	yingda();
	start();
	write_byte(0xa1);
	yingda();
	date=read_byte();
	stop();
	DelayM(5);
	return date;
}
/*************************************************
**************************************************
下面是數(shù)碼管所用的函數(shù),包括閃爍和動(dòng)態(tài)掃描
**************************************************
*************************************************/
//LED閃爍子函數(shù)
void flash()
{
	if(shans&&blink)
	{
		if(ledtime--==0)
		{
			if(!shanz) ledtime=mietime;
			else	ledtime=liangtime;
			shanz=~shanz;
		}
	}
	else shanz=0;
}

void display(uchar pos)	//按位顯示函數(shù)POS表示第幾位數(shù)碼管
{
	bit sflag;
	duX=1;				//關(guān)顯示
	P0=0x00;
	duX=0;

	duX=1;				
	sflag=(blink>>pos)&0x01;
	if(!sflag||(sflag&!shanz))
	{
		if(pos==2||pos==6)	P0=duma[buffer[pos]]|0x80;
		else	P0=duma[buffer[pos]];
	}
	else P0=0x00;
	duX=0;		

	weX=1;
	P0=wema[pos];		//送位碼
	weX=0;	
}

void key()
{
	static uchar keycnt;						//按鍵年齡計(jì)數(shù)器
	static bit keyesc;							//按鍵釋放置位標(biāo)志
	funcnt=0x00;
	funval=0x00;
	if(keydone)									//上次按鍵任務(wù)已完成
	{
		if(K1==0&&K2&&K3&&K4) 	{funcnt++;funval=0x01;}
		else if(K2==0&&K1&&K3&&K4) {funcnt++;funval=0x02;}
		else if(K3==0&&K2&&K1&&K4) {funcnt++;funval=0x03;}
		else if(K4==0&&K2&&K1&&K3) {funcnt++;funval=0x04;}
	}
	if(!funcnt)//無鍵按下或上檔鍵個(gè)數(shù)多于一個(gè)
	{	
		shans=1;
		keypre=0x00;
		keyesc=0x00;task=0x00;keycnt=0x00;
	}
	else	if(!keyesc)							//鍵已釋放
	{
		if(funcnt>1) keyesc=1;
		else if(funval!=keypre)					//如果本次鍵值和上次不同
		{
			keypre=funval;						//用本次鍵值替換上次值
			keycnt=0x00;
		}
		else 
		{	
			keycnt++;
			switch(task)
			{
			case 0:
				if(keycnt==N)
				{
					shans=1;
					keyprocess=1;
					if(K1==0||K4==0) keyesc=1;
					else
					{			
						task++;
						keycnt=0;
					}			
				}
				break;
			case 1:
				if(keycnt==MaxRate)
				{
					shans=0;
					keyprocess=1;
					keycnt=0;
					task++;
				}
				break;
			case 2:
				if(keycnt==MinRate)
				{
					shans=0;
					keyprocess=1;
					keycnt=0;
				}
				break;
			}
		}
	}
}
//功能鍵處理
void key1()
{
	if(!keymark)
	{
		pb=&buffer[0];
		blink=0x01;
		keymark=1;
		shans=1;
	}
	else
	{
		pb++;
		blink<<=1;
		if(pb>=&buffer[4])
		{
			pb=&buffer[0];
			blink=0x01;
		}
	}
}
//*************************************//
void key2()
{	
	if(keymark)
	{
		*pb+=1;
		if(*pb>=0x0a)
			*pb=0x00;
	}
}

//*************************************//
void key3()
{

	if(keymark)
	{
		if(*pb<=0)	*pb=9;
		else		*pb-=1;
	}	
}
void key4()
{

	if(keymark)
	{
		blink=0x00;
		keymark=0;
		write_add(9,buffer[1]);
		write_add(10,buffer[2]);
		write_add(11,buffer[3]);
	}	
}

void keyXZ()
{
	if(keyprocess)
	{	
		keydone=0;
		keyprocess=0;
		switch(keypre)
		{
			case 0x01:key1();break;
			case 0x02:key2();break;
			case 0x03:key3();break;
			case 0x04:key4();break;
		}
		keydone=1;
	}
}
//*************************************//
/*********************************************
	功能:定時(shí)器0中斷服務(wù)程序
*********************************************/
void timer0() interrupt 1
{
	TH0=V_TH0;
	TL0=V_TL0;
		flash();
		key();

}
void main()
{
	uint num=0;
	uchar a,b,c;
	uchar	n;

	TMOD=V_TMOD;TH0=V_TH0;TL0=V_TL0;
	TR0=1;ET0=1;EA=1;
	sdate=0x00;
	keyprocess=0;keydone=1;
	ledtime=liangtime;
	shanz=0;
	keymark=0;

	buffer[1]=read_add(9);
	buffer[2]=read_add(10);
	buffer[3]=read_add(11);
	while(1)
	{
		num1=buffer[1]*100+buffer[2]*10+buffer[3];
		num=DS18b20_readTemp();						//讀溫度并送顯
		a=num/100;
		b=(num%100)/10;
		c=(num%100)%10;
		buffer[5]=a;
		buffer[6]=b;
		buffer[7]=c;
		for(n=0;n<5;n++)
		{
			for(sdate=0;sdate<=7;sdate++)
			{
				display(sdate);
				DelayM(3);
			}
			keyXZ();
		}
		if(num1>num) {led4=0,led8=1;}
		else	{led4=1,led8=0;}
	}
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久国产精品免费看| 国产偷v国产偷v亚洲高清| 国产成+人+日韩+欧美+亚洲| 午夜视频一区在线观看| 成人欧美一区二区三区白人 | 97se亚洲国产综合自在线不卡| 韩国v欧美v日本v亚洲v| 五月婷婷欧美视频| 亚洲人123区| 亚洲电影你懂得| 男人的天堂亚洲一区| 极品瑜伽女神91| 中文字幕乱码久久午夜不卡 | 久久精品久久99精品久久| 性做久久久久久久免费看| 久久精品国产99久久6| 懂色av一区二区三区免费观看| 乱中年女人伦av一区二区| 欧美日本视频在线| 懂色av中文字幕一区二区三区| 国产成a人亚洲精品| 欧美日本韩国一区二区三区视频| 国产亚洲人成网站| 日本aⅴ亚洲精品中文乱码| heyzo一本久久综合| 久久亚洲影视婷婷| 亚洲成a人片综合在线| 97国产精品videossex| 国产亚洲视频系列| 国产一区二区三区在线观看免费 | 欧美中文一区二区三区| 欧美日韩亚洲另类| 久久综合狠狠综合久久激情 | 国产在线视频精品一区| 一本在线高清不卡dvd| 欧美一二区视频| 自拍偷在线精品自拍偷无码专区 | 亚洲免费观看高清完整| 丝袜国产日韩另类美女| 成人午夜私人影院| 欧美一区二区三区喷汁尤物| 亚洲同性gay激情无套| 精品一区二区三区视频在线观看 | 欧美日韩一区二区三区四区五区| 精品精品国产高清a毛片牛牛| 亚洲在线观看免费视频| 国产剧情av麻豆香蕉精品| 91精品国产免费| 亚洲精品视频免费观看| 国产91精品露脸国语对白| 日韩欧美色综合网站| 亚洲高清在线视频| 91亚洲精品乱码久久久久久蜜桃| 欧美成人艳星乳罩| 亚洲一二三四在线观看| 国产69精品久久99不卡| 91精品国产乱| 亚洲二区在线视频| 91福利精品第一导航| 国产天堂亚洲国产碰碰| 久久av中文字幕片| 日韩一区二区在线播放| 日av在线不卡| 欧美成人猛片aaaaaaa| 久久99精品久久久久久动态图 | 久久综合久久久久88| 国产精品中文有码| 久久精品夜色噜噜亚洲aⅴ| 精品一区二区日韩| 国产视频在线观看一区二区三区| 亚洲香肠在线观看| 3atv在线一区二区三区| 久久精品国产精品亚洲综合| 日韩午夜小视频| 精彩视频一区二区三区| 国产精品乱码一区二区三区软件| 91网站视频在线观看| 日韩影院在线观看| 久久先锋影音av鲁色资源| 成人av免费在线观看| 日韩一区在线免费观看| 欧美日韩国产三级| 国内精品国产成人国产三级粉色| 4438成人网| 国产精品99久久久久久久女警| 亚洲视频每日更新| 日韩三级在线观看| 99久久精品国产观看| 免费观看在线色综合| 综合久久国产九一剧情麻豆| 欧美精品v日韩精品v韩国精品v| 国产suv一区二区三区88区| 天天综合日日夜夜精品| 国产精品三级av| 欧美r级在线观看| 91麻豆国产自产在线观看| 久久国产综合精品| 亚洲一区二区偷拍精品| 亚洲欧洲av色图| 欧美国产日韩在线观看| 精品国产伦一区二区三区免费 | 色av成人天堂桃色av| 国产福利一区在线| 久久精品72免费观看| 亚洲二区在线观看| 一区二区三区在线观看动漫 | 国产精品理论在线观看| 欧美日韩激情一区二区三区| 成人美女视频在线看| 精品一区免费av| 日韩国产欧美三级| 亚洲国产视频直播| 综合久久久久久| 中文字幕在线观看一区二区| 精品国产一区二区国模嫣然| 91精品国产综合久久国产大片| 99re视频精品| 色老头久久综合| 欧美一三区三区四区免费在线看 | caoporn国产一区二区| 成人动漫一区二区| 色综合久久中文字幕综合网| 日本电影欧美片| 欧美区在线观看| 精品国产一区久久| 亚洲欧美视频在线观看| 亚洲国产精品久久一线不卡| 精品在线亚洲视频| 成人精品小蝌蚪| 日韩视频免费观看高清在线视频| 欧美精品一区二区在线观看| 一区二区三区欧美激情| 美女视频黄频大全不卡视频在线播放| 成人毛片视频在线观看| 在线不卡中文字幕播放| 国产精品福利影院| 久久国产精品72免费观看| 欧美三级一区二区| 亚洲视频一二三区| 成人看片黄a免费看在线| 日韩欧美的一区| 午夜欧美电影在线观看| 色先锋aa成人| 国产精品国产三级国产专播品爱网 | 亚洲免费色视频| 国产精品白丝jk白祙喷水网站 | 亚洲精品国久久99热| 国产成人精品一区二区三区四区| 欧美大片免费久久精品三p| 午夜精品久久久久久久久久| 欧美影视一区二区三区| 日韩欧美一级特黄在线播放| 国产精品免费免费| 国产一区激情在线| 在线观看视频一区二区 | 婷婷中文字幕综合| 日本丶国产丶欧美色综合| 久久精品亚洲精品国产欧美| 五月激情六月综合| 色一区在线观看| 中文字幕一区二区三区视频| 国产麻豆视频精品| 日韩视频在线永久播放| 日韩国产欧美在线观看| 69精品人人人人| 久久激情综合网| 在线观看91视频| 午夜一区二区三区在线观看| 在线国产电影不卡| 一区二区三区精品久久久| 不卡的av中国片| 亚洲精品成人精品456| 色婷婷亚洲综合| 亚洲一区av在线| 欧美精选在线播放| 久久精品国产亚洲5555| 久久综合999| gogogo免费视频观看亚洲一| 亚洲三级免费观看| 欧美日韩不卡视频| 另类小说色综合网站| 久久久国产午夜精品| jiyouzz国产精品久久| 亚洲国产日日夜夜| 日韩免费观看2025年上映的电影 | 国产69精品久久777的优势| 中文字幕欧美一| 欧美丰满美乳xxx高潮www| 国产一区久久久| 亚洲综合在线电影| 日韩精品自拍偷拍| 91蜜桃在线观看| 精品一区二区三区av| 亚洲综合在线五月| 国产免费久久精品| 欧美精品v日韩精品v韩国精品v| 国产黄人亚洲片| 日韩高清欧美激情| 一区二区三区自拍| 久久久天堂av|