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

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

?? main.c

?? 一個(gè)關(guān)于AVR單片機(jī)的例程
?? C
字號(hào):
// ICC-AVR application builder : 2007-6-12 17:11:46
// Target : M16
// Crystal: 7.3728Mhz
// AVR與虛擬儀器 http://www.avrvi.com
// 用途: DS18B20 演示程序
// 連接: 電源跳線,晶振跳線(一定要使用7.3728M晶振),DS18B20 接PD3,串口跳線連接
// 使用串口延長線連接PC和開發(fā)板,在串口調(diào)試助手里面觀察,發(fā)回的值,用手捏住18B20,可以看到值變大
#include <iom16v.h>
#include <macros.h>

#define F_CPU 7372800

//數(shù)據(jù)類型的定義
#define  	uint8	unsigned char															 
#define 	uint16	unsigned int

//位變量操作宏定義
#define		BIT_SET(a,b)	a|=BIT(b)
#define		BIT_CLR(a,b)	a&=~BIT(b)
#define		BIT_INV(a,b)   	a^=BIT(b)
#define		BIT_STATUS(a,b) a&BIT(b)

//DS18B20操作定義
#define		CLR_DS18B20		BIT_CLR(PORTD,PD3)		//數(shù)據(jù)線強(qiáng)制拉低
#define		SET_DS18B20		BIT_SET(PORTD,PD3)		//數(shù)據(jù)線強(qiáng)制拉高,上拉
#define		HLD_DS18B20		BIT_SET(DDRD,PD3)		//Mega16控制總線
#define		RLS_DS18B20		BIT_CLR(DDRD,PD3)   	 	//釋放總線
#define		STU_DS18B20		BIT_STATUS(PIND,PD3)		//數(shù)據(jù)線的狀態(tài)


void port_init(void)
{
 PORTA = 0xFF;
 DDRA  = 0x00;
 PORTB = 0xFF;
 DDRB  = 0xFF;  //輸出
 PORTC = 0xFF;  //m103 output only
 DDRC  = 0xFF;  //輸出 
 DDRD  = 0xFF;
 PORTD = 0xFF;
}

/**********************************************************************
functionName: void delayUs(BYTE temp)
description :延時(shí)函數(shù) 晶振頻率:7.3728MHZ
delayUs(1);	 	//2.71us
delayUs(2);	 	//3.53us
delayUs(4);	 	//5.15us
delayUs(8);	 	//8.41us
delayUs(16);	 	//14.92us
delayUs(32);	 	//27.94us
delayUs(64);	 	//53.98us
delayUs(128);	 	//106.07us
delayUs(255);		//209.42us
delayUs(18);	 	//16.55us
delayUs(34);	 	//29.57us
delayUs(35);	 	//30.38us
delayUs(100);	 	//83.28
_NOP();			//0.14us  
**********************************************************************/
void delayUs(uint8 temp)
{
 	 while(temp--);
}

//延時(shí)約1s
void longdelay(void)
{
 unsigned int i;
 for(i=4761;i!=0;i--)
  delayUs(255);
}


/*******************************************************************************
functionName: uint8 resetDS18B20(void)
description :DS18B20初始化
********************************************************************************/
uint8 resetDS18B20(void)
{
	uint8 errTime=0;
	RLS_DS18B20;		//釋放總線
	_NOP();
	HLD_DS18B20;		//Maga16控制總線
	CLR_DS18B20;		//強(qiáng)制拉低
	delayUs(255);		//209.42us
	delayUs(255);		//209.42us
	delayUs(255);		//83.28us
	//以上的三個(gè)延時(shí)大于480us
	RLS_DS18B20;		//釋放總線,總線自動(dòng)上拉
	_NOP();			
	while(STU_DS18B20)	
	{
		delayUs(4);	 	//5.15us
		errTime++;
		if(errTime>20)
		return(0x00);		//如果等帶大于約 5.15us*20就返回0x00,報(bào)告復(fù)位失敗(實(shí)際上只要等待15-60us)
	}
	errTime=0;
	while(!(STU_DS18B20))	
	{
		delayUs(4);	 	//5.15us
		errTime++;
		if(errTime>50)
		return(0x00);		//如果等帶大于約 5.15us*50就返回0x00,報(bào)告復(fù)位失敗(實(shí)際上只要等待60-240us)
	}
	return(0xff);
}


/**********************************************************************
functionName: uint8 readuint8DS18B20(void)
description :讀DS18B20一個(gè)字節(jié)
**********************************************************************/
uint8 readuint8DS18B20(void)
{
	uint8 i;
	uint8 retVal=0;
	RLS_DS18B20;		//釋放總線
	for(i=8;i>0;i--)
	{
	 	retVal>>=1;
	        HLD_DS18B20;	//Maga16控制總線
		CLR_DS18B20;	//強(qiáng)制拉低
		NOP();
	   	NOP();
	   	NOP();
	   	NOP();
	   	NOP();
		NOP();
		NOP();	
		NOP();			//延時(shí)大于1us	
		RLS_DS18B20;		//釋放總線,DS18B20會(huì)將總線強(qiáng)制拉低
		NOP();
		NOP();
		NOP();
		if(STU_DS18B20)
		retVal|=0x80;
		delayUs(16);	 	//14.92us
		delayUs(16);	 	//14.92us
		RLS_DS18B20;		//釋放總線
		delayUs(35);	 	//30.38us
	}
	delayUs(1);	 		//2.71us(大于1us就行了)
	return(retVal);
}


/*******************************************************************************
functionName: uint8 readuint8DS18B20(void)
description :寫DS18B20一個(gè)字節(jié)
********************************************************************************/
void writeuint8DS18B20(uint8 wb)
{
	uint8 i;
	uint8 temp;
	RLS_DS18B20;		//釋放總線
	for(i=0;i<8;i++)
	{
		HLD_DS18B20;		//Maga16控制總線
		CLR_DS18B20;		//強(qiáng)制拉低
		delayUs(16);	 	//14.92us
		temp=wb>>i;
		temp&=0x01;
		if(temp)
		RLS_DS18B20;		//釋放總線
		else
		CLR_DS18B20;		//強(qiáng)制拉低
		delayUs(16);	 	//14.92us
		delayUs(35);	 	//30.38us
		RLS_DS18B20;		//釋放總線
		delayUs(1);	 		//2.71us(大于1us就行了)
	}
}


/*******************************************************************************
functionName: unsigned int readTempDS18B20(void)
description :讀DS18B20溫度
********************************************************************************/
unsigned int readTempDS18B20(void)
{
	uint8 tempL,tempH;
	uint16 x;
	resetDS18B20();
	writeuint8DS18B20(0xcc); 	//跳過ROM
	writeuint8DS18B20(0x44);		//啟動(dòng)溫度轉(zhuǎn)換
	delayUs(1);
	resetDS18B20();
	writeuint8DS18B20(0xcc);		//跳過ROM
	writeuint8DS18B20(0xbe);		//讀數(shù)據(jù)
	tempL=readuint8DS18B20();
	tempH=readuint8DS18B20();
	x=(tempH<<8)|tempL;
	return(x);
}

/*******************************************************************************
串口操作相關(guān)函數(shù)
*******************************************************************************/

void USART_Init( unsigned int baud )
{
unsigned int tmp;
/* 設(shè)置波特率*/
tmp= F_CPU/baud/16-1;
UBRRH = (unsigned char)(tmp>>8);
UBRRL = (unsigned char)tmp;
/* 接收器與發(fā)送器使能*/
UCSRB = (1<<RXEN)|(1<<TXEN);
/* 設(shè)置幀格式: 8 個(gè)數(shù)據(jù)位, 2 個(gè)停止位*/
UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1);
}

// 數(shù)據(jù)發(fā)送【發(fā)送5 到8 位數(shù)據(jù)位的幀】
void USART_Transmit( unsigned char data )
{
/* 等待發(fā)送緩沖器為空 */
while ( !( UCSRA & (1<<UDRE)) )
;
/* 將數(shù)據(jù)放入緩沖器,發(fā)送數(shù)據(jù) */
UDR = data;
} 



uint16 i; //讀溫度值的暫存變量

void main(void)
{

   unsigned char temp=0;

	port_init();
	
	USART_Init(9600); //波特率9600 初始化串口
	USART_Transmit('O');
	USART_Transmit('K');

	while(1)
	{
	 i=resetDS18B20();
	 i=readTempDS18B20();
	 //下面開始對讀到的數(shù)進(jìn)行處理,說明,這里用的一位精度
	 if(i&(1<<3)) //判斷倒數(shù)第四位是1還是0 
	 {
	  temp=i>>4+1;
	 }
	 else
	 {
	  temp=i>>4;
	 }
	 
	 USART_Transmit(temp); //結(jié)果發(fā)到串口中
	 
	 longdelay(); //等待1S
	}
}

/*
假設(shè)你只要精確到1度 

換算溫度用很簡單的方法就可以處理: 

首先判斷是正溫度還是負(fù)溫度 
然后判斷倒數(shù)第四位是1還是0 
如果是1且溫度為正,那么 溫度=x>>4+1; 
如果是1且溫度為負(fù),那么 溫度=x>>4-1; 
如果是0,溫度=x>>4; 

這樣的操作可以節(jié)省很多的flah空間。 
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜亚洲色图| 日韩制服丝袜先锋影音| 久久天天做天天爱综合色| 欧美日韩国产a| 欧美日韩精品一区二区三区蜜桃| 91九色最新地址| 色综合久久天天| 91福利在线看| 欧美性受xxxx黑人xyx| 欧美日韩一区二区三区免费看 | 91精品国产色综合久久不卡电影| 欧美亚洲一区三区| 欧美丰满嫩嫩电影| 日韩一区二区三区av| 欧美一区二区三区视频在线| 制服丝袜激情欧洲亚洲| 欧美一区二区在线观看| 精品国产一区二区三区不卡| 久久综合九色综合久久久精品综合| 久久众筹精品私拍模特| 欧美国产综合色视频| 中文在线一区二区| 亚洲色图.com| 亚洲综合小说图片| 日韩国产一二三区| 国内精品伊人久久久久av影院| 国内精品不卡在线| 99re8在线精品视频免费播放| 91麻豆文化传媒在线观看| 欧美三级视频在线播放| 日韩视频免费观看高清完整版在线观看| 日韩女优电影在线观看| 欧美国产日韩亚洲一区| 亚洲欧美日韩一区二区| 日韩精品视频网站| 精品一区二区在线视频| 成人性视频网站| 欧美性色黄大片| 欧美成人bangbros| 国产精品国产自产拍高清av | 国产久卡久卡久卡久卡视频精品| 成人精品gif动图一区| 色噜噜狠狠一区二区三区果冻| 91精品在线麻豆| 亚洲国产精品国自产拍av| 亚洲综合色噜噜狠狠| 久久99久久久欧美国产| 99久久精品免费精品国产| 69av一区二区三区| 中文字幕乱码久久午夜不卡| 亚洲一级二级在线| 国产激情视频一区二区三区欧美| 在线观看亚洲成人| 国产午夜精品一区二区| 无码av中文一区二区三区桃花岛| 国产精品一区久久久久| 欧美自拍偷拍一区| 国产亚洲欧美色| 日韩一区精品字幕| 91网站在线观看视频| 日韩美女一区二区三区四区| 亚洲欧洲精品一区二区三区| 麻豆精品蜜桃视频网站| 91碰在线视频| 国产亚洲综合在线| 五月婷婷另类国产| www.欧美色图| 日韩美女视频在线| 亚洲成人精品一区| 成人高清免费观看| 精品国产一二三区| 图片区小说区国产精品视频| 99久久久国产精品免费蜜臀| 2020国产成人综合网| 日韩中文字幕麻豆| 色吧成人激情小说| 中文字幕的久久| 经典一区二区三区| 777色狠狠一区二区三区| 亚洲精品国产a| 成人性视频免费网站| 精品国产一区二区精华| 日韩激情中文字幕| 欧美亚洲一区三区| 亚洲精品视频在线看| 成人h版在线观看| 2020日本不卡一区二区视频| 男女激情视频一区| 欧美日韩视频在线一区二区| 亚洲色图欧洲色图| 99精品国产视频| 国产精品日韩精品欧美在线| 激情五月播播久久久精品| 欧美精品视频www在线观看| 一区二区三区加勒比av| caoporn国产精品| 欧美经典一区二区三区| 国产河南妇女毛片精品久久久| 日韩色在线观看| 麻豆极品一区二区三区| 日韩无一区二区| 亚洲成人av一区| 欧美日韩国产首页| 亚洲丰满少妇videoshd| 欧洲中文字幕精品| 亚洲午夜久久久久中文字幕久| 色88888久久久久久影院按摩| 亚洲精品免费在线| 在线观看一区二区视频| 亚洲国产日韩一区二区| 欧美三级三级三级爽爽爽| 亚洲国产欧美在线| 欧美日韩国产综合久久| 日韩精品色哟哟| 精品伦理精品一区| 国产揄拍国内精品对白| 日本一区二区三区免费乱视频| 成人永久aaa| 亚洲三级理论片| 欧美伊人久久大香线蕉综合69| 图片区小说区国产精品视频| 555www色欧美视频| 精品在线一区二区三区| 久久蜜桃av一区精品变态类天堂| 国产精品一区免费视频| 国产精品久久久久毛片软件| 91蝌蚪porny九色| 亚洲综合999| 欧美一区二区三区免费大片| 国产一区二区三区久久久| 国产精品理论片| 欧美日韩综合色| 黑人巨大精品欧美一区| 中文字幕乱码久久午夜不卡| 91福利在线观看| 久久精品久久99精品久久| 国产精品久久久久国产精品日日| 色偷偷88欧美精品久久久| 日韩国产在线观看| 国产精品日韩成人| 69堂精品视频| 国产.欧美.日韩| 一区二区久久久| 26uuu亚洲综合色欧美| 色综合久久综合网| 另类调教123区| 中文字幕亚洲不卡| 日韩片之四级片| av中文字幕在线不卡| 日本午夜精品一区二区三区电影| 精品对白一区国产伦| 色综合天天狠狠| 国产精品欧美一区喷水| 欧美日韩国产a| 国产伦理精品不卡| 国产精品久久久久一区二区三区共| 日本久久一区二区三区| 青青草国产精品97视觉盛宴| 国产午夜精品理论片a级大结局| 99久久久精品免费观看国产蜜| 亚洲www啪成人一区二区麻豆| 精品久久久久99| 91视频观看免费| 蜜桃久久久久久| 日韩伦理免费电影| 欧美一区二区三区视频免费播放| 高清在线不卡av| 久久99久久久欧美国产| 亚洲精选在线视频| 亚洲精品一区二区三区影院| 成人丝袜18视频在线观看| 奇米影视在线99精品| 国产精品成人一区二区三区夜夜夜| 欧美日韩一本到| 国产一区三区三区| 日韩福利视频导航| 亚洲欧美日韩成人高清在线一区| 欧美一区二区三区思思人| 不卡av免费在线观看| 日韩黄色在线观看| 中文字幕亚洲一区二区va在线| 欧美一区二区三区的| 欧美三级韩国三级日本一级| 国产成人激情av| 日本欧美一区二区| 中文字幕免费不卡在线| 久久伊人中文字幕| 欧美主播一区二区三区美女| 国产高清不卡一区二区| 日韩影院免费视频| 一区二区三区欧美视频| 国产欧美日本一区二区三区| 欧美日韩国产一级| 欧美日韩亚洲综合在线| 91无套直看片红桃| 成人免费观看视频| av一本久道久久综合久久鬼色| 经典三级一区二区| 免费精品视频最新在线| 亚洲福利视频三区|