MLX90614红外测温代码选读Word文档下载推荐.docx

上传人:b****1 文档编号:13174389 上传时间:2022-10-07 格式:DOCX 页数:18 大小:18.19KB
下载 相关 举报
MLX90614红外测温代码选读Word文档下载推荐.docx_第1页
第1页 / 共18页
MLX90614红外测温代码选读Word文档下载推荐.docx_第2页
第2页 / 共18页
MLX90614红外测温代码选读Word文档下载推荐.docx_第3页
第3页 / 共18页
MLX90614红外测温代码选读Word文档下载推荐.docx_第4页
第4页 / 共18页
MLX90614红外测温代码选读Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

MLX90614红外测温代码选读Word文档下载推荐.docx

《MLX90614红外测温代码选读Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MLX90614红外测温代码选读Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

MLX90614红外测温代码选读Word文档下载推荐.docx

此时液晶屏温度保持不变。

7.按下除1键其他键,此时液晶屏又重新显示温度。

实验代码如下:

// //说明:

显示分为2部分:

数码管显示,液晶屏显示

//按1键数码管显示,此时液晶屏保持静止

//复位时或按除1键外其他键时,液晶屏显示,数码管熄灭

//-------------------------------------------------------------------------

#include<

reg52.h>

#include<

intrins.h>

#defineuintunsignedint

#defineucharunsignedchar#defineNack_number10

//**************端口定义**************************************************ucharflag;

//LCD控制线接口

sbitRS=P0^6;

//RS端sbitRW=P0^7;

//读写端sbitLCDE=P3^5;

//使能端

//mlx90614端口定义sbitSCK=P3^7;

//时钟线sbitSDA=P3^6;

//数据线

sbitDPY1=P3^2;

//温度显示第1个数码管段选sbitDPY2=P3^3;

//温度显示第2个数码管段选sbitDPY3=P3^4;

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

sbitrow1=P0^3;

//矩阵键盘第1列sbitrow2=P0^4;

//矩阵键盘第2列sbitrow3=P0^5;

//矩阵键盘第3列sbitcow1=P0^0;

//矩阵键盘第1行sbitcow2=P0^1;

//矩阵键盘第2行

sbitcow3=P0^2;

//矩阵键盘第3行

//************数据定义****************************************************bdataucharflag1;

//可位寻址数据

sbitbit_out=flag1^7;

sbitbit_in=flag1^0;

uchartempH,tempL,err;

voidCALTEMP(uintTEMP);

voidReadKey(void);

voidinitInt();

voiddelay1(uintz);

voidshow();

ucharkey_num;

ucharmah[5];

/********数码管码值定义*******************************************************/ucharcodeLED01[]={ //LED显示代码,0-9共阳不带小数点的

0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

ucharcodeLED02[]={ //LED显示代码,0-9共阳带小数点的

0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

/**********全局变量定义******************************************************/bitb20ms,b100ms;

//定时标志位

ucharc20ms,c100ms;

//定时毫秒数

//**************************LCD1602***********************************

//向LCD写入命令或数据*****************************************************#defineLCD_COMMAND0//命令

#defineLCD_DATA1//数据

#defineLCD_CLEAR_SCREEN0x01//清屏#defineLCD_HOMING0x02//光标返回原点

//设置显示模式*******0x08+*********************************************#defineLCD_SHOW0x04//显示开一.实验目的

#defineLCD_HIDE0x00//显示关

#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//光标闪动#defineLCD_NO_FLASH0x00//光标不闪动

//设置输入模式**********0x04+********************************************#defineLCD_AC_UP0x02//光标右移AC+

#defineLCD_AC_DOWN0x00//默认光标左移AC-#defineLCD_MOVE0x01//画面可平移

#defineLCD_NO_MOVE0x00//默认画面不移动

//**************************mlx90614***********************************

//commandmode命令模式

#defineRamAccess0x00//对RAM操作#defineEepomAccess0x20//对EEPRAM操作#defineMode0x60//进入命令模式

#defineExitMode0x61//退出命令模式#defineReadFlag0xf0//读标志#defineEnterSleep0xff//进入睡眠模式

//ramaddressreadonlyRAM地址(只读)

#defineAbmientTempAddr0x03//周围温度#defineIR1Addr0x04

#defineIR2Addr0x05

#defineLineAbmientTempAddr0x06//环境温度

/*0x00000x4074165000.01/单元

-40 125*/

#defineLineObj1TempAddr0x07 //目标温度,红外温度

/*0x27ad-0x7fff 0x355922610 0.02/单元

-70.01-382.19 0.01 452.2*/

#defineLineObj2TempAddr0x08

//eepomaddressEEPROM地址

#defineTObjMaxAddr0x00//测量范围上限设定#defineTObjMinAddr0x01//测量范围下限设定#definePWMCtrlAddr0x02//PWM设定

#defineTaRangeAddr0x03//环境温度设定#defineKeAddr0x04//频率修正系数#defineConfigAddr0x05//配置寄存器#defineSMbusAddr0x0e//器件地址设定#defineReserverd1Addr0x0f//保留#defineReserverd2Addr0x19//保留#defineID1Addr0x1c//ID地址1

#defineID2Addr0x1d//ID地址2#defineID3Addr0x1e//ID地址3#defineID4Addr0x1f//ID地址4

//************函数声明*****************************************************voidstart();

//MLX90614发起始位子程序

voidstop();

//MLX90614发结束位子程序

ucharReadByte(void);

//MLX90614接收字节子程序

voidsend_bit(void);

//MLX90614发送位子程序

voidSendByte(ucharnumber);

voidread_bit(void);

//MLX90614接收位子程序

voiddelay(uintN);

//延时程序uintreadtemp(void);

//读温度数据

voidinit1602(void);

//LCD初始化子程序

voidbusy(void);

//LCD判断忙子程序

voidcmd_wrt(ucharcmd);

//LCD写命令子程序voiddat_wrt(uchardat);

//LCD写数据子程序voiddisplay(uintTem);

//显示子程序

voidPrint(uchar*str);

//字符串显示程序

//*************主函数*******************************************

voidmain()

{

uintTem;

//温度变量

initInt();

SCK=1;

SDA=1;

delay(4);

SCK=0;

delay(1000);

init1602();

//初始化LCDwhile

(1)

while(b100ms)//每100ms扫描一次键盘

b100ms=0;

ReadKey();

}

if(key_num==1)//按下1键时,进行数码管显示

Tem=readtemp();

CALTEMP(Tem);

show();

if(key_num!

=1)//液晶屏显示

//读取温度

cmd_wrt(0x01);

//清屏

Print("

Temperature:

"

);

//显示字符串Temperature:

且换行

display(Tem);

//显示温度

^C"

//显示摄氏度

delay(100000);

//延时再读取温度显示

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1