在Codewarrior操作环境中基于MC9S12XEP100的MLX90614体温检测TFT彩屏显示
时间: 2023-06-12 08:02:45 浏览: 53
以下是一个基于MC9S12XEP100的MLX90614体温检测TFT彩屏显示的示例代码,使用Codewarrior操作环境:
```c
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include "LCD.h" /* TFT LCD驱动程序头文件 */
#include "I2C.h" /* I2C总线驱动程序头文件 */
#include "MLX90614.h" /* MLX90614红外温度传感器驱动程序头文件 */
#define BAUD_RATE 9600 /* 串口波特率 */
void init(void);
void main(void) {
unsigned char buf[4];
int16_t temp;
unsigned char buf_temp[10];
init(); /* 初始化各个模块 */
while(1) {
if(MLX90614_Read_Temp(buf) == MLX90614_OK) { /* 读取红外温度传感器数据 */
temp = MLX90614_Calculate_Temp(buf); /* 计算温度值 */
sprintf(buf_temp, "Temp: %d.%d C", temp/10, temp%10); /* 将温度值转换为字符串 */
LCD_Clear(WHITE); /* 清空屏幕 */
LCD_DrawString_EN(0, 0, buf_temp, BLUE, WHITE); /* 在屏幕上显示温度值 */
LCD_DrawLine(0, 20, 320, 20, BLACK); /* 在屏幕上画一条横线 */
}
}
}
/* 初始化各个模块 */
void init(void) {
/* 初始化时钟 */
CLKSEL = 0x80;
PLLCTL = 0x10;
SYNR = 0x02;
REFDV = 0x00;
while(!(CRGFLG & 0x08));
CLKSEL = 0x00;
/* 初始化串口 */
SCI0BDH = 0x00;
SCI0BDL = (unsigned char)(250000/(BAUD_RATE*16));
SCI0CR1 = 0x00;
SCI0CR2 = 0x0C;
/* 初始化I2C总线 */
I2C_Init();
/* 初始化TFT LCD */
LCD_Init();
LCD_Clear(WHITE);
LCD_Set_Window(0, 0, 319, 239);
LCD_Set_Rotation(1);
/* 初始化MLX90614红外温度传感器 */
MLX90614_Init();
}
```
需要注意的是,此代码中使用了LCD、I2C和MLX90614三个外部驱动程序,需要根据实际情况进行修改。此外,还需要连接MC9S12XEP100开发板和TFT彩屏,并将MLX90614红外温度传感器连接到MC9S12XEP100开发板的I2C总线上。