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

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

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

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

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

虛擬商品不可退

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

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

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

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

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

源程序(提供源文件):

unsigned char ReadOneChar1(void)
{
  unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {
    DQ1 = 0;     // 給脈沖信號
    dat>>=1;
    DQ1 = 1;     // 給脈沖信號
    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);  //跳過讀序號列號的操作
  WriteOneChar1(0x44);  //啟動溫度轉(zhuǎn)換
  Init1_DS18B20();
  WriteOneChar1(0xCC);  //跳過讀序號列號的操作
  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);    //稍做延時
  DQ2 = 0;         //單片機將DQ拉低
  Delay_DS18B20(80);   //精確延時,大于480us
  DQ2 = 1;         //拉高總線
  Delay_DS18B20(14);
  x = DQ2;           //稍做延時后,如果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;     // 給脈沖信號
    dat>>=1;
    DQ2 = 1;     // 給脈沖信號
    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);  //跳過讀序號列號的操作
  WriteOneChar2(0x44);  //啟動溫度轉(zhuǎn)換
  Init2_DS18B20();
  WriteOneChar2(0xCC);  //跳過讀序號列號的操作
  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è)計資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
MK70FN1M0VMJ15 1 Freescale Semiconductor Kinetis K 32-bit MCU, ARM Cortex-M4 core, 1MB Flash, 150MHz, Graphics LCD, MAPBGA 256

ECAD模型

下載ECAD模型
$18.16 查看
ATSAM4S16BA-AN 1 Atmel Corporation RISC Microcontroller, 32-Bit, FLASH, CORTEX-M4 CPU, 120MHz, CMOS, PQFP64, LQFP-64
$8.76 查看
ATXMEGA128D4-AUR 1 Microchip Technology Inc IC MCU 8BIT 128KB FLASH 44TQFP
$6.49 查看

相關(guān)推薦

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