标题:
温度检测TFT(ILI9328)波形显示单片机源码
[打印本页]
作者:
耳屎可以吃
时间:
2018-4-9 19:42
标题:
温度检测TFT(ILI9328)波形显示单片机源码
基于单片机的问的波形显示程序
0.png
(49.55 KB, 下载次数: 24)
下载附件
2018-4-9 23:51 上传
单片机源程序如下:
//==================================================================================================
// 工程功能:
// 工程等级:工程级/驱动级
// 工程硬件:STC12C5A60S2
// 工程软件:Keil C51 uVision4
// 工程作者:智心科技(ZhiXinKeJi)
// 工程创建:10-31
// 工程版次:1
// 工程修改:10-31
// 修改内容:
//==================================================================================================
//==============================包含的头文件========================================================
#include"STC12C5A60S2.H"
#include"TFT(ILI9328).H" // 包含外设头文件,TFT-液晶显示屏
#include"DS18B20.H" // 包含外设头文件,DS18B20-温度传感器
#include"DELAY.H" // 包含应用头文件,DELAY-延时
//==============================定义全局变量=======================================================
#define PI 3.1415 // 宏定义数学中π值
int Current_Temperature=0; // 当前温度
int Frist_Temperature=0;
unsigned int xdata Temperature_Record[200]=0;
unsigned char Count=0; // 温度采集次数
//==================================================================================================
// 实现功能:主函数
// 函数说明:
// 函数备注:
//==================================================================================================
void main(void)
{
unsigned char i;
// TIME_Cnfg(); // 配置 TIME-定时器
TFT_Init(); // 初始化 TFT-液晶显示屏
DS18B20_Init(); // 初始化 DS18B20-温度传感器
TFT_ShowArea(0,0,240,320,TFT_White); // 清屏操作
// 绘制坐标系统
TFT_DrawLine(39,40,39,300,TFT_Black); // 中间起点坐标(40,170)
// 数字显示温度
// 显示内容"温度:+XX.X℃"
TFT_ShowStrg_16x16(72,10,"温度:+XX.X℃",TFT_Black,TFT_White);
// DS18B20 第一次采集温度,后面波形以该第一次为基础点
DS18B20_Gets();
Frist_Temperature=DS18B20_INFO.DS18B20_Temp*10;
while(1)
{
// DS18B20 采集温度
DS18B20_Gets();
Current_Temperature=DS18B20_INFO.DS18B20_Temp*10;
// 数字显示温度
TFT_ShowChar_08x16(120,10,Current_Temperature/100%10+0x30,TFT_Black,TFT_White); // 显示十位
TFT_ShowChar_08x16(128,10,Current_Temperature/10 %10+0x30,TFT_Black,TFT_White); // 显示个位
TFT_ShowChar_08x16(144,10,Current_Temperature/1 %10+0x30,TFT_Black,TFT_White); // 显示分位
// 记录温度数据
Temperature_Record[Count]=Current_Temperature;
// 绘制波形
for(i=1;i<199;i++)
{
// 如果该点数据没有,则不执行以下
if(Temperature_Record[i]!=0)
{
// 高温 红色
if(Temperature_Record[i]>Frist_Temperature)
{
TFT_DrawLine(40+i-1,170+(Frist_Temperature-Temperature_Record[i-1])*2,
40+i ,170+(Frist_Temperature-Temperature_Record[i ])*2,
TFT_Red);
}
// 低温 绿色
else
{
TFT_DrawLine(40+i-1,170+(Frist_Temperature-Temperature_Record[i-1])*2,
40+i ,170+(Frist_Temperature-Temperature_Record[i ])*2,
TFT_Green);
}
}
}
DELAY_nMS(500);
// 清除波形
for(i=1;i<199;i++)
{
// 如果该点数据没有,则不执行以下
if(Temperature_Record[i]!=0)
{
TFT_DrawLine(40+i-1,170+(Frist_Temperature-Temperature_Record[i-1])*2,
40+i ,170+(Frist_Temperature-Temperature_Record[i ])*2,
TFT_White);
}
}
// 计数
Count++;
if(Count>199)
{
Count=199;
// 波形移动 ,相当于延迟
for(i=0;i<199;i++)
{
Temperature_Record[i]=Temperature_Record[i+1];
}
}
}
}
复制代码
所有资料51hei提供下载:
2016-09-25 温度波形显示.rar
(91.24 KB, 下载次数: 32)
2018-4-9 19:41 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
vkings
时间:
2024-12-24 15:07
下载学习一下,感谢分享
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1