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, 带蜂鸣效果

相关推荐
d111111111d12 分钟前
STM32外设学习--PWR电源控制
笔记·stm32·单片机·嵌入式硬件·学习
MounRiver_Studio19 分钟前
RISC-V IDE MRS2使用笔记(二): 编译后Memory分析
ide·笔记·单片机·嵌入式·risc-v
小柯博客1 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(三)
stm32·嵌入式硬件·开源·嵌入式·yocto·st·stm32mp2
傲世(C/C++,Linux)1 小时前
Linux系统编程——UDP广播
linux·单片机·udp
就是蠢啊1 小时前
51单片机——I2C-EEPROM 实验(一)
单片机·嵌入式硬件·51单片机
阿容1234562 小时前
stm32两轮平衡车-01
stm32·单片机·嵌入式硬件
up向上up2 小时前
基于STM32单片机智能红外遥控跟随小车设计
stm32·单片机·嵌入式硬件
达不溜的日记2 小时前
UDS诊断-31服务
服务器·stm32·单片机·网络协议·网络安全·信息与通信·信号处理
云山工作室2 小时前
基于单片机的 220v车载逆变电源的设计与制作(论文+图纸)
stm32·单片机·嵌入式硬件·毕业设计·毕设
小柯博客2 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(四)
stm32·单片机·嵌入式硬件·开源·嵌入式·yocto·stm32mp2