本帖最后由 网老四 于 2024-8-5 15:24 编辑
- uint main_loop_count=0; //大循环计数器,作为软件定时基准,备用
- uint flash_count=0; //闪灯计数器
- bit LED_flash_flag=0; //闪灯标志
- bit P35_old; //按键状态缓存
-
- void main(void)
- {
- while(1)
- {
- if((P35==0)&&(P35_old==1))LED_flash_flag=!LED_flash_flag; //检测按键按下前沿,闪灯标志取反
- P35_old=P35; //保存当前按键状态
- if((LED_flash_flag)&&(flash_count<1000))P27=0; //亮灯
- else P27=1; //灭灯
- (flash_count<2000)?(flash_count++):(flash_count=0); //闪灯计数器累加并限幅,控制闪灯占空比和周期
- main_loop_count++; //大循环计数器累加
- Delay_ms(1); //粗略的大循环周期控制,也可以改用硬件定时器嘀嗒计数来实现精确控制
- }
- }
复制代码
|