40、基于51单片机mlx90614(GY-906)非接触式红外测温上下限声光报警系统设计(原理图+程序+开题报告+参考论文)

一、设计简介:

本设计是基于51单片机mlx90614(GY-906)非接触式红外测温上下限声光报警系统设计,主要实现以下功能:

1.本设计基于单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。


2.设计自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。


3.可以通过mlx90614红外测温模块实时测当前的温度值。


4.通过1602液晶显示当前的温度值,还显示设置的上限和下限温度值。


5.可以通过按键设置温度的上限和下限值。


6.检测到当前的温度值超过设置的上限值则蜂鸣器报警。
 

主要硬件组成:

51单片机+LCD1602+mlx90614红外测温模块+按键+蜂鸣器

二、原理图 

三、程序源码  

部分代码: 

 
    
    SectorErase(0x2000);
    byte_write(0x2000, y1);
    byte_write(0x2001, y2);
    byte_write(0x2002, y3);
    byte_write(0x2003, y4);
    
    byte_write(0x2058, a_a);        
}
 
/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
    uchar y1,y2,y3,y4;
    
    y1 = byte_read(0x2000);
    y2 = byte_read(0x2001);
    y3 = byte_read(0x2002);
    y4 = byte_read(0x2003);
  
    
    a_a    = byte_read(0x2058);
    
    Max_Tem=y1*256+y2;
    Min_Tem=y3*256+y4;
    
}
 
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
    read_eeprom();        //先读
    if(a_a != 1||Key_2==0)        //新的单片机初始单片机内问eeprom
    {
        Max_Tem=3700;
        Min_Tem=1000;
        a_a = 1;
        write_eeprom();       //保存数据
    }    
}
 
//************************************
void start_bit(void)
{
    SDA=1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL=1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SDA=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL=0;
      _nop_();_nop_();_nop_();_nop_();_nop_();
}
//------------------------------
void stop_bit(void)
{
    SCL=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SDA=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL=1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SDA=1;
}
//---------发送一个字节---------
void tx_byte(uchar dat_byte)
{
    char i,n,dat;
    n=Nack_counter;
TX_again:
    dat=dat_byte;
    for(i=0; i<8; i++)
    {
        if(dat&0x80)
            bit_out=1;
        else
            bit_out=0;
        send_bit();
        dat=dat<<1;
    }
    receive_bit();
    if(bit_in==1)
    {
        stop_bit();
        if(n!=0)
        {
            n--;
            goto Repeat;
        }
        else
            goto exit;
    }
    else
        goto exit;
Repeat:
    start_bit();
    goto TX_again;
exit:
    ;
}
//-----------发送一个位---------
void send_bit(void)
{
    if(bit_out==0)
        SDA=0;
    else
        SDA=1;
    _nop_();
    SCL=1;
    _nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();
    SCL=0;
    _nop_();_nop_();_nop_();_nop_()

四、资源获取

本项目包含的所有文件都可以点击下面的名片,发送 “ 40、基于51单片机mlx90614(GY-906)非接触式红外测温上下限声光报警系统设计 ” 获取!
项目纯手打,不是免费的哦~
希望可以帮到你哈!

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值