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

完

相关推荐
我是海飞17 分钟前
杰理 JL703N SDK 实现 AI 自动化调试:自动进入下载模式、下载、重启与日志抓取
人工智能·单片机·自动化·音视频·杰理
Zwawa24 分钟前
PID 的三个参数之外:位置式、增量式和反馈控制
c语言·单片机·嵌入式
创界工坊工作室30 分钟前
29-基于单片机的万年历设计
stm32·单片机·嵌入式硬件·proteus
zhangzhangkeji1 小时前
stm32 HAL 库改写 江协科大的程序
stm32
木由里予1 小时前
NAND 这门生意
运维·服务器·网络·单片机
国科安芯1 小时前
在轨服务与空间机器人任务中跨飞行器CANFD互连的共模与单粒子问题综述
嵌入式硬件·机器人·canfd·低轨卫星·商业航天·抗辐射
沐欣工作室_lvyiyi2 小时前
基于STM32的社区养老控制系统设计(论文+源码)
stm32·单片机·嵌入式硬件·社区养老控制系统·保定理工学院·华德学院·淮南师范学院
chengpei1472 小时前
硬改斐讯K2路由器32M Flash编译适配immortalwrt固件
嵌入式硬件·智能路由器
snow@li2 小时前
单片机:全景梳理核心原理与体系深度分析
单片机·嵌入式硬件
创界工坊工作室2 小时前
26-基于51单片机的智能热水器控制系统设计
stm32·单片机·嵌入式硬件·毕业设计·51单片机·proteus