欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: ds18b20 溫度模塊串口顯示簡單代碼 [打印本頁]

作者: chenyinhu    時間: 2019-9-24 23:17
標題: ds18b20 溫度模塊串口顯示簡單代碼
今天晚上沒事干編了一個極簡的一個小程序,雖然簡單但是還是很穩定的,連接也很簡單,用最小系統板p0.0口接上ds18b20模塊就可以了

#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#include "DS18B20.h"
#define OSC 11059200            //晶振頻率
#define BAUDRATE 9600    //波特率

void main(void)
{

       unsigned int i;
       unsigned char tmph,tmpl;
       Temp t;
       unsigned char strTemp[8];    //顯示到屏幕的溫度數據
                           //開背光
       TMOD = 0x21;                  //選擇方式2作為波特率發生
       SCON = 0x50;                   //串口方式1,允許中斷
       PCON |= 0x80;                  //SMOD=1
       TL1 = 256 -(OSC/12/16/BAUDRATE);
       TH1 = 256 -(OSC/12/16/BAUDRATE);
       TR1 = 1;                                  //啟動定時器
       TI = 1;                                   //TI有效
//檢測DS18B20溫度傳感器是否存在并復位傳感器
       if(DSReset())
           printf("\r\Temp sensor ResetOK!");
       else  printf("\r\Temp Sensor Notready!");
          
    while(1){
       
          DSReset();                             //復位傳感器
          Delay(1);
          DSWriteByte(SkipROM);                  //跳讀 省時
          DSWriteByte(StartConvert);             //溫度轉換
          for(i=0;i<40000;i++);
          DSReset();
          Delay(1);
          DSWriteByte(SkipROM);
          DSWriteByte(ReadMemory);   //讀RAM程序
          tmpl = DSReadByte();
          tmph = DSReadByte();
          printf("\r\nTemperature code HI=%02bX,LO=%02bX ",tmph,tmpl);
          DSReadTemp(&t);
//準備輸出到顯示屏的數據
        strTemp[0]=t.z/10+0x30;     //十位
        strTemp[1]=t.z%10+0x30;     //個位
        strTemp[2]='.';             //小數點
        strTemp[3]=t.x/1000+0x30;   //十分位
        strTemp[4]=(t.x/100)%10+0x30; //百分位
                strTemp[5]=(t.x/10)%10+0x30;//千分位
                strTemp[6]=t.x%10+0x30;            //萬分位
        strTemp[7]='C';
              if(t.z>=30)
              printf("\nWarning!!!Temperature= %d.%04d ",t.z,t.x) ;  //大于30度溫度警告
              else
        printf("\r\nTemperature = %d.%04d",t.z,t.x);

}
}

U%$`HK1Y@B98$CCYHITWL7K.png (80.25 KB, 下載次數: 56)

串口助手顯示選9600波特率

串口助手顯示選9600波特率

IMG_20190924_230416.jpg (2.42 MB, 下載次數: 46)

實物連接,其實就一根線

實物連接,其實就一根線

溫度串口顯示.zip

47 KB, 下載次數: 65, 下載積分: 黑幣 -5


作者: zskjgw    時間: 2019-11-14 08:41
支持!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1