这是我只简单制作的温度报警器,供大家进行基础学习,请大家支持
单片机源程序如下:
#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)
|