這是我只簡單制作的溫度報警器,供大家進行基礎學習,請大家支持
uiui.png (63.57 KB, 下載次數: 36)
下載附件
2020-5-30 08:06 上傳
單片機源程序如下:
#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; //報警揚聲器
unsigned char m=0;//有m個50毫秒
void main()
{
UARTinit();//串口初始化
PS=1; //串口為高優先級
ET0=1;TH0=(65535-10000)/256; TL0=(65535-10000)%256;
TMOD=0x21;TR0=1;//這一行與上一行,用T0計時控制指示燈
GetData(1);//先讀一次溫度
while(1)
{
while(buftmp>50) //如果溫度高于上限紅燈報警
{
LEDgreen=1;//綠燈滅
if(m%2==0){LEDred=0;Speaker=1;} //紅燈閃爍
else {LEDred=1;Speaker=0;}
}
while(buftmp<20)//如果溫度低于下限黃燈報警
{
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");//主動上傳溫度
}
}
全部資料51hei下載地址:
一路超限報警.zip
(72.47 KB, 下載次數: 10)
2020-5-30 08:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|