c语言按键连加,单片机C语言如何实现按键按一下的时候加一,长按的时候连加。…

  • Post author:
  • Post category:其他


满意答案

02ae427d08e371d7e90d5b995e828d6d.png

guiydgn9440

推荐于 2017.09.17

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:56%    等级:12

已帮助:5924人

这个可以通过定时器来实现,比如当按键时间小于2秒时,按一次加1,当超过2秒时,没50毫秒加1实现连加功能。例程如下:

#include

unsigned int a;

unsigned char times;

sbit key=P1^0;

void t0isr() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

times++;

if(times>40)

{

a++;

printf(“%d”,a);

}

}

main()

{

TMOD=0x21;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=0xfd;

TL1=0xfd;

TR0=1;

TR1=1;

ET0=1;

EA=1;

times=0;

a=0;

while(1)

{

if(key==0)

{

a++;

printf(“%d”,a);

while(key==0);

times=0;

}

}

}

15分享举报