基于单片机红外测温(mlx90614)-原理图-PCB设计+源程序

本文介绍了使用52单片机为主控,配合mlx90614传感器实现的温控系统,包括硬件设计原理图、液晶显示、按键设置温度上下限、报警与风扇控制功能。同时,利用Proteus软件进行仿真测试,确保设计的可行性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、系统方案
1、本设计采用52单片机作为主控器。
2、mlx90614采集温度,液晶显示温度值。
3、按键设置温度上下限。
4、实际测量温度小于下限或者大于上限,蜂鸣器报警,大于上限,风扇启动,低于下限,风扇停止。
在这里插入图片描述

二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
void LCD_init(void)
{
LCD_write_com(0x38);
delay_ms(5);
LCD_write_com(0x38);
delay_ms(5);
LCD_write_com(0x38);
delay_ms(5);
LCD_write_com(0x39);
LCD_write_com(0x08); /???/
LCD_write_com(0x01); /???/
LCD_write_com(0x06); /???/
delay_ms(5);
LCD_write_com(0x0c); /???/
LCD_write_com(0x14);
LCD_write_com(12);
}

2、液晶显示程序

//
/
写一字节指令 /
/
/
void LCD_write_com(unsigned char com)
{
RW =0;
RS_CLR;
EN_SET;
P0 = com;
delay_us(5);
EN_CLR;
}
//
/
写一字节数据 /
/
/
void LCD_write_Data(unsigned char Data)
{
RW =0;
RS_SET;
EN_SET;
P0 = Data;
delay_us(5);
EN_CLR;
}
//
/
清屏 /
/
/
void LCD_clear(void)
{
LCD_write_com(0x01);
delay_ms(5);
}

//
/
在指定位置写字符 /
/
/
void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data)
{
if (y == 0)
{
LCD_write_com(0x80 + x);
}
else
{
LCD_write_com(0xC0 + x);
}
LCD_write_Data( Data);
}
3、按键程序
void key_det(void)
{
uint T;
if(Key_1 == 0)
{
delay_ms(50);
if(Key_1 == 0)
{
while(Key_10);
beep();
status++;
if(status>2)
{
status = 0;
}
}
}
if(Key_2 == 0)
{
delay_ms(50);
if(Key_2 == 0)
{
beep();
while(Key_2
0);
if(status==2)
{
Max_Tem+=100;
}

        if(status==1)
        {
            if(Min_Tem<Max_Tem)
            {
                Min_Tem+=100;
            }

        }

    }
}

if(Key_3 == 0)
{
    delay_ms(50);
    if(Key_3 == 0)
    {
	    beep();
	    while(Key_3==0);


        if(status==1)
        {
            if(Min_Tem>0)
                Min_Tem-=100;
        }

        if(status==2)
        {
            if(Max_Tem>Min_Tem)
                Max_Tem-=100;
        }
    }
}
T=Tem*2;
T=T-27315;


   if(T>Max_Tem)
   {
	  Bp=0;
		 fenshan=0;
   }
   else if(T<Min_Tem)
   {
      Bp=0;
		 fenshan=1;
   }	
   else
   {
      Bp=1;
   }

}

4、核心算法程序
//主函数******************************
void main()
{
uint i,count;
//函数部分
SCL=1;
SDA=1;
nop();
nop();
nop();
nop();
SCL=0;
delay(1000);
SCL=1;

dis1[11] =0xdf;

LCD_init();                  //lcd初始化
start_flag = 0;
for(i=0;i<16;i++)
{
		LCD_write_char(i,0,dis0[i]);
		LCD_write_char(i,1,' ');
}
delay_ms(2000);
while(1)
{
    count++;
	if(count<50)
	{
      Tem=memread();
	  key_det();
      display(Tem);
      for(i=0;i<16;i++)
      {
		LCD_write_char(i,0,dis1[i]);
		LCD_write_char(i,1,dis2[i]);
      }
      delay(20);
	  count=0;
	}
}

}
四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

在这里插入图片描述

基于51单片机MLX90614红外测温仪实验指导书(含源代码) MLX90614 MLX90615 红外测温 51单片机 SMBus 这是经过本人实验测试得到的成果,再次将之分享给大家,希望对搞温度测量及控制的人有所帮助!时钟线 数据线 温度显示第个数码管段选 温度显示第个数咼管段迮 温度显示第个数码管段选 矩阵键盘第列 矩阵键盘第列 矩阵键盘第列 矩阵键盘第行 矩阵键盘第行 矩阵键盘第行 数据定义 可位寻址数据 数码管码值定义 显示代码,共阳不带小数点的 显示代码,共阳带小数点的 仝局变量定义 定时标志位 定时毫秒数 向写入命令或数据 数据 清屏 光标返回原点 设置显示模式 显示开 显示关 显示光标 无光标 光标闪动 光标不闪动 设置输入模式 光标石移 默认光标左移 田面可半移 默认画面不移动 命令模式 对操作 操作 进入命令模式 退出命令模式 读标志 进入睡眠馍式 地址(只读) 周围温度 环境温度 单元 目标温度红外温度 单元 地址 测量范围上限设定 测量范围下限设定 设定 环境温度设定 频率修正系数 配置寄存器 器件地址设定 保留 保留 地址 地址 地址 地址 函数声明 发起始位子程序 发结東位子程序 接收字节子程序 发送位子程序 接收字节子程序 接收位子程序 延时程序 读温度数据 初始化子程序 判断忙子程序 写命令子程序 写数据子程序 显示子程序 字符串显示程序 主函数 温度变量 初始化 每 扫描一次键盘 按下键时,进行数码管显示 液品屏显示 读取温度 清屏 显示字符串 且换行 显示温度 显示摄氏度 延吋再读取温度显 字符串显示稈序 字符串显示程序 直到字符肀结束 转成码 指向下一个字符 输入转换并显示用于 温度为止 温度整数 温度小数 温度超过度 显示温度百位 显小温度十位 显示温度个位 温度超过度 显小温度十位 显示温度个位 温度不超过度 显示温度个位 显示小数点 温度小数点后第位数不等于 显示温度小数点后第位数 显示温度小数点后第位数 温度小数点斤第位数等于 显示温度小数点后第位数 显示温度小数点后第位数 温度为负
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bbxyliyang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值