#include#include#defineucharunsignedchar#definetempintDBYTE[0X30]#definetemp">
C語言單片機開發(fā)精確延時

C語言單片機開發(fā)精確延時

ID:40259068

大小:40.50 KB

頁數(shù):6頁

時間:2019-07-29

C語言單片機開發(fā)精確延時_第1頁
C語言單片機開發(fā)精確延時_第2頁
C語言單片機開發(fā)精確延時_第3頁
C語言單片機開發(fā)精確延時_第4頁
C語言單片機開發(fā)精確延時_第5頁
資源描述:

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

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寫1字節(jié)子程序voiddelayms(ucharcount);???????//延時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ā)出低電平信號???????{???????????delay="120";???????????//DS18B20響應(yīng),延時240us??????

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

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

7、0ms???set_ds18b20();???write_ds18b20(0xcc);?????????//發(fā)跳過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--)?????????????//一個字節(jié)分8位讀取???{???????temp>>=1;????????????????//讀取1位右移1位???????dat="0";??????????

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

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

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