標(biāo)題: 單片機(jī)溫度報(bào)警器簡(jiǎn)單學(xué)習(xí) 一路超限報(bào)警程序 [打印本頁]

作者: 8980    時(shí)間: 2020-5-30 07:57
標(biāo)題: 單片機(jī)溫度報(bào)警器簡(jiǎn)單學(xué)習(xí) 一路超限報(bào)警程序
這是我只簡(jiǎn)單制作的溫度報(bào)警器,供大家進(jìn)行基礎(chǔ)學(xué)習(xí),請(qǐng)大家支持


單片機(jī)源程序如下:
#include <reg52.h>
#include <intrins.h>
#include "Delay.h"
#include <ds18b20mul.h>
#include <uart.h>
sbit LEDred=P1^5;
sbit LEDgreen=P1^6;
sbit LEDyellow=P1^7;
sbit Speaker=P1^4;        //報(bào)警揚(yáng)聲器
unsigned char m=0;//有m個(gè)50毫秒
void main()
{
UARTinit();//串口初始化
PS=1;        //串口為高優(yōu)先級(jí)
ET0=1;TH0=(65535-10000)/256; TL0=(65535-10000)%256;
TMOD=0x21;TR0=1;//這一行與上一行,用T0計(jì)時(shí)控制指示燈
GetData(1);//先讀一次溫度
while(1)
{            
           while(buftmp>50)        //如果溫度高于上限紅燈報(bào)警
           {
             LEDgreen=1;//綠燈滅
                 if(m%2==0){LEDred=0;Speaker=1;} //紅燈閃爍
                 else {LEDred=1;Speaker=0;}
                }
           while(buftmp<20)//如果溫度低于下限黃燈報(bào)警
           {
              LEDgreen=1;//綠燈滅
                  if(m%2==0){LEDyellow=0;Speaker=1;}//黃燈閃爍
                  else {LEDyellow=1;Speaker=0;}
                }
            LEDgreen=0;//如果溫度正常亮綠燈              
}
}


void T0int() interrupt 1
{
  TH0=(65535-50000)/256; TL0=(65535-50000)%256;
  m++;
  if(m==60)        //每3秒讀一次溫度
  {
   m=0;
   GetData(1); //讀取溫度放入dispBuf中,1指P1.0引腳,2指P1.1引腳
   sendstring("*1:");
   sendstring(dispBuf);sendstring("\r\n");//主動(dòng)上傳溫度
  }
}

全部資料51hei下載地址:
一路超限報(bào)警.zip (72.47 KB, 下載次數(shù): 10)





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