03 基于 STM32 的温度控制系统

前言

Protues、KeilC

设计内容:使用STM32设计一个空调温度的显示控制系统

设计要求:

1.温度显示范围为16-30摄氏度

2.按键K1实现显示温度加1,按键K2实现显示温度减1,低于16°或高于30°,显示数值不变

3.正常按键蜂鸣器响一次,超出阈值蜂鸣器报警两下

示例代码

复制代码
#include "utils.h"

u8 emptyLedCols[8] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};

/**
 * main related
 */
long counter = 1;
long number = 17;
int isOutOfRangeBeepTouched = 0;
int outOfRangeCounter = 0;

/**
 * reset all
 */
void resetAll();


void main() {

    u8 keyPressed;

    resetAll();

    while (1) {

        lightTubeByInt(number);

        keyPressed = independentKeyboardScan(0);
        if(keyPressed == KEY1_PRESS) {
			number ++;
			BEEP = !BEEP;
			isOutOfRangeBeepTouched = 0;
			outOfRangeCounter = counter;
        } else if(keyPressed == KEY2_PRESS) {
            number --;
			BEEP = !BEEP;
			isOutOfRangeBeepTouched = 0;
			outOfRangeCounter = counter;
        }

		if(number < 16 || number > 30) {
			if(!isOutOfRangeBeepTouched) {
				if(counter - outOfRangeCounter > 50) {
					BEEP = !BEEP;
					isOutOfRangeBeepTouched = 1;
				}
			}
		}

		delay_ms(5);
        counter++;

    }
}

void resetAll() {
    u8 i;
    printLedWord(8, emptyLedCols);
    for(i=0; i<8; i++) {
        ledCtl(i, 0);
    }
}

实际效果

初始化状态

按一下 KEY_1, 带蜂鸣效果

按两下 KEY_2, 带蜂鸣效果

相关推荐
物联网嵌入式小冉学长13 小时前
10.C S编程错误分析
c语言·stm32·单片机·算法·嵌入式
蝈蝈(GuoGuo)1 天前
STM32103CBT6显示ST7789通过SPI方式显示柬埔寨文
stm32·单片机·嵌入式硬件
Ronin-Lotus1 天前
嵌入式硬件篇---常见电平标准
嵌入式硬件·fpga开发·常见的电平标准
大鼻噶喳1 天前
使用VSCode开发MCU,FreeRTOS进Hard_Fault调试
vscode·单片机
我命由我123451 天前
嵌入式 STM32 开发问题:烧录 STM32CubeMX 创建的 Keil 程序没有反应
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·嵌入式
麦德泽特1 天前
超高速总线CDCTL01A 芯片在机器人领域的应用解析
人工智能·嵌入式硬件·物联网·机器人·信息与通信
vicorv252 天前
电流传感器在汽车中的应用:从BMS电池管理到电机控制的工程解析
stm32·单片机·嵌入式硬件
物联网嵌入式小冉学长2 天前
3.TCP回响服务器实现及源码分析上
stm32·网络协议·tcp/ip·嵌入式
JINX的诅咒2 天前
FPGA多通道卷积加速器:从零构建手写识别的硬件引擎
嵌入式硬件·fpga开发·cnn·开源
几道之旅2 天前
零基础RT-thread第二节:按键控制
c语言·stm32