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

完