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

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

?? ds18b20_driver.c

?? 一個DS18B20的庫文件
?? C
字號:
//------------------------------------------------------------------------------
// 文件名:DS18B20_driver.c
// 說明:  DS18B20驅動頭文件
// 功能:  實現1-wire器件的讀寫
// 使用方法:   void Delay_nus(unsigned int n);             //延時n微秒函數
//              unsigned char reset_18B20(void);            //18B20復位
//              void write_bit_18B20(char bitval);          //寫一位到18B20
//              unsigned char read_bit_18B20(void);         //讀一位從18B20
//              void write_byte_18B20(unsigned char data);  //寫一字節(jié)到18B20
//              unsigned char read_18B20(void);             //讀一字節(jié)到18B20
//
// 運行平臺:   AVR 8bit (M128已驗證)
// 依存關系:   DS18B20_driver.h    DS18B20基本驅動頭文件(函數聲明)
// 移植人:     劉大川
// 最后修改:   2008-6-3
//------------------------------------------------------------------------------

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#include "DS18B20_driver.h"


#define CL_DQ PORTD&=~(1<<PD0)
#define SET_DQ PORTD|=(1<<PD0)
#define SET_OUT DDRD|=(1<<PD0)
#define SET_IN  DDRD&=~(1<<PD0)
#define IN_DQ  PIND&(1<<PD0)

//------------------------------------------------------------------------------
// 延時N微秒程序 供控制讀寫DS18B20時序使用
//------------------------------------------------------------------------------
void Delay_nus(unsigned int n){
	while(n--){
		_delay_us(1);
	}
}

//------------------------------------------------------------------------------
// 1-wire總線復位
//------------------------------------------------------------------------------
unsigned char reset_18B20(void)
{
	char bus_flag;
	cli();
	SET_DQ;
	SET_OUT;
  	
  	Delay_nus(2);
  	CL_DQ;
  	Delay_nus(550);		//拉低至少480us時間
  	SET_DQ;				//釋放
  	SET_IN;				//輸入
  	Delay_nus(60);
  	
  	//while(IN_DQ);		//等待回復
  	bus_flag = IN_DQ;
  	
  	Delay_nus(240);		//回復的低電平在60到240US
  	SET_OUT;
  	SET_DQ;				//回到初始DQ=1;

  	sei();
	if(bus_flag){
		return FALSE;
	}else{
		return TRUE;
	}

}

//------------------------------------------------------------------------------
// 寫一位到總線
//------------------------------------------------------------------------------
void write_bit_18B20(char bitval)
{
    SET_OUT;
	CL_DQ;
	Delay_nus(2);
	if(bitval){    //寫數據,從低位開始
		SET_DQ;
	}else{
		CL_DQ;
	}
	Delay_nus(40);		//15~60us
	SET_DQ;
	Delay_nus(10);
}

//------------------------------------------------------------------------------
// 讀一位從總線
//------------------------------------------------------------------------------
unsigned char read_bit_18B20(void)
{
	unsigned char k;
	SET_OUT;
	CL_DQ;			//讀時間片開始,拉低總線至少1us
	Delay_nus(2);
	
	//SET_DQ;	
	SET_IN;
	Delay_nus(5);
	k=IN_DQ;    	//讀數據,從低位開始
	Delay_nus(10);
	SET_DQ;	
	SET_OUT;
	if(k){
	    return 1;
	}else{
	    return 0;
	}
	
}

//------------------------------------------------------------------------------
// 寫一個字節(jié)到總線
//------------------------------------------------------------------------------
void write_byte_18B20(unsigned char data)
{
	unsigned char i;
    cli();
    for(i=0;i<8;i++)
    {
    	/*
		CL_DQ;
		Delay_nus(2);
		if(data&(1<<i)){    //寫數據,從低位開始
      		SET_DQ;
      	}else{
      		CL_DQ;
    	}
    	Delay_nus(60);		//15~60us
      	SET_DQ;
        Delay_nus(10);
        */
        write_bit_18B20(data&(1<<i));
        
    }
    SET_DQ;
    sei();
    
    return;
}

//------------------------------------------------------------------------------
// 讀一個字節(jié)
//------------------------------------------------------------------------------
unsigned char read_byte_18B20(void)
{
	unsigned char temp,n;
    cli();
  	temp=0;
    for(n=0;n<8;n++)
    {
    	/*
    	//主機讀過程
    	CL_DQ;			//讀時間片開始,拉低總線至少1us
     	Delay_nus(1);
      	SET_DQ;
      	SET_IN;
        Delay_nus(4);
      	k=IN_DQ;    	//讀數據,從低位開始
      	SET_OUT;
      	*/
      	if(read_bit_18B20()){
      		temp|=(1<<n);
      	}else{
      		temp&=~(1<<n);
      	}
      	Delay_nus(70); //60~120us
      	
   }
   sei();

   return (temp);
}



//------------------------------------------------------------------------------
// 應用函數部分! 供外部調用
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// 單器件:讀器件ID
//------------------------------------------------------------------------------
void get_ID(char * id_addr)
{
    unsigned char i;	
	reset_18B20();
	write_byte_18B20(0x33);
	for(i=0;i<8;i++){
		id_addr[i] = read_byte_18B20();
	}
	return;
}

//------------------------------------------------------------------------------
// 單器件/多器件:開始轉換
//------------------------------------------------------------------------------
void convert_T(void)
{
	if(reset_18B20()){
		write_byte_18B20(0xcc);
		write_byte_18B20(0x44);
	}
}

//------------------------------------------------------------------------------
// 單器件:讀溫度,返回INIT8U型溫度數據(原始數據)
//------------------------------------------------------------------------------
unsigned int read_T(void)
{
    unsigned int value=0;
    
    if(reset_18B20()){
    	write_byte_18B20(0xcc);
    	write_byte_18B20(0xbe);
    }
    
    value = (unsigned int)read_byte_18B20();
    value += ((unsigned int)(read_byte_18B20()))<<8;

    return(value);
}


//------------------------------------------------------------------------------
// 多器件:讀指定id的溫度
//------------------------------------------------------------------------------
unsigned int read_id_T(char * id_addr)
{
    unsigned int value = 0;
    unsigned char i;
    
    //復位總線
    reset_18B20();
    //匹配ROM
	write_byte_18B20(0x55);
	//發(fā)ID
	for(i=0;i<8;i++)
	{
		write_byte_18B20(id_addr[i]);
	}
	//發(fā)讀溫度命令
	write_byte_18B20(0xbe);
	
	//讀2字節(jié)溫度值
    value = (unsigned int)read_byte_18B20();
    value += ((unsigned int)(read_byte_18B20()))<<8;

    return(value);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产亚洲在线| 欧美一区二区三区四区五区| 亚洲一区二区免费视频| 久久久蜜桃精品| 欧美日韩精品高清| 成熟亚洲日本毛茸茸凸凹| 日韩精品欧美成人高清一区二区| 久久女同精品一区二区| 欧美挠脚心视频网站| 99精品欧美一区二区蜜桃免费 | 中文在线资源观看网站视频免费不卡| 99re这里只有精品视频首页| 麻豆国产一区二区| 亚洲无人区一区| 一区二区欧美在线观看| 亚洲日本丝袜连裤袜办公室| 欧美激情一区在线观看| 久久久不卡网国产精品二区| 欧美精三区欧美精三区| 欧美伦理电影网| 欧美视频一二三区| 欧美午夜精品久久久| 欧洲一区在线观看| 欧美喷潮久久久xxxxx| 欧美精品一级二级| 日韩欧美国产高清| 欧美精品一区在线观看| 国产亚洲精品久| 国产精品成人免费精品自在线观看| 国产偷国产偷亚洲高清人白洁| 久久久午夜精品| 欧美精品电影在线播放| 欧美视频一区二区在线观看| 欧美日韩国产123区| 欧美一区二区三区四区久久| 欧美v亚洲v综合ⅴ国产v| 国产欧美一区二区三区鸳鸯浴| 国产精品美女久久久久aⅴ国产馆| 国产精品久久久久一区二区三区| 亚洲手机成人高清视频| 亚洲1区2区3区4区| 国产大陆亚洲精品国产| 亚洲精品v日韩精品| 五月激情六月综合| 国产激情91久久精品导航| 日本高清免费不卡视频| 日韩三级中文字幕| 亚洲女人的天堂| 久久er精品视频| 在线免费观看日本欧美| 亚洲精品一区二区三区蜜桃下载| 一区二区三区中文在线| 国产精品一二三区| 日韩免费观看高清完整版在线观看 | 亚洲综合色网站| 国产成人欧美日韩在线电影| 91精品在线麻豆| 亚洲一区免费在线观看| 成人精品高清在线| 久久久久成人黄色影片| 污片在线观看一区二区| 在线看不卡av| 国产精品久久二区二区| 激情小说欧美图片| 日韩无一区二区| 三级欧美韩日大片在线看| 色婷婷综合中文久久一本| 中文字幕精品一区二区精品绿巨人| 蜜臀久久久99精品久久久久久| 欧美色网站导航| 亚洲最新视频在线观看| 91麻豆国产在线观看| 国产精品另类一区| 91影院在线免费观看| 国产精品福利电影一区二区三区四区| 麻豆91在线观看| 精品国产免费一区二区三区四区 | 欧美激情一区在线| av在线不卡电影| 亚洲最大色网站| 欧美网站一区二区| 久久av老司机精品网站导航| 精品久久久久av影院| 国产毛片一区二区| 亚洲欧洲日产国产综合网| 色噜噜偷拍精品综合在线| 亚洲妇女屁股眼交7| 日韩欧美一级片| 国产精品一品视频| 亚洲一区欧美一区| 久久一日本道色综合| aaa欧美日韩| 丝袜诱惑亚洲看片| 日本一区二区视频在线观看| 91免费版pro下载短视频| 午夜伦欧美伦电影理论片| 久久久777精品电影网影网| 91日韩精品一区| 国产精品一区二区三区四区| 一区二区三区在线影院| 日韩精品一区二区三区在线观看| 大陆成人av片| 精品一区二区三区不卡| 亚洲三级电影全部在线观看高清| 这里是久久伊人| 99综合影院在线| 国产综合久久久久影院| 亚洲高清三级视频| 亚洲欧洲av一区二区三区久久| 欧美在线一二三四区| 成人美女视频在线看| 蜜桃91丨九色丨蝌蚪91桃色| 一区二区三区四区在线播放| 久久久久久免费网| 日韩精品一区二区在线观看| 日韩欧美一级二级三级| 欧洲精品在线观看| 色婷婷国产精品综合在线观看| 豆国产96在线|亚洲| 国产在线不卡一区| 久久av老司机精品网站导航| 日韩国产高清影视| 午夜在线成人av| 日韩高清国产一区在线| 日韩精品电影一区亚洲| 中文字幕一区av| 亚洲欧美视频一区| 亚洲国产你懂的| 视频在线在亚洲| 美美哒免费高清在线观看视频一区二区| 亚洲午夜一区二区| 麻豆国产欧美日韩综合精品二区 | 奇米精品一区二区三区在线观看 | 日韩黄色小视频| 激情综合色播激情啊| 国产成人8x视频一区二区| 福利一区福利二区| 91社区在线播放| 日韩欧美一区二区三区在线| 日韩美女在线视频| 国产精品色噜噜| 亚洲一二三区在线观看| 精品一区中文字幕| 99精品视频一区二区| 91精品午夜视频| 久久免费国产精品| 一区二区三区中文在线| 麻豆freexxxx性91精品| 91蜜桃在线观看| 久久品道一品道久久精品| 一区二区三区在线视频免费观看| 日韩高清电影一区| 97精品电影院| 精品国产sm最大网站| 一区二区日韩电影| 国产主播一区二区| 777奇米四色成人影色区| 久久精品免视看| 日本女优在线视频一区二区| 成人高清伦理免费影院在线观看| 337p亚洲精品色噜噜狠狠| 国产精品超碰97尤物18| 九九精品视频在线看| 欧美喷潮久久久xxxxx| 亚洲少妇30p| 一本色道综合亚洲| 久久噜噜亚洲综合| 精品亚洲国产成人av制服丝袜| 色视频一区二区| 中文字幕一区二区三区不卡| 国产aⅴ综合色| 久久久久国色av免费看影院| 美女国产一区二区| 欧美大片在线观看一区| 免费不卡在线观看| 欧美日韩五月天| 性欧美疯狂xxxxbbbb| 一本一本大道香蕉久在线精品 | 91美女在线视频| 亚洲午夜视频在线| 欧美日韩一本到| 免费成人美女在线观看.| 日韩精品一区国产麻豆| 国产精品18久久久| 亚洲欧美日韩一区| 欧美福利电影网| 国产一区二区三区在线观看免费视频| 精品久久久久久最新网址| 国产成人精品免费在线| 国产精品精品国产色婷婷| 日本高清成人免费播放| 男人操女人的视频在线观看欧美| 欧美一级二级三级蜜桃| 国产呦精品一区二区三区网站| 久久久久久久网| 在线免费亚洲电影| 视频一区二区三区中文字幕| 欧美成人性福生活免费看| 国产麻豆精品95视频| 亚洲精品欧美在线|