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