33-基于51单片机K型热电偶温度检测报警系统源程序、原理图、PCB、元件清单实物制作

功能介绍:采用51单片机作为主控CPU,采用MAX6675的K型热电偶采集温度,通过按键设置报警值,并且将测量温度和报警值显示到LCD1602屏幕上面,当温度大于设置值,蜂鸣器产生报警,并且数据可以通过HC-05模块上传手机APP,文末有资料分享:

33-基于51单片机K型热电偶温度检测报警系统(程序+原理图+PCB+元件清单全套资料)

 

 下面是程序部分展示,有中文注释,新手容易看懂

void Uart_Init(void)		//9600bps@11.0592MHz
{
	SCON = 0x50;		//8位数据,可变波特率
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
	TI=1;
	ES = 1;
	EA = 1;
}
void main(void)
{
	unsigned char cnt = 11;
	unsigned int t;
	uchar xdata n;
	int buf=25;
   lcdinit();
   writecom(0x40);
	beep=1;
	 for(n=0;n<64;n++)
   {
      writedata(rom[n]);
   }
	 	Uart_Init();
	while(1)
	{
		t=MAX6675_ReadReg();

  		Flag_connect=t&0x04;		 	//读出数据的D2位是热电偶掉线标志位,该位为1表示掉线,该位为0表示连接
  		Flag_connect=Flag_connect>>2; 	//MAX6675是否在线

		t = t<<1;					   	//读出来的数据的D3~D14是温度值
		t = t>>4;
		MAX6675_Temp = t/4;				//测得的温度单位是0.25,所以要乘以0.25(即除以4)才能得到以度为单位的温度值
		if(k1==0)                 //设置值+
		{
		buf++;if(buf>999) buf=999;
		}
		if(k2==0)                 //设置值-
		{
		buf--;if(buf<1) buf=1;
		}

		writecom(0x80);
		 writedata('T');
		 writedata('M');
		 writedata('P');
		 writedata('=');
  
	  writedata(table[MAX6675_Temp%1000/100]);//显示数值 百 十 个
	  writedata(table[MAX6675_Temp%100/10]);
	  writedata(table[MAX6675_Temp%10]);
	  writedata('C');

		 writecom(0xc0);
		writedata('S');
		 writedata('E');
		 writedata('T');
		 writedata('=');
		writedata(table[buf%1000/100]);//显示设置值
	  writedata(table[buf%100/10]);
	  writedata(table[buf%10]);	
		 writedata('C');
if(MAX6675_Temp>buf) beep=0;//大于预设值报警
else beep=1;

printf("TMP=%d C\r\n",MAX6675_Temp);	//蓝牙串口打印温度
DelayMs(200);
	}
}

 下面是原理图和PCB展示;

百度云盘资料分享链接 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值