51单片机实现加法计数(计数初值为0,按键K4每按下并弹起1次,计数结果加1,计数结果为OxFF时再“加1”则让计数结果回到0),并将计数结果送D9~D16 显示变亮(D9用作计数结果最高位,D16用作计数结果最低位),要求用到延时的
时间: 2023-06-25 18:07:30 浏览: 83
下面是51单片机实现加法计数的代码,用到了按键扫描和延时函数:
```c
#include <52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit K4 = P1^0; // 按键K4
void delay(uint16 ms) { // 延时函数
while (ms--) {
uint16 i = 12000;
while (i--);
}
}
void display(uint8 num) { // 显示函数
P2 = num;
}
void main() {
uint8 count = 0; // 计数值
uint8 lastKey = 1; // 上一次按键状态
while (1) {
if (K4 == 0 && lastKey == 1) { // 检测按键
lastKey = 0;
count++;
if (count == 0xFF) { // 溢出后清零
count = 0;
}
display(count); // 显示计数值
delay(100); // 延时消抖
}
else if (K4 == 1) {
lastKey = 1;
}
}
}
```
注意,此代码只是一个简单的示例,没有进行按键消抖和显示优化,实际应用还需要根据具体情况进行修改。
阅读全文