大家好,今天小编关注到一个比较有意思的话题,就是关于c语言2秒的问题,于是小编就整理了3个相关介绍c语言2秒的解答,让我们一起看看吧。
怎样编写一个延时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语言中如何计算时间差秒?
可以使用time函数,time函数的原型为:
time_t time(time_t *timer);
其中,time_t表示时间戳,time函数可以获取当前时间的时间戳,然后再用两个时间戳相减,就可以获得两个时间之间的时间差,单位为秒。
如果对精度没有太高要求的话,可以使用.
基本思路是取当前系统时间为起始时间,每一秒触发一次,减去起始时间,算出时间差,按格式输出.这样误差在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点解答对大家有用。