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

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

?? ds1820.c

?? 基于AVR的超聲波測距程序
?? C
字號:
#include <avr/io.h>
#include <avr/wdt.h>
#include <stdio.h>
#include <avr/delay.h>
#include <avr/signal.h>
#include "MyDef.h"
#include "ds1820.h"

const uchar CRC_Code[256]={    	//DS1820 CRC校驗表
	0,  94, 188,  226,  97,  63,  221,  131,  194,  156,  126,  32,  163,  253,  31,  65,
	157,  195,  33,  127,  252,  162,  64,  30,  95,  1,  227,  189,  62,  96,  130,  220,
	35,  125,  159,  193,  66,  28,  254,  160,  225,  191,  93,  3,  128,  222,  60,  98,
	190,  224,  2,  92,  223,  129,  99,  61,  124,  34,  192,  158,  29,  67,  161,  255,
	70,  24,  250,  164,  39,  121,  155,  197,  132,  218,  56,  102,  229,  187,  89,  7,
	219,  133, 103,  57,  186,  228,  6,  88,  25,  71,  165,  251,  120,  38,  196,  154,
	101,  59, 217,  135,  4,  90,  184,  230,  167,  249,  27,  69,  198,  152,  122,  36,
	248,  166, 68,  26,  153,  199,  37,  123,  58,  100,  134,  216,  91,  5,  231,  185,
	140,  210, 48,  110,  237,  179,  81,  15,  78,  16,  242,  172,  47,  113,  147,  205,
	17,  79,  173,  243,  112,  46,  204,  146,  211,  141,  111,  49,  178,  236,  14,  80,
	175,  241, 19,  77,  206,  144,  114,  44,  109,  51,  209,  143,  12,  82,  176,  238,
	50,  108,  142,  208,  83,  13,  239,  177,  240,  174,  76,  18,  145,  207,  45,  115,
	202,  148, 118,  40,  171,  245,  23,  73,  8,  86,  180,  234,  105,  55,  213, 139,
	87,  9,  235,  181,  54,  104,  138,  212,  149,  203,  41,  119,  244,  170,  72,  22,
	233,  183,  85,  11,  136,  214,  52,  106,  43,  117,  151,  201,  74,  20,  246,  168,
	116,  42,  200,  150,  21,  75,  169,  247,  182,  232,  10,  84,  215,  137,  107,  53
}; 

uchar Init_DS1820(void)            //DS1820初始化
{
	uchar flg;
	SET_1820_DATOUT;
	CLR_1820_DAT; 
	delay_nus(500);    

	SET_1820_DATIN;            //輸入 釋放
	delay_nus(80);     
	if(CHECK_1820_DAT)          //等待回復
		flg = 0;       
	else
		flg = 1;        //0表示初始化成功 
	
    delay_nus(240);    //回復的低電平在60到240US

	SET_1820_DATOUT; 
	SET_1820_DAT;            //回到初始DQ=1;
	return flg; 
}

//-------------- 寫DS1820溫度 --------------------

void write_DS1820(uchar dat)   //寫DS1820溫度 
{
    uchar i; 
 	SET_1820_DATOUT;            //控制腳定義成輸出  
    for(i=0;i<8;i++)  
		{  
			CLR_1820_DAT;
			delay_nus(5);  
			if(dat&1)        //寫數據,從低位開始  
				{
					SET_1820_DAT;       // bit=1
				} 
			else
				{ 
					CLR_1820_DAT;       // bit=0
				}
			delay_nus(60);   // wait for 60us ,total > 60us
			SET_1820_DAT;          //再次拉高
			delay_nus(10);    //寫兩個位之間的間隔
			dat>>=1; 
		}  
    SET_1820_DAT;  
}

//--------------- 讀DS1820溫度 -------------------

uchar read_DS1820(void)   //讀DS1820溫度
{
	uchar i, dat=0;        // dat用于存儲讀到的數據
     
	SET_1820_DATOUT;               //第一次拉低,設置引腳為輸出    
    for(i=0;i<8;i++)  
		{  
			dat>>=1;  
			CLR_1820_DAT;          
			delay_nus(5);    //拉低5微秒
              
			SET_1820_DATIN;          //定義成輸入,讀入狀態
			delay_nus(5);    //等DS1820響應
			if(CHECK_1820_DAT)        //讀狀態,放入dat中
				{
					dat |=0x80;    //放到最高位,左移
				}		                
			delay_nus(80);   //wait for 60~120us 

			SET_1820_DAT;     
			SET_1820_DATOUT;         //再次定義成輸出
        }  

   return dat;  
}
 
uchar DS1820CRCDETECT(void)
{
	uchar i;
    uchar rom64[8];
	uchar crc_temp=0;

	Init_DS1820();          //初始化,然后讀出溫度值
	write_DS1820(0xCC);     //發送ROM命令,不進行匹配 
	write_DS1820(0x4E);     //發送功能命令,寫配置寄存器  
    write_DS1820(0x02);     // TH
	write_DS1820(0x80);     // TL
	write_DS1820(0x7F);     // Config  :0x1F:9位, 0x3F:10位 ,0x5F:11位 ,0x7F:12位
                          // 所需時間: 93.75ms   187.75ms    375ms      750ms
    Init_DS1820();          //初始化,然后讀出溫度值
	write_DS1820(0x33);     //發送ROM命令,讀64-bit ROM 值 
	for(i=0;i<8;i++)
		{
			rom64[i]=read_DS1820(); 
		}

	crc_temp = CRC_Code[rom64[0]];   //算第一個CRC碼 
	
	for(i=1;i<7;i++)           //后面的CRC碼:I = (當前CRC) EXOR (輸入字)
		{
			crc_temp =  CRC_Code[rom64[i]^crc_temp];
		}

	if(crc_temp == rom64[7])
		{
#ifdef Debug		
//			printf("\nDS1820 ROM CRC SUCCESS");
#endif		
			return 1;
		}

	else
		{
#ifdef Debug			
//			printf("\nDS1820 ROM CRC FAIL");
#endif		
		}
	return 0;
}


float GetTemperature(void)
{
	float temperature;
	ulong temp;
	uchar scr_pad[9];
	uchar crc_temp=0;
	uchar i=0;
	
	Init_DS1820();          //初始化DS1820
	write_DS1820(0xCC);     //發送ROM命令,不進行匹配 
	write_DS1820(0x44);     //啟動DS1820進行轉換  
        
	delay_nms(1000);	     //延時等轉換完成

	Init_DS1820();          //初始化,然后讀出溫度值
	write_DS1820(0xCC);     //發送ROM命令,不進行匹配 
	write_DS1820(0xBE);     //發送功能命令,讀出暫存寄存器中內容
		
	for(i=0;i<9;i++)
		{
			scr_pad[i]=read_DS1820();   //讀出9位scratchpad 的值
		}

//----------下面校驗讀出的值是否正確---------------

	crc_temp = CRC_Code[scr_pad[0]];   //選算第一個CRC碼 
			
	for(i=1;i<8;i++)          
		{
			crc_temp =  CRC_Code[scr_pad[i]^crc_temp];
		}

	if( crc_temp==scr_pad[8] ) //如果結果正確則顯示
		{
     
			if(scr_pad[1]&0x08)
				{
           
					scr_pad[1]=~scr_pad[1];
					scr_pad[0]=~scr_pad[0];

					SREG=SREG&(~(1<<SREG_C));   //清零 C 進位
					scr_pad[0]++;
					if(SREG&(1<<SREG_C))        //如果有進位,則高位加1
						scr_pad[1]++;
				}

			temp = scr_pad[1];
			temp = (temp << 8) + scr_pad[0];

			temperature = temp*0.0625;       //得到真實十進制溫度值,因為DSDS1820
	
#ifdef Debug	
//	printf("\nCurrent Temperature: %5.1f Degrees",temperature);
#endif	

		}
	else                    //結果不正確則提示錯誤
		{
			temperature = -100; // 用 -100表示 溫度輸出錯誤
#ifdef Debug			
//			printf("\nError Occured!!! Wrong Temperature"); 
#endif	
		}

	return temperature;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日夜夜精品视频天天综合网| 精品一二三四区| 日本亚洲一区二区| 成人动漫av在线| 欧美丰满少妇xxxbbb| 中文字幕一区二| 日韩成人av影视| 一区二区三区四区在线免费观看| 五月激情综合婷婷| www.在线欧美| 久久精品日韩一区二区三区| 亚洲一区二区偷拍精品| 波多野洁衣一区| 日韩欧美一区电影| 天堂一区二区在线免费观看| 99热这里都是精品| 国产人成亚洲第一网站在线播放| 婷婷开心激情综合| 欧美在线观看一区二区| 国产精品国产馆在线真实露脸| 老司机精品视频线观看86| 欧美日韩成人在线一区| 亚洲最快最全在线视频| 91视频com| 亚洲同性gay激情无套| 成人不卡免费av| 国产精品美女久久久久aⅴ国产馆| 国内外成人在线| 欧美不卡123| 精品一区二区免费在线观看| 欧美一区二区三区的| 日韩国产精品久久久久久亚洲| 91国产精品成人| 亚洲综合网站在线观看| 色网综合在线观看| 一区二区三区精品在线| 在线免费不卡电影| 亚洲国产一二三| 欧美午夜片在线观看| 亚洲va韩国va欧美va| 3d动漫精品啪啪| 久色婷婷小香蕉久久| 精品福利一区二区三区免费视频| 蜜臀av性久久久久av蜜臀妖精| 日韩一区二区三区四区| 久99久精品视频免费观看| 2020国产精品久久精品美国| 国产成人免费视频精品含羞草妖精| 久久久亚洲国产美女国产盗摄| 国产精品一区二区视频| 国产精品久久久久桃色tv| 欧美怡红院视频| 麻豆国产欧美一区二区三区| 久久久777精品电影网影网| 成人av网站在线| 亚洲免费观看高清完整版在线观看 | 国产欧美日韩在线| 成人av资源下载| 中文字幕av一区二区三区免费看 | 国产一区二区三区蝌蚪| 欧美网站一区二区| 麻豆一区二区在线| 久久蜜桃av一区精品变态类天堂 | 韩国理伦片一区二区三区在线播放| 日韩三级视频在线观看| 国产综合一区二区| 国产精品美女视频| 欧美在线观看18| 日日夜夜免费精品| 欧美成人精精品一区二区频| 精品中文字幕一区二区| 国产欧美日本一区二区三区| 成人av在线一区二区三区| 1000精品久久久久久久久| 色菇凉天天综合网| 日韩av中文字幕一区二区三区| 精品嫩草影院久久| kk眼镜猥琐国模调教系列一区二区| 亚洲精品欧美二区三区中文字幕| 欧美日韩亚洲另类| 奇米色一区二区| 国产亲近乱来精品视频| 在线一区二区观看| 激情综合网av| 一区二区免费视频| 精品av综合导航| 91福利在线免费观看| 麻豆传媒一区二区三区| 自拍偷拍亚洲综合| 欧美成人女星排名| caoporn国产精品| 免费黄网站欧美| 中文字幕中文字幕一区| 欧美一区日韩一区| 99久久99久久精品免费观看 | 国产精品久久二区二区| 欧美影院午夜播放| 粉嫩一区二区三区在线看| 天堂在线一区二区| 亚洲卡通欧美制服中文| 精品对白一区国产伦| 欧美伊人久久久久久久久影院| 国产v综合v亚洲欧| 日韩经典一区二区| 亚洲精品一卡二卡| 国产欧美日韩视频一区二区 | 亚洲国产中文字幕在线视频综合| 欧美精品丝袜久久久中文字幕| 国产黄色成人av| 亚洲国产精品嫩草影院| 中文字幕在线免费不卡| 久久精品视频一区二区三区| 日韩手机在线导航| 91精品国产综合久久久久久漫画| 91农村精品一区二区在线| 国产经典欧美精品| 国产一区不卡视频| 亚洲va欧美va天堂v国产综合| 日韩一区欧美小说| 国产精品久久久久一区二区三区 | 国产精品欧美精品| 欧美激情一区二区三区四区| 精品国产一区二区三区av性色| 91精品久久久久久久99蜜桃| 欧美偷拍一区二区| 色8久久精品久久久久久蜜| 福利视频网站一区二区三区| 国产另类ts人妖一区二区| 蜜臀精品一区二区三区在线观看| 久久国产成人午夜av影院| 亚洲精品v日韩精品| 国产精品日产欧美久久久久| 欧美成人精品1314www| 日韩视频一区二区三区在线播放 | 中文字幕第一区第二区| 久久精品夜色噜噜亚洲aⅴ| 久久奇米777| 国产精品视频一区二区三区不卡| 欧美日韩高清一区二区不卡 | 亚洲精品在线免费观看视频| 91精品国产入口| 欧美大片在线观看一区二区| 欧美成人一区二区三区片免费 | 精品一区二区在线播放| 国产在线精品一区二区| 韩国欧美国产1区| 成人精品视频网站| 色综合久久久久久久| 不卡一区二区三区四区| 色综合久久天天| 国产精品丝袜黑色高跟| 日韩精品色哟哟| 亚洲va天堂va国产va久| 免费的国产精品| 人人爽香蕉精品| 成人av网址在线| 91精选在线观看| 久久综合国产精品| 1024亚洲合集| 日韩二区在线观看| 国产在线不卡一区| 色婷婷av一区| 精品剧情在线观看| 日韩精品一区二区三区三区免费 | 日本一区中文字幕| 成人激情校园春色| 欧美天堂亚洲电影院在线播放| 91最新地址在线播放| 欧美视频在线一区二区三区| 欧美一区二区三区系列电影| 欧美国产一区二区| 日韩av在线发布| 99r精品视频| 欧美大片国产精品| 一区二区在线观看av| 亚洲国产精品国自产拍av| 玉米视频成人免费看| 日本不卡一二三区黄网| 国产毛片精品国产一区二区三区| 91污在线观看| 欧美精品一区二区久久久| 亚洲色大成网站www久久九九| 天天综合日日夜夜精品| av一区二区三区在线| 欧美电影免费观看完整版| 亚洲精品一二三四区| 国产精品一区三区| 91精品欧美福利在线观看| 国产精品久久久久久户外露出| 国内不卡的二区三区中文字幕| 欧美亚洲国产bt| 中文字幕一区二区三区精华液 | 欧美国产1区2区| 蜜臀久久99精品久久久画质超高清| 在线亚洲一区二区| 国产精品高潮呻吟久久| 日本视频一区二区| 欧美日韩国产在线播放网站| 精品国产精品一区二区夜夜嗨| 紧缚捆绑精品一区二区|