教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 说明书 >

MLX90614红外测温仪实验指导书含源码

来源:网络收集 时间:2026-08-29
导读: 实验四十四 红外测温仪实验 一.实验目的 1.通过本实验掌握MLX90614的原理。 2.通过实验掌握数码管基本原理 3. 通过实验掌握矩阵键盘的使用 4.通过实验掌握1602的使用 二.实验内容 通过MLX90614非接触式测得物体温度 三.实验器材 1.主控屏+5V电源 2. DC

实验四十四 红外测温仪实验

一.实验目的

1.通过本实验掌握MLX90614的原理。 2.通过实验掌握数码管基本原理 3. 通过实验掌握矩阵键盘的使用 4.通过实验掌握1602的使用 二.实验内容

通过MLX90614非接触式测得物体温度 三.实验器材 1.主控屏+5V电源 2. DCP-PRJ09 红外测温仪 四.实验原理图

五.实验步骤 1.接上电源

2.运行Keil uVision软件,新建一个工程,新建一个工程文件。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功

4.用编程器将生成的HEX文件烧写到单片机中,或用STC单片机专用的串口烧写软件,通过MAX232串口烧写到单片机中(只能用于STC单片机)。或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。 5. 程序下完后可以看到液晶屏有温度显示,用手掌覆盖红外传感器上方2cm处,看到此时液晶屏温度即为手掌的表面温度。

6.按下1键可以看到数码管显示,用手掌覆盖红外传感器上方2cm处,看到此时数码管温度即为手掌的表面温度。此时液晶屏温度保持不变。 7.按下除1键其他键,此时液晶屏又重新显示温度。 实验代码如下:

//------------------------------------------------------------------------- //说明:显示分为2部分:数码管显示,液晶屏显示 //按1键数码管显示,此时液晶屏保持静止

//复位时或按除1键外其他键时,液晶屏显示,数码管熄灭 //------------------------------------------------------------------------- #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char #define Nack_number 10

//**************端口定义************************************************** uchar flag;

//LCD控制线接口

sbit RS=P0^6; //RS端 sbit RW=P0^7;

//读写端

sbit LCDE=P3^5; //使能端

//mlx90614端口定义

sbit SCK=P3^7;

//时钟线 //数据线

sbit SDA=P3^6;

sbit DPY1 = P3^2; sbit DPY2 = P3^3; sbit DPY3 = P3^4;

//温度显示第1个数码管段选 //温度显示第2个数码管段选 //温度显示第3个数码管段选

sbit row1 = P0^3; //矩阵键盘第1列 sbit row2 = P0^4; //矩阵键盘第2列 sbit row3 = P0^5; //矩阵键盘第3列 sbit cow1 = P0^0; //矩阵键盘第1行 sbit cow2 = P0^1; //矩阵键盘第2行 sbit cow3 = P0^2; //矩阵键盘第3行 //************数据定义**************************************************** bdata uchar flag1; sbit bit_out=flag1^7; sbit bit_in=flag1^0; uchar tempH,tempL,err;

void CALTEMP(uint TEMP); void ReadKey(void); void initInt(); void delay1(uint z); void show();

//可位寻址数据

uchar key_num; uchar mah[5];

/********数码管码值定义*******************************************************/ uchar code LED01[]={ 0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90};

uchar code LED02[]={ 0x40,0x79,0x24,0x30, 0x19,0x12,0x02,0x78, 0x00,0x10};

/**********全局变量定义******************************************************/ bit b20ms,b100ms; //定时标志位 uchar c20ms,c100ms; //定时毫秒数

//************************** LCD1602 *********************************** //向LCD写入命令或数据***************************************************** #define LCD_COMMAND #define LCD_DATA

//命令

//LED显示代码,0-9 共阳 带小数点的

//LED显示代码,0-9 共阳 不带小数点的

1 // 数据

// 清屏 // 光标返回原点

#define LCD_CLEAR_SCREEN #define LCD_HOMING

0x01 0x02

//设置显示模式******* 0x08+ ********************************************* #define LCD_SHOW

0x04

//显示开

#define LCD_HIDE 0x00 //显示关

#define LCD_CURSOR 0x02 //显示光标 #define LCD_NO_CURSOR #define LCD_FLASH

0x00 0x01 0x00

//无光标 //光标闪动 //光标不闪动

#define LCD_NO_FLASH

//设置输入模式********** 0x04+ ******************************************** #define LCD_AC_UP

0x02

//光标右移 AC+ //默认 光标左移 AC- //画面可平移 //默认 画面不移动

#define LCD_AC_DOWN #define LCD_MOVE

0x00 0x01 0x00

#define LCD_NO_MOVE

//************************** mlx90614 *********************************** //command mode 命令模式 #define RamAccess

0x00

//对RAM操作 //对EEPRAM操作 //进入命令模式

#define EepomAccess 0x20 #define Mode

0x60

#define ExitMode 0x61 //退出命令模式

#define ReadFlag 0xf0 //读标志

#define EnterSleep 0xff //进入睡眠模式 //ram address

read only RAM地址(只读)

0x03

//周围温度

#define AbmientTempAddr

#define IR1Addr 0x04 #define IR2Addr 0x05

#define LineAbmientTempAddr 0x06 //环境温度 /*0x0000 0x4074 16500 0.01/单元

-40 125*/

#define LineObj1TempAddr 0x07

//目标温度,红外温度

/*0x27ad-0x7fff 0x3559 22610 0.02/单元 -70.01-382.19 0.01 452.2*/ #define LineObj2TempAddr

0x08

//eepom address EEPROM地址 #define TObjMaxAddr #define TObjMinAddr #define PWMCtrlAddr #define TaRangeAddr

0x00 0x01 0x02 0x03

//测量范围上限设定 //测量范围下限设定 //PWM设定 //环境温度设定 //频率修正系数 //配置寄存器 //器件地址设定

#define KeAddr 0x04 #define ConfigAddr #define SMbusAddr

0x05 0x0e

#define Reserverd1Addr 0x0f //保留 #define Reserverd2Addr

0x19

//保留

#define ID1Addr 0x1c //ID地址1 #define ID2Addr 0x1d //ID地址2 #define ID3Addr 0x1e

//ID地址3

#define ID4Addr 0x1f //ID地址4

//************函数声明*****************************************************

void start(); //MLX90614发起始位子程序 void stop(); //MLX90614发结束位子程序 uchar ReadByte(void);

//MLX90614接收字节子程序

void send_bit(void); //MLX90614发送位子程序

void SendByte( …… 此处隐藏:5683字,全部文档内容请下载后查看。喜欢就下载吧 ……

MLX90614红外测温仪实验指导书含源码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1482480.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)