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

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

 

 

 

 

完 

 

 

 

http://www.xdnf.cn/news/2447.html

相关文章:

  • vscode eslint与vue-official冲突,导致点击的时候鼠标不会变成手型,一直在加载,但是不转到相应方法。
  • 二进制补码:给补码求原码
  • vue3中ref在js中为什么需要.value才能获取/修改值?
  • 智能文档抽取技术发展前沿与应用
  • Linux Socket编程:从API到实战
  • 模型删除层后重建
  • Go语言入门:目录与链接
  • EKS环境下服务重启50X错误
  • 企业架构之旅(1):TOGAF 基础入门
  • 【Arxiv 2025】Single Image Iterative Subject-driven Generation and Editing
  • 小黑享受思考心流: 73. 矩阵置零
  • 《全球反空间能力》报告翻译——部分1
  • CISA、项目管理、信息系统项目等等电子书资料
  • ComfyUI for Windwos与 Stable Diffusion WebUI 模型共享修复
  • LeetCode热题100--438.找到字符串中所有字母异位词--中等
  • ISIS的由于L1产生的一系列问题
  • 实验:串口通信
  • 02.02、返回倒数第 k 个节点
  • 2 商户查询缓存
  • 设计一个食品种类表
  • 【算法】回溯法
  • 【锂电池剩余寿命预测】Transformer锂电池剩余寿命预测(Pytorch完整源码和数据)
  • 攻击 WordPress 目标的 5 种方法
  • AtCoder Beginner Contest 242 G - Range Pairing Query (莫队)
  • 解锁现代生活的健康密码
  • 杨洋出席青岛啤酒白啤品牌活动 共赴生活美学之旅
  • 2025年应用物理与电子电气国际会议(IACSEM 2025)
  • 【Code Sprint】第一章 从零开始
  • 【Java学习笔记】类与对象
  • 前端零基础入门到上班:【Day8】JavaScript 基础语法入门