1、温度测试程序在1602屏显示项目上能正确显示检测的温度值;
2、将上述程序的temp.c和temp.h文件加入到TFT屏显示项目中,
keil4编译无警告错误,温度值只能显示0.06;
3、温度接口未变动,TFT屏能正确显示字符、字符串和汉字;
void DisTemp(int temp)
{
un8 datas[] = {0, 0, 0, 0, 0}; //定义数组
float tp;
if(temp< 0) //当温度值为负数
{
DispChar1016('-',50,120,YELLOW, BLUE);
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
else
{
DispChar1016('+',50,120,YELLOW, BLUE);
tp=temp;
temp=tp*0.0625*100+0.5;
}
datas[0]=temp/10000%10 +'0';
datas[1]=temp/1000%10 +'0';
datas[2]=temp/100%10 +'0';
datas[3]=temp/10%10 +'0';
datas[4]=temp%10 +'0';
DispChar1016(datas[0], 100, 120, YELLOW, BLUE);
DispChar1016(datas[1], 110, 120, YELLOW, BLUE);
DispChar1016(datas[2], 120, 120, YELLOW, BLUE);
DispChar1016(datas[3], 130, 120, YELLOW, BLUE);
DispChar1016(datas[4], 140, 120, YELLOW, BLUE);
}
void main ()
{
TFT_Init(); //初始化TFT
ClearScreen(BLACK); //清屏黑色
DS18B20Init();
while(1)
{DisTemp(DS18B20ReadTemp());}
}
int DS18B20ReadTemp()
{
int temp=0;
un8 tmh,tml;
DS18B20ChangTemp(); //先写入转换命令
DS18B20ReadTempCom(); //然后等待转换完后发送读取温度命令
tml=DS18B20ReadByte(); //读取温度值共16位,先读低字节
tmh=DS18B20ReadByte(); //再读高字节
temp=tmh;
temp<<=8;
temp|=tml;
return temp;
}
main.c包含了temp.h、tff.h、gui.h三个文件。DispChar1016()点阵是8*16,Ascii[96][16]
TFT屏能正确显示8*16字符、字符串和16*16汉字
求解单片机控制TFT屏,无法显示温度数据的问题
答案:2 悬赏:10
解决时间 2021-02-01 16:01
- 提问者网友:幽瑟玉琼情殇
- 2021-02-01 10:21
最佳答案
- 二级知识专家网友:請叫我丶偏執狂
- 2021-02-01 11:42
温度值显示0.06;一直不变吗?
这个DS18B20ReadTemp());函数检查过没?正确吗?
这个DS18B20ReadTemp());函数检查过没?正确吗?
全部回答
- 1楼网友:一个很哇塞的汉子
- 2021-02-01 13:19
搜一下:求解单片机控制TFT屏,无法显示温度数据的问题
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |