《電子技術應用》
您所在的位置:首頁 > 電子元件 > 其他 > 教程:基于51單片機的溫度報警系統

教程:基于51單片機的溫度報警系統

2023-01-31
來源:CSDN博客

  STC89C52為核心,設計一個溫度報警器,它由部分組成:顯示模塊、CPU控制模塊、報警模塊、溫度測量模塊、按鍵控制模塊。CPU控制模塊采用STC89C52單片機進行控制,溫度傳感器由DS18B20模塊進行室溫的測量,顯示模塊由八個數碼管進行顯示,報警模塊由LED亮滅和有源蜂鳴器來實現。溫濕度顯示器要求如下:

  1、數碼管顯示:

  1)、溫度-閾值顯示

  上電數碼管第一位和第二位顯示室溫大小第三位顯示C,第六位顯示-表示閾值,第七位第八位顯示閾值大?。?/p>

  2)、調整閾值顯示

  按下按鍵K1則數碼管只顯示第七位和第八位,且數值為當前閾值大??;

  2、LED顯示功能:

  1)、數碼管處于溫度-閾值顯示界面時,D1點亮,D2熄滅,其余燈光不受影響;

  2)、數碼管處于調整閾值顯示時,D1熄滅,D2點亮,其余燈光不受影響;

  3)、溫度大于大于所設置閾值時,D3點亮,D4熄滅,其余燈光不受影響;

  4)、溫度小于所設置閾值時,D3熄滅,D4點亮,其余燈光不受影響;

  5)、蜂鳴器打開時,D5點亮,其余燈光不受影響;

  6)、蜂鳴器關閉時,D5熄滅,其余燈光不受影響;

  3、按鍵控制功能:

  1)、K1控制 溫度-閾值顯示 和 閾值調節顯示 的來回切換;

  2)、在調節閾值顯示界面下,K2控制閾值的加1,在溫度-閾值顯示界面下,此按鍵沒有任何功能;

  3)、在調節閾值顯示界面下,K3控制閾值的減1,在溫度-閾值顯示界面下,此按鍵沒有任何功能;

  4)、蜂鳴器調節按鍵,初始狀態下,蜂鳴器打開,按下后蜂鳴器關閉;

  4、實驗現象

  5、源碼:

  main.c

  #include “main.h”

  #include “onewire.h”

  sbit K1=P1^4;

  sbit K4=P1^5;

  sbit K2=P1^6;

  sbit K3=P1^7;

  sbit L1=P2^0;

  sbit L2=P2^1;

  sbit L3=P2^2;

  sbit L4=P2^3;

  sbit L5=P2^4;//開關蜂鳴器

  sbit buzzer=P1^1;

  u8 table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf,0xc6};

  u8 dat[4];

  u8 wendu=0;

  u8 yi,er,san,si,wu,liu,qi,ba;

  bit jia=0,jian=0,S1=0,S4=0;

  u8 yuzhi=25;

  u8 Ds18b20();

  void display();

  void key();

  void main()

  {

  while(1)

  {

  wendu=Ds18b20();

  key();

  if(S1==0)

  {

  L1=0;L2=1;L3=1;L4=1;

  yi=wendu/10;er=wendu%10;

  san=12;si=10;wu=10;

  liu=11;qi=yuzhi/10;ba=yuzhi%10;

  }

  else if(S1==1)

  {

  L1=1;L2=0;L3=1;L4=1;

  if(jia==1){jia=0;if(yuzhi<50)yuzhi++;}

  if(jian==1){jian=0;if(yuzhi>0)yuzhi--;}

  yi=10;er=10;san=10;si=10;wu=10;

  liu=10;qi=yuzhi/10;ba=yuzhi%10;

  }

  if(S4==0)

  {

  L5=0;

  if(yuzhi<=wendu){L1&=1;L2&=1;L3&=0;L4=1;buzzer=1;}

  else if(yuzhi>wendu){L1&=1;L2&=1;L3=1;L4=0;buzzer=0;}

  }

  else if(S4==1)

  {

  L5=1;

  if(yuzhi

  else if(yuzhi>=wendu){L1&=1;L2&=1;L3=1;L4=0;buzzer=0;}

  }

  display();

  }

  }

  void delayms(u16 z)

  {

  u16 i,j;

  for(i=z;i>0;i--)

  for(j=110;j>0;j--);

  }

  void nixie(u8 add,u8 dat)

  {

  P3=0x01<

  P0=dat;

  }

  void display()

  {

  nixie(0,table[yi]);

  delayms(3);

  nixie(1,table[er]);

  delayms(3);

  nixie(2,table[san]);

  delayms(3);

  nixie(3,table[si]);

  delayms(3);

  nixie(4,table[wu]);

  delayms(3);

  nixie(5,table[liu]);

  delayms(3);

  nixie(6,table[qi]);

  delayms(3);

  nixie(7,table[ba]);

  delayms(3);

  }

  u8 Ds18b20()

  {

  u8 low,high,temp;

  init_ds18b20();

  Write_DS18B20(0xcc);//0xcc控制ds18b20,直接跳過一些其他命令(精度命令等)

  Write_DS18B20(0x44);//0x44控制ds18b20只讀一次溫度大小

  Delay_OneWire(100);

  init_ds18b20();

  Write_DS18B20(0xcc);//0xcc控制ds18b20,直接跳過一些其他命令(精度命令等)

  Write_DS18B20(0xbe);//0xbe,單片機準備讀取自己內部的寄存器里面的數據

  Delay_OneWire(100);

  low=Read_DS18B20();//ds18b20內部數據一共16位,高四位表示符號(正負),低四位表示小數部分

  high=Read_DS18B20();

  temp=high《4|low》4;//丟棄高四位和低四位

  return temp;

  }

  void key()

  {

  if(K1==0)

  {

  delayms(2);

  if(K1==0)

  {

  if(S1==0)S1=1;

  else if(S1==1)S1=0;

  }

  while(!K1)display();

  }

  if(K2==0)

  {

  delayms(2);

  if(K2==0)jia=1;

  while(!K2)display();

  }

  if(K3==0)

  {

  delayms(2);

  if(K3==0)jian=1;

  while(!K3)display();

  }

  if(K4==0)

  {

  delayms(2);

  if(K4==0)

  {

  if(S4==0)S4=1;

  else if(S4==1)S4=0;

  }

  while(!K4)display();

  }

  }

  main.h

  #ifndef main_H

  #define main_H

  #include

  #include

  typedef unsigned int u16;

  typedef unsigned char u8;

  #endif

  onewire.c

  #include “onewire.h”

  sbit DQ = P1^0; //單總線接口

  //單總線延時函數

  void Delay_OneWire(unsigned int t) //STC89C52RC

  {

  while(t--);

  }

  //通過單總線向DS18B20寫一個字節

  void Write_DS18B20(unsigned char dat)

  {

  unsigned char i;

  for(i=0;i<8;i++)

  {

  DQ = 0;

  DQ = dat&0x01;

  Delay_OneWire(5);

  DQ = 1;

  dat 》= 1;

  }

  Delay_OneWire(5);

  }

  //從DS18B20讀取一個字節

  unsigned char Read_DS18B20(void)

  {

  unsigned char i;

  unsigned char dat;

  for(i=0;i<8;i++)

  {

  DQ = 0;

  dat 》= 1;

  DQ = 1;

  if(DQ)

  {

  dat |= 0x80;

  }

  Delay_OneWire(5);

  }

  return dat;

  }

  //DS18B20設備初始化

  bit init_ds18b20(void)

  {

  bit initflag = 0;

  DQ = 1;

  Delay_OneWire(12);

  DQ = 0;

  Delay_OneWire(80);

  DQ = 1;

  Delay_OneWire(10);

  initflag = DQ;

  Delay_OneWire(5);

  return initflag;

  }

  onewire.h

  #ifndef __ONEWIRE_H

  #define __ONEWIRE_H

  #include “main.h”

  unsigned char Read_DS18B20(void);

  bit init_ds18b20(void);

  void Write_DS18B20(unsigned char dat);

  void Delay_OneWire(unsigned int t) ;

  #endif

  原文鏈接:https://blog.csdn.net/m0_58832575/article/details/124087176``



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久久香蕉网| 国产精品视频九色porn| 亚洲在线成人精品| 日韩一区二区精品视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲一区二区精品在线| 在线中文字幕一区| 国产精品99久久久久久久vr| 99热免费精品| 国产精品99久久久久久白浆小说| 亚洲毛片网站| 99视频热这里只有精品免费| 99国内精品| 亚洲天堂av图片| 亚洲一区欧美二区| 亚洲欧美日韩系列| 亚久久调教视频| 亚洲第一精品久久忘忧草社区| 久久经典综合| 亚洲国产精品精华液2区45| 亚洲国产精品成人综合色在线婷婷 | 韩日在线一区| 在线欧美亚洲| 日韩网站在线| 国产精品99久久久久久久久| 亚洲女性裸体视频| 欧美亚洲视频在线观看| 亚洲国产精品成人va在线观看| 亚洲精品孕妇| 亚洲免费一级电影| 久久精品国产清高在天天线| 免费久久99精品国产| 欧美激情精品久久久久久免费印度| 欧美日韩大片| 国产精品永久免费观看| 激情六月婷婷久久| 亚洲精品一区二区三区福利| 一本久道综合久久精品| 亚洲欧美日韩成人| 亚洲福利在线看| 99国产精品视频免费观看一公开| 亚洲在线视频观看| 久久爱www| 欧美成人精品在线观看| 欧美三级第一页| 国产日韩在线看| 亚洲国产日本| 亚洲综合色激情五月| 久久精品一区| 亚洲视频一区二区在线观看| 久久精品最新地址| 欧美日韩成人在线播放| 国产日韩精品一区二区三区在线| 亚洲大片精品永久免费| 亚洲一区二区三区视频播放| 亚洲激情黄色| 西西裸体人体做爰大胆久久久| 欧美 日韩 国产一区二区在线视频| 欧美日韩在线视频观看| 国内久久视频| 一区二区国产日产| 久久精品亚洲乱码伦伦中文| 亚洲一区免费| 欧美h视频在线| 国产农村妇女毛片精品久久莱园子 | 亚洲一级高清| 另类激情亚洲| 国产麻豆成人精品| 亚洲青色在线| 久久经典综合| 亚洲欧美国产不卡| 欧美激情第9页| 国产一区二区三区成人欧美日韩在线观看 | 亚洲欧洲精品一区二区精品久久久 | 老司机午夜精品视频| 国产精品久久久久久久9999 | 欧美影院在线| 亚洲素人在线| 欧美mv日韩mv亚洲| 国产性猛交xxxx免费看久久| 亚洲另类自拍| 91久久精品国产91久久| 久久精品一区四区| 国产精品国产亚洲精品看不卡15| 亚洲黄色在线观看| 欧美在线观看视频在线| 午夜精品短视频| 欧美日韩在线视频观看| 亚洲国产精品一区二区www在线| 亚洲欧美一区二区三区久久| 亚洲视频在线观看| 欧美激情久久久| 影音先锋亚洲电影| 欧美在线高清| 久久不射网站| 国产精品一二三视频| av成人免费在线| 中文一区二区在线观看| 欧美激情免费在线| 亚洲大片在线| 91久久久国产精品| 免费一级欧美片在线观看| 国语自产精品视频在线看一大j8| 亚洲永久精品大片| 亚洲综合视频在线| 欧美日韩国产成人高清视频| 亚洲国产小视频| 亚洲全黄一级网站| 麻豆成人av| 尤妮丝一区二区裸体视频| 久久国产日本精品| 久久精品三级| 国产一区亚洲一区| 午夜久久久久久| 午夜精品一区二区在线观看| 国产精品多人| 亚洲视频高清| 香蕉成人伊视频在线观看 | 亚洲区在线播放| 亚洲裸体俱乐部裸体舞表演av| 欧美成人午夜激情| 亚洲国产成人在线视频| 亚洲精品网址在线观看| 欧美精品成人91久久久久久久| 亚洲日本成人| 亚洲视频综合在线| 国产精品久久久久久亚洲调教| 亚洲先锋成人| 久久精品成人欧美大片古装| 黑丝一区二区三区| 亚洲高清久久网| 欧美gay视频| 亚洲免费观看在线视频| 亚洲一区二区在线免费观看视频 | 午夜精品美女自拍福到在线| 欧美一区在线看| 黄色国产精品| 亚洲人体大胆视频| 欧美日韩精品系列| 亚洲综合国产| 久久精品综合网| 在线观看91精品国产麻豆| 亚洲免费观看高清在线观看| 欧美日韩一级黄| 亚洲欧美中文字幕| 玖玖综合伊人| 亚洲最新色图| 欧美在线视频观看免费网站| 激情综合五月天| 一本一本久久| 国产精品一区在线观看你懂的| 欧美制服第一页| 欧美激情1区2区| 亚洲一区二区影院| 美女久久一区| 99国产一区| 久久嫩草精品久久久精品一| 亚洲三级电影全部在线观看高清| 亚洲一区制服诱惑| 国产欧美日韩亚洲精品| 亚洲激情在线观看| 国产精品激情| 亚洲激情视频| 国产精品久久久久久五月尺| 久久精品三级| 国产精品qvod| 亚洲高清免费视频| 国产精品高清一区二区三区| 久久精品视频免费观看| 欧美日在线观看| 久久精品成人| 国产精品啊啊啊| 亚洲国产婷婷综合在线精品| 欧美视频不卡中文| 欧美在现视频| 欧美三级午夜理伦三级中文幕| 欧美一区二区视频在线| 欧美日韩另类在线| 久久精品国产精品亚洲精品| 欧美日韩在线视频观看| 久久精品夜色噜噜亚洲a∨| 欧美图区在线视频| 最新国产拍偷乱拍精品| 国产精品一二三| 99在线|亚洲一区二区| 国产一区二区三区网站| 亚洲午夜一二三区视频| 影音先锋另类| 欧美影院一区| 亚洲精品中文字幕有码专区| 久久在线免费观看视频| 亚洲自拍偷拍网址| 欧美区视频在线观看| 久久精品国产第一区二区三区最新章节| 欧美日韩在线大尺度| 亚洲精品久久久久久下一站| 国产一区二区三区精品久久久| 在线亚洲电影| 亚洲国产精品传媒在线观看 | 日韩视频―中文字幕|