加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

基于51單片機(jī)的多路溫度檢測(cè)調(diào)節(jié)串口傳輸系統(tǒng)

07/15 14:44
546
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

本設(shè)計(jì)基于51單片機(jī)的多路溫度檢測(cè)調(diào)節(jié)串口傳輸系統(tǒng)(仿真+源碼+視頻講解)
仿真:proteus8.9
程序編譯器:keil 4
編程語言:C語言
編號(hào)C0009
騰訊文檔】C0009 網(wǎng)盤鏈接
資料下載鏈接

功能說明:
1、采用四個(gè)DS18B20溫度傳感器測(cè)溫并用LCD1602顯示四路溫度值;
2、按鍵為設(shè)置按鍵、加鍵和減鍵,可設(shè)置上下限溫度控制范圍;
3、當(dāng)每路溫度值超過設(shè)定的上或下限時(shí),相應(yīng)的指示燈亮;
4、當(dāng)平均溫度值超過設(shè)定的上限時(shí),繼電器吸合,風(fēng)扇轉(zhuǎn)動(dòng)表示降溫;
5、當(dāng)平均溫度值低于設(shè)定的下限時(shí),繼電器吸合,加熱膜工作表示升溫;
6、利用串口傳輸模塊實(shí)時(shí)將平均溫度值發(fā)送到串口調(diào)試助手。

仿真圖(提供源文件):
在這里插入圖片描述
在這里插入圖片描述

源程序(提供源文件):

unsigned char ReadOneChar1(void)
{
  unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {
    DQ1 = 0;     // 給脈沖信號(hào)
    dat>>=1;
    DQ1 = 1;     // 給脈沖信號(hào)
    if(DQ1)
    dat|=0x80;
    Delay_DS18B20(4);
  }
  return(dat);
}
void WriteOneChar1(unsigned char dat)
{
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
    DQ1 = 0;
    DQ1 = dat&0x01;
    Delay_DS18B20(5);
    DQ1 = 1;
    dat>>=1;
  }
}

/*****讀取溫度*****/
unsigned int ReadTemperature1(void)
{
  unsigned char a=0;
  unsigned char b=0;
  unsigned int t=0;
  float tt=0;
  Init1_DS18B20();
  WriteOneChar1(0xCC);  //跳過讀序號(hào)列號(hào)的操作
  WriteOneChar1(0x44);  //啟動(dòng)溫度轉(zhuǎn)換
  Init1_DS18B20();
  WriteOneChar1(0xCC);  //跳過讀序號(hào)列號(hào)的操作
  WriteOneChar1(0xBE);  //讀取溫度寄存器
  a=ReadOneChar1();     //讀低8位
  b=ReadOneChar1();    //讀高8位
  t=b;
  t<<=8;
  t=t|a;
  tt=t*0.0625;
 // t= tt*10+0.5;     //放大10倍輸出并四舍五入
  t= tt*10+0.5; 
  return(t);
}


/*****初始化DS18B20  溫度傳感器3*****/
void Init2_DS18B20(void)
{
  unsigned char x=0;
  DQ2 = 1;         //DQ復(fù)位
  Delay_DS18B20(8);    //稍做延時(shí)
  DQ2 = 0;         //單片機(jī)將DQ拉低
  Delay_DS18B20(80);   //精確延時(shí),大于480us
  DQ2 = 1;         //拉高總線
  Delay_DS18B20(14);
  x = DQ2;           //稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗
  Delay_DS18B20(20);
}

unsigned char ReadOneChar2(void)
{
  unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {
    DQ2 = 0;     // 給脈沖信號(hào)
    dat>>=1;
    DQ2 = 1;     // 給脈沖信號(hào)
    if(DQ2)
    dat|=0x80;
    Delay_DS18B20(4);
  }
  return(dat);
}
void WriteOneChar2(unsigned char dat)
{
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
    DQ2 = 0;
    DQ2 = dat&0x01;
    Delay_DS18B20(5);
    DQ2 = 1;
    dat>>=1;
  }
}

/*****讀取溫度*****/
unsigned int ReadTemperature2(void)
{
  unsigned char a=0;
  unsigned char b=0;
  unsigned int t=0;
  float tt=0;
  Init2_DS18B20();
  WriteOneChar2(0xCC);  //跳過讀序號(hào)列號(hào)的操作
  WriteOneChar2(0x44);  //啟動(dòng)溫度轉(zhuǎn)換
  Init2_DS18B20();
  WriteOneChar2(0xCC);  //跳過讀序號(hào)列號(hào)的操作
  WriteOneChar2(0xBE);  //讀取溫度寄存器
  a=ReadOneChar2();     //讀低8位
  b=ReadOneChar2();    //讀高8位
  t=b;
  t<<=8;
  t=t|a;
  tt=t*0.0625;
 // t= tt*10+0.5;     //放大10倍輸出并四舍五入
  t= tt*10+0.5; 
  return(t);
}

在這里插入圖片描述

資料清單如下:
在這里插入圖片描述

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ATMEGA128A-MU 1 Atmel Corporation RISC Microcontroller, 8-Bit, FLASH, AVR RISC CPU, 16MHz, CMOS, 9 X 9 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, MO-220VMMD, QFN-64

ECAD模型

下載ECAD模型
$5.69 查看
AT32UC3A0512-ALUR 1 Atmel Corporation RISC Microcontroller, 32-Bit, FLASH, AVR RISC CPU, 66MHz, CMOS, PQFP144, MS-026, LQFP-144
$14.01 查看
STM32H757XIH6TR 1 STMicroelectronics RISC Microcontroller
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜