该问题来自社区帖: https://bbs.csdn.net/topics/615267638.为符合问答规范, 该问题经过ChatGPT优化
以下是定时器扫描按键主程序:
unsigned char keynum; // 按键号
unsigned char temp; // 定义中间缓冲变量temp
void main() {
timer0_init(); // 定时器初始化
while (1) {
keynum = key(); // 获取按键值
if (keynum != temp) { // 判断是否与缓冲值相等
nixie(1, keynum); // 在数码管上显示按键值
temp = keynum; // 更新缓冲值
}
}
}
请问以下问题:
- 为什么要定义一个中间缓冲变量temp?
- 为什么不能直接使用if语句判断key()函数的返回值与keynum是否相等?