2024-09-01
售卖作品
00

目录

帮助、问询

读取效果:

在这里插入图片描述

标准的SPI时序:

在这里插入图片描述

寄存器:

在这里插入图片描述

部分代码:

float toFloat(signed int tempr)

{

float result = (float) (tempr >> 8); //Discard LSByte (Only holds fraction flag bits) char count = tempr & FRAC_FLAG; if (count) { count = count >> 6; result = result + (count * 0.25); } return (result);

}

void main(void)

{

char cnt = 0; unsigned char disp[16]; float temp1 = 0.0f; WDTCTL = WDTPW + WDTHOLD; /* 关闭看门狗 */ P1DIR = 0xFF; /* 设置方向 */ P1SEL = 0; /* 设置为普通I/O 口 */ P2DIR = 0xFF; /* 设置方向 */ P2SEL = 0; /* 设置为普通I/O 口 */ P2OUT = 0x00; P1OUT = 0x00; delay_ms(200); LCD_init(); TC72_Init(); while (1) { temp1 = toFloat(TC72_ReadTempr()); cnt = 0; disp[cnt++] = 0x30 + ((int) temp1 / 10); disp[cnt++] = 0x30 + ((int) temp1 % 10); disp[cnt++] = '.'; disp[cnt++] = 0x30 + ((int) (temp1 * 10) % 10); disp[cnt++] = 0x30 + ((int) (temp1 * 100) % 10); LCD_dsp_string(0, 1, disp); delay_ms(100); }

}

这段代码是一个温度转换程序。它将一个有符号的整数温度值转换为浮点数,并在 LCD 显示屏上显示出来。

首先,给出了一个名为 toFloat 的函数,用于将有符号整数 tempr 转换为浮点数。函数内部的具体操作如下:

将 tempr 右移 8 位,得到一个浮点数类型的 result,这里右移 8 位是为了舍弃低字节(仅包含小数部分标志位)。

从 tempr 中获取一个名为 count 的变量,用于表示低字节中的计数值。

如果 count 不为零,则将 count 右移 6 位,得到实际的计数值,并将其乘以 0.25,然后加到 result 上去。

返回转换后的浮点数 result。

然后,在 main 函数中,使用了以下步骤:

初始化一些变量和设置引脚的方向。

初始化 LCD 屏幕和 TC72 温度传感器。

进入一个无限循环,不断读取温度并显示在 LCD 屏幕上:

使用 TC72_ReadTempr 函数读取温度值,并调用 toFloat 函数将其转换为浮点数赋给 temp1。

将 temp1 的整数部分和小数部分拆分并转换为字符,存储在 disp 数组中。

调用 LCD_dsp_string 函数将 disp 数组中的内容显示在 LCD 屏幕上。

延时 100 毫秒。

通过这段代码,可以实现温度读取和显示功能。

源码:http://dt4.8tupian.net/2/28880a13b6880.pg3

帮助、问询

csharp
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!