资源描述:
《MLX90614红外测温代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.通过本实验掌握MLX90614的原理。2.通过实验掌握数码管基本原理3.通过实验掌握矩阵键盘的使用4.通过实验掌握1602的使用二.实验内容通过MLX90614非接触式测得物体温度三.实验器材1.主控屏+5V电源2.DCP-PRJ09红外测温仪四.实验原理图五.实验步骤1.接上电源2.运行KeiluVision软件,新建一个工程,新建一个工程文件。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功4.用编程器将生成的HEX文件烧写到单片机中,或用STC单片机专用的串口烧写软件,通过M
2、AX232串口烧写到单片机中(只能用于STC单片机)。或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。5.程序下完后可以看到液晶屏有温度显示,用手掌覆盖红外传感器上方2cm处,看到此时液晶屏温度即为手掌的表面温度。6.按下1键可以看到数码管显示,用手掌覆盖红外传感器上方2cm处,看到此时数码管温度即为手掌的表面温度。此时液晶屏温度保持不变。7.按下除1键其他键,此时液晶屏又重新显示温度。实验代码如下://----------------------
3、------//说明:显示分为2部分:数码管显示,液晶屏显示//按1键数码管显示,此时液晶屏保持静止//复位时或按除1键外其他键时,液晶屏显示,数码管熄灭//-------------------------------------------------------------------------#include#include#defineuintunsignedint#defineucharunsignedchar#defineNack_number10//*****
4、*********端口定义**************************************************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;//温度显
5、示第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;
6、sbitbit_in=flag1^0;uchartempH,tempL,err;voidCALTEMP(uintTEMP);voidReadKey(void);voidinitInt();voiddelay1(uintz);voidshow();ucharkey_num;ucharmah[5];/********数码管码值定义*******************************************************/ucharcodeLED01[]={//LED显示代码,0-9共阳不带小数点的0x
7、C0,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;//定时毫秒数//*
8、*************************LCD1602***********************************//向LCD写入命令或数据*****************************************************#defineLCD_COMMAND0//命令#defineLCD_DATA1/