说明:检测计数,关断延时功能,附件hex可直接烧录
初始输出高电平,检测到50次高电平,关闭15秒输出,即15秒低电平后输出高电平,在此计数50个输入高电平。
下面是代码示例
#include "STC8G.h"
#include <intrins.h>
// 引脚定义
#define INPUT_PIN P32 // P3.2作为输入脚
#define OUTPUT_PIN P33 // P3.3作为输出脚
// 参数定义
#define DEBOUNCE_TIME 20 // 去抖动时间(ms)
#define PULSE_COUNT_MAX 50 // 计数最大值
#define OUTPUT_LOW_TIME 15000 // 输出低电平时间(ms)
// 变量定义
unsigned int pulse_count = 0; // 脉冲计数
unsigned char input_state = 0; // 当前输入状态
unsigned char last_state = 0; // 上一次输入状态
unsigned char debounce_state = 0; // 去抖动状态机状态
unsigned int debounce_timer = 0; // 去抖动计时器
unsigned int output_timer = 0; // 输出计时器
bit counting_enabled = 1; // 计数使能标志
bit output_low_flag = 0; // 输出低电平标志
<11473016*********> 上传
| 大小:3.13kb | 下载0次