为了账号安全,请及时绑定邮箱和手机立即绑定

请问delay(20)在这个程序里什么作用?

请问delay(20)在这个程序里什么作用?

PHP
红糖糍粑 2023-04-08 14:10:47
#include<reg52.h>sbit Key0=P1^0; //P1^0sbit Key1=P1^1;// P1^1sbit PWM=P1^7;unsigned char num=0,Duty=5;void Delay(unsigned int time){unsigned int i=0,j=0;for(i=0;i<time;i++)for(j=0;j<114;j++);}void Key_Scanf(void) {if(Key0==0){Delay(20);if(Key0==0)Duty-=1;while(!Key0);}if(Key1==0){Delay(20);if(Key1==0)Duty+=1;while(!Key1);}Duty=Duty>1?Duty:1;Duty=Duty<9?Duty:9;}void Timer0_Inits(void){TMOD|=0x01;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TR0=1;ET0=1;EA=1;}void main(void){Timer0_Inits();while(1){Key_Scanf();}}void PIT0(void) interrupt 1{TH0=(65535-10000)/256;TL0=(65535-10000)%256;++num;if(num<=Duty)PWM=1;elsePWM=0;if(num>9)num=0; }
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

去抖动。按键按下的时候,实际上接触点有可能在不停的抖动,导致按键一开一闭,单片机会检测到很多次的按键按下事件,因此延迟一段时间,在延迟这段时间,可以去除由于抖动产生的影响。

查看完整回答
反对 回复 2023-04-11
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信