基本信息
源码名称:MLX90614测温在1602显示
源码大小:2.75M
文件格式:.rar
开发语言:C/C++
更新时间:2018-04-02
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#include "sys.h" #include "LCD.h" #include "stdio.h" #include "intrins.h" #include "string.h" #include "SMBus_CM.h" //Include SMBus_CM.h (Contain Start, Stop, Send, Receive etc.) #include "SMBus_OP.h" //Include SMBus_OP.h (Contain Read data from MLX90614 and Write data into MLX90614) #include "CalTem.h" //Include CalTem.h(For calculating Temperature based on Hex data) #include "Delay.h" bit busy; sbit BEEP=P2^6; // LCD_DB P0 RS=P1^0; RW=P1^1; LCDE=P1^2; sbit SDA = P1^3; SCL = P1^4; void main() { unsigned char idata slaveaddress,i; unsigned int idata DATA; unsigned char idata mahm[6]; float idata temprater; unsigned char idata disnow[6]; _SCL_IO _SDA_OUTPUT SCL=0; Delay(1200); //SMBus request,Switch PWM mode to SMBus mode(at least 2ms) SCL=1; LCD_init(); LCD_ShowString(0,0," Hello World"); //开机画面 LDelay(100); LCD_ShowString(0,0,"Temp:EXT INT"); BEEP=0; while(1) { // 读目标温度 slaveaddress = MEM_READ(0x00,0x2E); temprater = 0 ; for(i=0;i<10;i ) { DATA=MEM_READ(slaveaddress,0x07); //Read Object Temperature from MLX90614 RAM 07h temprater = temprater CALTEMP(DATA); //Calculate the Temperature based on Hex code } temprater = temprater / 10; while(busy); for(i=0;i<6;i ) mahm[i] = 0x20; Float_To_Str(temprater,mahm,2); for(i=0;i<5;i ) disnow[i]=mahm[i]; LCD_ShowString(4,1,disnow); if(temprater>37) BEEP=1; else BEEP=0; // 读环境温度 temprater = 0 ; for(i=0;i<10;i ) { DATA=MEM_READ(slaveaddress,0x06); //Read Object Temperature from MLX90614 RAM 07h temprater = temprater CALTEMP(DATA); //Calculate the Temperature based on Hex code } temprater = temprater / 10; while(busy); for(i=0;i<6;i ) mahm[i] = 0x20; Float_To_Str(temprater,mahm,2); for(i=0;i<5;i ) disnow[i]=mahm[i]; LCD_ShowString(11,1,disnow); LDelay(10); //SMBus request,Switch PWM mode to SMBus mode(at least 2ms) } }