大家好,今天小编关注到一个比较有意思的话题,就是关于c语言2秒的问题,于是小编就整理了3个相关介绍c语言2秒的解答,让我们一起看看吧。

  1. 怎样编写一个延时0.2秒的C语言程序?
  2. C语言中如何计算时间差秒?
  3. 按下按键key灯亮x秒后停止的c语言怎么编写?

怎样编写一个延时0.2秒的C语言程序?

单片机吧例如定义的是P1口4个灯就是intLED1=P1^0;intLED2=P1^1;intLED3=P1^2;intLED4=P1^3;LED1=0;开启delay(1秒)延时函数LED1=1;灭delay(1秒)延时函数LED2=0;开启delay(0.5秒)延时函数LED2=1;灭delay(0.5秒)延时函数LED3=0;开启delay(0.2秒)延时函数LED3=1;灭delay(0.2秒)延时函数你也可以使用P1=0xfe;delay()延时函数P1=0XFF;以此类推

c语言2秒-c语言20秒后的时间
(图片来源网络,侵删)

C语言中如何计算时间差秒?

可以使用time函数,time函数的原型为:

time_t time(time_t *timer); 

c语言2秒-c语言20秒后的时间
(图片来源网络,侵删)

其中,time_t表示时间戳,time函数可以获取当前时间的时间戳,然后再用两个时间戳相减,就可以获得两个时间之间的时间差,单位为秒。

如果对精度没有太高要求的话,可以使用.

c语言2秒-c语言20秒后的时间
(图片来源网络,侵删)

基本思路是取当前系统时间为起始时间,每一秒触发一次,减去起始时间,算出时间差,按格式输出.这样误差在1秒之内.

以下代码是命令行程序示例:

运行效果:

按下按键key灯亮x秒后停止的c语言怎么编写?

像你这种按键程序

因为单片机速度非常快,在你按一下按键时,单片机已经循环了很多次程序。

因此这样就会导致,当你按下时,其实k一直==0 一直在执行动作。

所以这种按键需要判断按键是第一次按下(由弹起状态下按下)。而不是一直按着导致的动作。

方法:建一个变量保存上一次按键的值

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

char LastKey;

LastKey = 1;

while(1)

{

if(k == 0 && LastKey == 1) //按下,且上一次检测按键时是弹起状态

{ //这样才能保证每次按下时只执行一次,

//而不是一直在执行

Delay1ms(20);

if(k == 0) //确定是第一次按下,执行动作

{

if((n % 2) == 0)

{

LedFlash();

}

else

{

P0 = 0xFF;

}

n++;

}

}

LastKey = k; //保存按键状态

到此,以上就是小编对于c语言2秒的问题就介绍到这了,希望介绍关于c语言2秒的3点解答对大家有用。