#include#include#defineucharunsignedchar#definetempintDBYTE[0X30]#definetemp">
C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)

C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)

ID:40259068

大?。?0.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2019-07-29

C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)_第1頁(yè)
C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)_第2頁(yè)
C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)_第3頁(yè)
C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)_第4頁(yè)
C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)_第5頁(yè)
資源描述:

《C語(yǔ)言單片機(jī)開(kāi)發(fā)精確延時(shí)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、這是C程序:#include#include#include#defineucharunsignedchar#definetempintDBYTE[0X30]#definetempdfDBYTE[0X31]ucharcodetab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};sbitdat="P1"^4;voidset_ds18b20();??????????????//初始化DS18B20子程序voidget

2、_temperature();??????????//獲得溫度子程序voidread_ds18b20();?????????????//讀DS18B20子程序voidwrite_ds18b20(ucharcommand);//向DS18B20寫(xiě)1字節(jié)子程序voiddelayms(ucharcount);???????//延時(shí)count毫秒子程序voiddisp_temp();????????????????//顯示溫度子程序voidmain(){????EA="0";???????????????????????//禁止中斷????

3、SP="0x60";????????????????????//設(shè)置堆棧指針????while(1)????{????????get_temperature();??????//獲得溫度????????disp_temp();????????????//顯示溫度????}}voidset_ds18b20(){???while(1)???{???????uchardelay,flag;???????flag="0";???????dat="0";???????????????????//數(shù)據(jù)線置低電平???????delay="250

4、";???????while(--delay);??????????//低電平保持500us???????dat="1";???????????????????//數(shù)據(jù)線置高電平???????delay="30";???????while(--delay);??????????//低電平保持60us???????while(dat==0)????????????//判斷DS18B20是否發(fā)出低電平信號(hào)???????{???????????delay="120";???????????//DS18B20響應(yīng),延時(shí)240us??????

5、?????while(--delay);???????????if(dat)??????????????//DS18B20發(fā)出高電平初始化成功,返回???????????{???????????????flag="1";??????????//DS18B20初始化成功標(biāo)志???????????????break;???????????}???????}???????if(flag)?????????????????//初始化成功,再延時(shí)480us???????{???????????delay="240";???????????wh

6、ile(--delay);???????????break;???????}???}}voidget_temperature()???????????//溫度轉(zhuǎn)換、獲得溫度子程序{???set_ds18b20();???????????????//初始化DS18B20???write_ds18b20(0xcc);?????????//發(fā)跳過(guò)ROM匹配命令???write_ds18b20(0x44);?????????//發(fā)溫度轉(zhuǎn)換命令???disp_temp();?????????????????//顯示溫度,等待轉(zhuǎn)換結(jié)束,大于60

7、0ms???set_ds18b20();???write_ds18b20(0xcc);?????????//發(fā)跳過(guò)ROM匹配命令???write_ds18b20(0xbe);?????????//發(fā)出讀溫度命令???read_ds18b20();??????????????//將讀出的溫度數(shù)據(jù)保存到tempint和tempdf處}voidread_ds18b20(){???uchardelay,i,j,temp,temph,templ;???j="2";?????????????????????????//讀2位字節(jié)數(shù)據(jù)???do?

8、??{???for(i=8;i>0;i--)?????????????//一個(gè)字節(jié)分8位讀取???{???????temp>>=1;????????????????//讀取1位右移1位???????dat="0";??????????

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。