当前位置: 首页 > news >正文

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

 

 

 

 

完 

 

 

 

相关文章:

  • 【数据结构】·励志大厂版(复习+刷题):二叉树
  • 新型“电力寄生虫“网络钓鱼攻击瞄准能源企业与知名品牌
  • 第11章 安全网络架构和组件(一)
  • 基于SpringBoot+PostgreSQL+ROS Java库机器人数据可视化管理系统
  • 数智读书笔记系列031《HIS内核设计之道——医院信息系统规划设计系统思维》书籍简介与读书笔记
  • 电池的寿命
  • 为什么从Word复制到PPT的格式总是乱掉?
  • 【网络原理】从零开始深入理解TCP的各项特性和机制.(三)
  • SQL 处理重复数据之技巧(Techniques for Handling Duplicate Data with SQL)
  • Kafka HA集群配置搭建与SpringBoot使用示例总结
  • 设计一个新能源汽车控制系统开发框架,并提供一个符合ISO 26262标准的模块化设计方案。
  • zynq7035的arm一秒钟最多可以支持触发多少次中断
  • Docker compose 部署微服务项目(从0-1出发纯享版无废话)
  • 汽车制造行业如何在数字化转型中抓住机遇?
  • IdeaVim 配置与使用指南
  • 算法效率的钥匙:从大O看复杂度计算 —— C语言数据结构第一讲
  • Linux红帽:RHCSA认证知识讲解(十 四)分区管理、交换分区,创建逻辑卷与调整逻辑卷的大小
  • 【网络原理】从零开始深入理解TCP的各项特性和机制.(二)
  • WPF常用技巧汇总 - Part 2
  • Java详解LeetCode 热题 100(01):LeetCode 1. 两数之和(Two Sum)详解
  • 胡塞武装称以色列所有机场均为其打击目标
  • 甘肃临夏州政协委员马全成涉嫌诈骗罪,被撤销政协委员资格
  • 特朗普考虑任命副幕僚长米勒任国安顾问,曾策划驱逐移民行动
  • “五一”假期余额不足两天,多地景点已约满、限流
  • 巴基斯坦宣布禁止印度船只入港
  • 三亚再回应游客骑摩托艇出海遇暴雨:俱乐部未配备足额向导人员,停业整改