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

一、系统方案
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仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/229516.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

函数式接口

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 咱们今天讨论下函数式接…

MySQL -DDL 及表类型

DDL 创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification:[DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 1.CHARACTER SET&#xff1a…

WPF中DataGrid解析

效果如图&#xff1a; 代码如下&#xff1a; <DataGrid Grid.Row"1" x:Name"dataGrid" ItemsSource"{Binding DataList}" AutoGenerateColumns"False"SelectedItem"{Binding SelectedItem,UpdateSourceTriggerPropertyChange…

Lesson 08 string类 (上)

C&#xff1a;渴望力量吗&#xff0c;少年&#xff1f; 文章目录 一、STL1. 概念2. STL的六大组件3. STL的重要性 二、string类的介绍与使用1. 介绍2. 使用&#xff08;1&#xff09;string类对象的常见构造&#xff08;2&#xff09;string类对象的容量操作&#xff08;3&…

【vue脚手架配置代理+github用户搜索案例+vue项目中常用的发送Ajax请求的库+slot插槽】

vue脚手架配置代理github用户搜索案例vue项目中常用的发送Ajax请求的库slot插槽 1 vue脚手架配置代理2 github用户搜索案例2.1 静态列表2.2 列表展示2.3 完善案例 3 vue项目中常用的发送Ajax请求的库3.1 xhr3.2 jQuery3.3 axios3.4 fetch3.5 vue-resource 4 slot 插槽4.1 效果4…

缺省参数的声明和定义

首先&#xff0c;函数缺省参数不能同时出现在声明和定义中&#xff0c;如出现则报错&#xff1a; 声明和定义中同时出现缺省参数 ctrlb&#xff0c;编译报错&#xff0c;提示 “test"&#xff1a;重定义默认参数&#xff1a;参数1 编译报错 当函数的声明和定义中都出现…

Nodejs+Vue校园餐厅外卖订餐点餐系统 PHP高校食堂 微信小程序_0u4hl 多商家

对于校园订餐小程序将是又一个传统管理到智能化信息管理的改革&#xff0c;对于传统的校园订餐管理&#xff0c;所包括的信息内容比较多&#xff0c;对于用户想要对这些数据进行管理维护需要花费很大的时间信息&#xff0c;而且对于数据的存储比较麻烦&#xff0c;想要查找某一…

小程序开发中SSL证书的重要作用

随着互联网技术的发展&#xff0c;越来越多的企业和个人开始开发自己的小程序来满足各种需求。然而&#xff0c;在这个过程中&#xff0c;安全性和稳定性成为了开发者必须关注的重点之一。为了保障用户的隐私安全和体验效果&#xff0c;越来越多的小程序开发者开始采用SSL证书进…

SpringBoot : ch12 多模块配置YAML文件

前言 当您使用SpringBoot框架进行项目开发时&#xff0c;通常需要配置一些参数和属性。在实际开发中&#xff0c;可能需要将这些配置参数分成多个不同的YAML文件&#xff0c;并将它们组织到不同的模块中。这样可以方便管理和维护配置文件&#xff0c;并且可以避免配置文件的冲…

界限与不动产测绘乙级申请条件

整理一期关于测绘资质界限与不动产测绘乙级资质的申请要求 测绘资质是由测绘资质主管部门自然资源部制定的 想要了解标准、正规的申请条件&#xff0c;可以到当地省份的政务网搜索测绘资质办理相关标准&#xff08;例如下图&#xff09; 1、通用标准 http://gi.mnr.gov.cn/20…

C#-认识串口通信并使用串口助手

串口通讯(Serial Communication)&#xff0c;是指外设和计算机间&#xff0c;通过数据信号线、地线等&#xff0c;按位进行传输数据的一种双向通讯方式。 串口是一种接口标准&#xff0c;它规定了接口的电气标准&#xff0c;没有规定接口插件电缆以及使用的通信协议&#xff0…

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用【鸿蒙专栏-05】

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用 HarmonyOS,作为一款全场景分布式操作系统,为了推动更广泛的应用开发,采用了一种先进而灵活的编程语言——ArkTS。ArkTS是在TypeScript(TS)的基础上发展而来,为HarmonyOS提供了丰富的应用开发工具,使开…