国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(wǎng)(yiqi.com)歡迎您!

| 注冊(cè)2 登錄
網(wǎng)站首頁(yè)-資訊-話題-產(chǎn)品-評(píng)測(cè)-品牌庫(kù)-供應(yīng)商-展會(huì)-招標(biāo)-采購(gòu)-知識(shí)-技術(shù)-社區(qū)-資料-方案-產(chǎn)品庫(kù)-視頻

問答社區(qū)

求用51單片機(jī)與DS18B20測(cè)溫的C程序。完整的。

jdjtptwg 2016-05-21 11:08:36 441  瀏覽
  •  

參與評(píng)論

全部評(píng)論(1條)

  • 475531072 2016-05-21 16:28:43
    /*************** writer:shopping.w ******************/ #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char #define delayNOP() {_nop_();_nop_();_nop_();_nop_();} sbit DQ = P3^3; sbit LCD_RS = P2^0; sbit LCD_RW = P2^1; sbit LCD_EN = P2^2; uchar code Temp_Disp_Title[]={"Current Temp : "}; uchar Current_Temp_Display_Buffer[]={" TEMP: "}; uchar code Temperature_Char[8] = { 0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00 }; uchar code df_Table[]= { 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9 }; uchar CurrentT = 0; uchar Temp_Value[]={0x00,0x00}; uchar Display_Digit[]={0,0,0,0}; bit DS18B20_IS_OK = 1; void DelayXus(uint x) { uchar i; while(x--) { for(i=0;i<200;i++); } } bit LCD_Busy_Check() { bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN=0; return result; } void Write_LCD_Command(uchar cmd) { while(LCD_Busy_Check()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; } void Write_LCD_Data(uchar dat) { while(LCD_Busy_Check()); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; } void LCD_Initialise() { Write_LCD_Command(0x01); DelayXus(5); Write_LCD_Command(0x38); DelayXus(5); Write_LCD_Command(0x0c); DelayXus(5); Write_LCD_Command(0x06); DelayXus(5); } void Set_LCD_POS(uchar pos) { Write_LCD_Command(pos|0x80); } void Delay(uint x) { while(--x); } uchar Init_DS18B20() { uchar status; DQ = 1; Delay(8); DQ = 0; Delay(90); DQ = 1; Delay(8); DQ = 1; return status; } uchar ReadOneByte() { uchar i,dat=0; DQ = 1; _nop_(); for(i=0;i<8;i++) { DQ = 0; dat >>= 1; DQ = 1; _nop_(); _nop_(); if(DQ) dat |= 0X80; Delay(30); DQ = 1; } return dat; } void WriteOneByte(uchar dat) { uchar i; for(i=0;i<8;i++) { DQ = 0; DQ = dat& 0x01; Delay(5); DQ = 1; dat >>= 1; } } void Read_Temperature() { if(Init_DS18B20()==1) DS18B20_IS_OK=0; else { WriteOneByte(0xcc); WriteOneByte(0x44); Init_DS18B20(); WriteOneByte(0xcc); WriteOneByte(0xbe); Temp_Value[0] = ReadOneByte(); Temp_Value[1] = ReadOneByte(); DS18B20_IS_OK=1; } } void Display_Temperature() { uchar i; uchar t = 150, ng = 0; if((Temp_Value[1]&0xf8)==0xf8) { Temp_Value[1] = ~Temp_Value[1]; Temp_Value[0] = ~Temp_Value[0]+1; if(Temp_Value[0]==0x00) Temp_Value[1]++; ng = 1; } Display_Digit[0] = df_Table[Temp_Value[0]&0x0f]; CurrentT = ((Temp_Value[0]&0xf0)>>4) | ((Temp_Value[1]&0x07)<<4); Display_Digit[3] = CurrentT/100; Display_Digit[2] = CurrentT%100/10; Display_Digit[1] = CurrentT%10; Current_Temp_Display_Buffer[11] = Display_Digit[0] + '0'; Current_Temp_Display_Buffer[10] = '.'; Current_Temp_Display_Buffer[9] = Display_Digit[1] + '0'; Current_Temp_Display_Buffer[8] = Display_Digit[2] + '0'; Current_Temp_Display_Buffer[7] = Display_Digit[3] + '0'; if(Display_Digit[3] == 0) Current_Temp_Display_Buffer[7] = ' '; if(Display_Digit[2] == 0&&Display_Digit[3]==0) Current_Temp_Display_Buffer[8] = ' '; if(ng) { if(Current_Temp_Display_Buffer[8] == ' ') Current_Temp_Display_Buffer[8] = '-'; else if(Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] = '-'; else Current_Temp_Display_Buffer[6] = '-'; } Set_LCD_POS(0x00); for(i=0;i<16;i++) { Write_LCD_Data(Temp_Disp_Title[i]); } Set_LCD_POS(0x40); for(i=0;i<16;i++) { Write_LCD_Data(Current_Temp_Display_Buffer[i]); } Set_LCD_POS(0x4d); Write_LCD_Data(0x00); Set_LCD_POS(0x4e); Write_LCD_Data('C'); } void main() { LCD_Initialise(); Read_Temperature(); Delay(50000); Delay(50000); while(1) { Read_Temperature(); if(DS18B20_IS_OK) Display_Temperature(); DelayXus(100); } } 以上程序來自《單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例基于8051+Proteus仿真》

    贊(20)

    回復(fù)(0)

    評(píng)論

熱門問答

求用51單片機(jī)與DS18B20測(cè)溫的C程序。完整的。
 
2016-05-21 11:08:36 441 1
求個(gè)51單片機(jī)超聲波測(cè)距(距離+報(bào)警)的c程序
求個(gè)51單片機(jī)超聲波測(cè)距(距離+報(bào)警)的c程序
2017-05-19 03:18:16 462 1
51單片機(jī)溫度控制系統(tǒng)的C語(yǔ)言程序
設(shè)計(jì)基于單片計(jì)算機(jī)的溫度控制器。用于控制電加熱爐的溫度。具體要求如下1.溫度連續(xù)可調(diào),范圍為30℃~150℃2.超調(diào)量σ%≤20%3.溫度誤差≤±0.5℃4.人-機(jī)對(duì)話方便5.控制算法采用PID或改... 設(shè)計(jì)基于單片計(jì)算機(jī)的溫度控制器。用于控制電加熱爐的溫度。具體要求如下 1. 溫度連續(xù)可調(diào),范圍為30℃~150℃ 2. 超調(diào)量σ%≤20% 3. 溫度誤差≤±0.5℃ 4. 人-機(jī)對(duì)話方便 5. 控制算法采用PID或改進(jìn)的PID或其他算法 .請(qǐng)發(fā)至3166109374@qq.com 謝謝幫忙 具體見http://wenku.baidu.com/view/e0feacf0f121dd36a22d822c 展開
2015-06-07 00:06:30 506 3
求一個(gè)正確的基于51單片機(jī)的函數(shù)信號(hào)發(fā)生器的C程序
要自己調(diào)試成功的,不要在網(wǎng)上找的,波形產(chǎn)生是用DAC0832,頻率顯示用數(shù)碼管也行,LCD1602也行,多謝大神幫忙,小弟不勝感激... 要自己調(diào)試成功的,不要在網(wǎng)上找的,波形產(chǎn)生是用DAC0832,頻率顯示用數(shù)碼管也行,LCD1602也行,多謝大神幫忙,小弟不勝感激 展開
2014-05-13 10:50:43 517 3
求一個(gè)51單片機(jī)控制的溫度計(jì)顯示程序
stc98c51控制2個(gè)4位數(shù)碼管,溫度傳感器為DS18B20。數(shù)碼管的a,b,c,d,e,f,g,dp端接在P0口... stc98c51控制2個(gè)4位數(shù)碼管,溫度傳感器為DS18B20。數(shù)碼管的a,b,c,d,e,f,g,dp端接在P0口 展開
2012-05-03 04:58:40 448 2
求一段匯編程序,利用51單片機(jī)控制3個(gè)超聲波傳感器測(cè)距的C語(yǔ)言程序
 
2017-07-25 22:41:03 343 1
用單片機(jī)測(cè)溫,ds18b20一直顯示95。0
不知道是哪里出現(xiàn)了問題
2017-08-19 21:27:34 357 1
求US-100(模塊)超聲波測(cè)距的C語(yǔ)言程序,基于51單片機(jī)的,3Q哦~
求基于51單片機(jī)的US-100超聲波測(cè)距C語(yǔ)言程序。需要詳細(xì)點(diǎn)的具體設(shè)計(jì)程序,O(∩_∩)O~ US-100模塊參考資料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:實(shí)現(xiàn)2--150cm的測(cè)距,測(cè)得結(jié)果保留4位有效數(shù)字(取整數(shù)),單位:mm。 哪... 求基于51單片機(jī)的US-100超聲波測(cè)距C語(yǔ)言程序。需要詳細(xì)點(diǎn)的具體設(shè)計(jì)程序,O(∩_∩)O~ US-100模塊參考資料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:實(shí)現(xiàn)2--150cm的測(cè)距,測(cè)得結(jié)果保留4位有效數(shù)字(取整數(shù)),單位:mm。 哪位大神幫幫忙嘍,急?。。。≌嫘闹x謝大神了~ 展開
2017-05-17 15:16:00 580 1
51單片機(jī)信號(hào)發(fā)生器的正弦波程序
voidvout_sin(void)//輸出正弦波{floatx;//用于正弦波發(fā)生器if(Voutsin())//“正弦波按鍵”被有效按下do{for(x=-3.1415;x<3.1415;x+=0.1)//正弦波發(fā)生器{vout=255*(1+sin(x))/2;//輸出... void vout_sin(void) //輸出正弦波
{ float x; //用于正弦波發(fā)生器
if(Voutsin()) //“正弦波按鍵”被有效按下
do{
for(x=-3.1415;x<3.1415;x+=0.1) //正弦波發(fā)生器
{ vout=255*(1+sin(x))/2; //輸出值vout必須大于0
P1=vout;
delay_out();
} } while(P3_0==1&P3_1==1&P3_2==1&P3_4==1) } 此段程序中do{}內(nèi)的內(nèi)容不是很理解,希望好心網(wǎng)友幫忙解釋一下,財(cái)富值不是很多,謝謝了。 展開
2013-04-02 06:51:20 578 3
基于51單片機(jī),ADC0804,光敏電阻,濕度傳感器,求程序?。。?!
我用的51單片機(jī),采集光強(qiáng)度和空氣濕度,利用了兩個(gè)ADC0804進(jìn)行轉(zhuǎn)換(光敏電阻和電阻式濕度傳感器),但是沒有相應(yīng)程序,哪位大哥能幫忙弄一個(gè)程序?。咳绻强尚械某绦颍屹~號(hào)里剩下... 我用的51單片機(jī),采集光強(qiáng)度和空氣濕度,利用了兩個(gè)ADC0804進(jìn)行轉(zhuǎn)換(光敏電阻和電阻式濕度傳感器),但是沒有相應(yīng)程序,哪位大哥能幫忙弄一個(gè)程序?。咳绻强尚械某绦?,我賬號(hào)里剩下的分全給你,雖然不多... 展開
2011-06-01 01:20:26 341 4
ds18b20 單片機(jī)測(cè)溫 干擾疑惑 謝謝
工業(yè)環(huán)境下,上電運(yùn)行一切正常,但過幾小時(shí)后會(huì)有一定的概率(一百多臺(tái)中會(huì)有隨機(jī)出現(xiàn)十幾臺(tái))出現(xiàn)復(fù)位不正常,即沒有應(yīng)答信號(hào),或者讀到的溫度值不在PDF的正常溫度范圍內(nèi)。而如果拔掉18B20傳感器再插或者設(shè)備重新上電就恢復(fù)如常,但過段時(shí)間還是有可能會(huì)出現(xiàn),... 工業(yè)環(huán)境下,上電運(yùn)行一切正常,但過幾小時(shí)后會(huì)有一定的概率(一百多臺(tái)中會(huì)有隨機(jī)出現(xiàn)十幾臺(tái))出現(xiàn)復(fù)位不正常,即沒有應(yīng)答信號(hào),或者讀到的溫度值不在PDF的正常溫度范圍內(nèi)。而如果拔掉18B20傳感器再插或者設(shè)備重新上電就恢復(fù)如常,但過段時(shí)間還是有可能會(huì)出現(xiàn),查了很長(zhǎng)時(shí)間查不出具體原因,哪位大師能指點(diǎn)一下,萬分感謝。 展開
2012-11-07 02:48:37 437 2
請(qǐng)問有誰寫過htu21d溫濕度傳感器的51單片機(jī) c程序嗎,求參考一下
 
2018-11-14 00:47:32 282 0
基于51單片機(jī)用LCD1602液晶顯示的頻率計(jì)程序
求程序——————
2013-04-23 19:11:42 389 1
匯編語(yǔ)言 51單片機(jī) 器程序
 
2017-04-19 08:39:13 413 1
51單片機(jī)如何控制超聲波傳感器 求C語(yǔ)言程序(一定要能用)100追加
型號(hào)是DYP-ME007 VCC(DC5V)、Trig(發(fā)射端)、Echo(接收端)、 Out(空)、 GND(地) (1)采用IO觸發(fā)測(cè)距,給8--15us的高電平信號(hào)即可; (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回; (3)有信號(hào)返回,通過IO輸出一高電平,高電平持續(xù)的... 型號(hào)是DYP-ME007 VCC(DC5V)、Trig(發(fā)射端)、Echo(接收端)、 Out(空)、 GND(地) (1)采用IO觸發(fā)測(cè)距,給8--15us的高電平信號(hào)即可; (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回; (3)有信號(hào)返回,通過IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間. 測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2; 展開
2012-01-07 22:26:00 606 2
急求 基于51單片機(jī) yl69土壤濕度傳感器 lcd1602顯示濕度c語(yǔ)言程序
 
2016-11-10 05:49:23 476 2
溫度控制51單片機(jī),DS1820溫度傳感器的程序
只要一小段,溫度加熱時(shí)候的程序,我要用Keil和proteus編程仿真的,加熱到40,60,80的時(shí)候分別需要恒定溫度一段時(shí)間后,在繼續(xù)加熱....... 只要一小段,溫度加熱時(shí)候的程序,我要用Keil 和 proteus 編程仿真的,加熱到40,60,80 的時(shí)候分別需要恒定溫度一段時(shí)間后,在繼續(xù)加熱.... 展開
2014-11-16 03:23:05 363 2
求一段匯編程序,利用51單片機(jī)控制超聲波傳感器測(cè)距的程序。
 
2012-04-18 20:35:53 322 2
51單片機(jī) 溫度控制 1602顯示 DS18B20讀取溫度
有償程序要求:恒溫控制... 有償程序 要求:恒溫控制 展開
2011-03-18 10:20:05 531 4
基于51單片機(jī)光電開光傳感器c程序怎么編啊!
 
2018-11-30 10:58:16 301 0

4月突出貢獻(xiàn)榜

推薦主頁(yè)

最新話題