以蓝桥杯CT117E嵌入式竞赛开发板为核心,使用DS18B20温度传感器设计一个数字式温度计。测量一路温度信号并用TFT- LCD屏显示;测温范围-55-125摄氏度,精度0.1摄氏度。 (1)液晶屏的第一行显示“数字式温度计”,第二行显示温度值,第三行显示B20200403122。 (2)当前温度高于30摄氏度时,蜂鸣器报警3秒
时间: 2024-03-26 09:38:38 浏览: 10
好的,根据您的要求,下面是一个简单的程序示例,实现了数字式温度计的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ds18b20.h" // DS18B20温度传感器库
#include "lcd.h" // TFT-LCD屏幕库
#include "beep.h" // 蜂鸣器库
#define BEEP_PIN 1 // 蜂鸣器连接的引脚
#define LCD_CS_PIN 2 // TFT-LCD屏幕片选引脚
#define LCD_DC_PIN 3 // TFT-LCD屏幕数据/命令选择引脚
#define LCD_RST_PIN 4 // TFT-LCD屏幕复位引脚
void setup() {
ds18b20_init(); // 初始化DS18B20温度传感器
lcd_init(LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN); // 初始化TFT-LCD屏幕
beep_init(BEEP_PIN); // 初始化蜂鸣器
lcd_clear(BLACK); // 清屏
lcd_show_string(0, 0, "数字式温度计", WHITE); // 第一行显示标题
lcd_show_string(0, 24, "0.0", WHITE); // 第二行显示温度值,初始值为0.0
lcd_show_string(0, 48, "B20200403122", WHITE); // 第三行显示姓名和学号
}
void loop() {
float temp = ds18b20_get_temp(); // 获取DS18B20温度传感器的温度值
char temp_str[10]; // 定义一个字符串缓冲区,用于将温度值转换为字符串
sprintf(temp_str, "%.1f", temp); // 将温度值转换为字符串,保留1位小数
lcd_show_string(0, 24, temp_str, WHITE); // 在第二行显示温度值
if (temp > 30.0) { // 当温度高于30摄氏度时,触发蜂鸣器报警
beep_on(); // 打开蜂鸣器
delay_ms(3000); // 等待3秒
beep_off(); // 关闭蜂鸣器
}
}
int main() {
setup(); // 初始化
while (1) {
loop(); // 循环执行
}
return 0;
}
```
需要注意的是,这只是一个示例程序,您需要根据实际的硬件连接和库函数使用情况进行适当修改。同时,建议您参考开发板和相关库函数的文档,以便更好地理解和掌握程序的实现过程。