当前位置:首页 » 编程语言 » 02秒定时程序c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

02秒定时程序c语言

发布时间: 2022-06-26 22:38:21

㈠ 如何用c语言实现定时何延时功能

C语言中的两个函数

一个是<windows.h>库下的Sleep()

效果为当前进程等待Sleep(x)毫秒

可以实现延时功能

另一个是<time.h>下的time()

效果为返回当前时间,配合循环可以实现定时功能

以下是一个例子:

//刚写完
#include<stdio.h>
#include<windows.h>
#include<time.h>

intmain()
{
printf("定时程序2秒后开启 ");
Sleep(2000);
printf("定时程序开启 ");
printf("当前时间戳是%s ",time(NULL));
return0;
}

㈡ C语言中想要一个循环程序在2秒内结束,用哪个函数,怎么用让一个循环程序运行一次就结束,该怎么编程!

2秒的应该要用定时器好一点吧,while(!两秒标志)这样就可以了(两秒定时一到,则置位两秒标志位),如果真的对实时性要求非常高的话,就是说两秒一到,不管程序执行到哪里,都应该结束这个循环,那就要用到任务的调度了,这个比较麻烦,因为会涉及到操作系统了,uC/OS可以实现这个。至于你说的让循环程序执行一次就结束的,既然是只有一次,那就不叫循环了对吧,不要循环,直接顺序执行下来就是一次了嘛

㈢ C语言中想要一个while循环程序在2秒内结束并向下继续运行,用哪个函数,怎么用或者怎么停止循环

你可以这样,定义一个变量,比如说time=0,在循环里面每次循环time++,循环的判断条件就是while(time<200)就行了
这里有延时函数的介绍
/* 函数类型:void (无返回值)
函数接口:delay(int)
例如在程序中取得n秒的延时,只要在代码中加入 delay(n) 即可。注:n 为 int 类型。
*/

/* 调用时请务必#include <time.h> 头文件 */
函数代码如下:
void delay(int seconds)
{
clock_t start = clock();
clock_t lay = (clock_t)seconds * CLOCKS_PER_SEC;
while ((clock()-start) < lay) ;
}
可以函数里面设定每一秒执行一次

㈣ 请问单片机C语言定时器程序怎么写

你看过汇编吗?与汇编的格式是一样的。具体就是先开中断允许标志位(IE里面对应的各个位)在设定TMOD工作方式。下一步就是设定初始值了(TH、TL)。设置完这些就可以开定时器了。写中断中段函数是是需要另加interrupt 加上一个常数(比如是定时器0就在后面加上1)。我用89S52芯片编过一个定时器程序你参考一下,希望对你有一点帮助。
//功能:感应外界温度并用数码管显示
//时间:2005年6月20日
//设计人:
#include<reg52.h>
#define uchar unsigned char
sbit ad0809_oe=P1^0; //定义各个位
sbit ad0809_start=P1^1;
sbit ad0809_ale=P1^2;
sbit ls595_rclk=P1^3;
sbit ad0809_eoc=P1^5;
sbit ls595_oe=P1^4;
sbit ls595_ser=P3^0;
sbit ls595_srclr=P3^1;
uchar nn,mm;
uchar code tab[]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};
send(uchar); //声明函数
AD(uchar);
void display(uchar);
void init();
//********普通口输入数据*****************
send(uchar shu) //普通口串行输入
{
unsigned char i,k;
k=0x01;
for(i=0;i<8;i++)
{
if(k==(k&shu)) //判断每位上是否为1
ls595_ser=1;
else
ls595_ser=0;
k<<=1; //左移一位
ls595_srclr=0; //输入一个上升沿讲数送入595中
ls595_srclr=1;
}
}
//*****************595显示子程序********************
void display(uchar )
{
uchar ge,shi,flge; //ge拆字后个位的存放处shi拆字后十位的存放处flge ℃的存放处
shi=tab[/10]; //拆字
send(shi); //给595送数
ge=tab[%10];
send(ge);
flge=0xb1;
send(flge);
ls595_rclk=0; //上升沿送出数据
ls595_rclk=1;
}
//*******************初始化程序********************
void init() //初始化AD、定时器
{
ad0809_start=0; //Start管教上升沿将AD内部寄存器清零
ad0809_start=1;
ad0809_ale=1; //ALE高电平选择通道
nn=0;
mm=0;
TMOD=0x01; //定时器初始化
//IE=0x82;
EA=1;
ET0=1;
TCON=0x00;
TL0=(65536-50000)%256; //定时50ms
TH0=(65536-50000)/256;

}
AD(uchar wen)
{
// unsigned char tt=0;
// ad0809_ale=1; //选择通道
ad0809_start=1;
ad0809_start=0; //start下降沿启动转换信号
while(ad0809_eoc==0); //判断转换是否结束
ad0809_oe=1; //转换结束送出转换数据
wen=P2;
return (wen);
}

//**************中断服务程序*********************
void tiam0() interrupt 1 using 1 //中断服务程序
{
TL0=(65536-50000)%256; //定时50ms
TH0=(65536-50000)/256;
nn++;
if(nn==10) //0.5秒M加一
{
mm++;
nn=0;
}
}

//****************主程序***************************
void main()
{
unsigned char bb,aa,cc; //bb=计算后得到温度,aa=AD输出数据
unsigned char wen; //wen存放转换的得到的数据
init();
// wen=17;
ls595_oe=0;
cc=0;
TR0=1;
while(1)
{
aa=AD(wen);
// ad0809_oe=0;
aa=~aa;
bb=aa/4;
if(mm==2)
{
mm=0;
cc=bb;
}
display(cc); //调用显示子程序

}
}

㈤ 单片机c语言编写产生1秒定时的程序,怎么写

如果是51单片机的话其实很简单的,这里假设晶振频率是12M(一般都是的),你可以选用定时器0,工作在工作状态2,因为这个状态下装入初始值几乎不需要时间,所以定时精确,也就是8位预置数状态,将初始值设为6,这样每次定时就是250微秒,在中断程序中定义一个静态变量,每次中断加一,这样当这个变量值为4000时就刚好是1S钟。
关键程序是:
void main()
{
TMOD=OX02;
EA=1;
ET0=1;
TH0=0X06;
TL0=0X06;
while(1);
}
void timer0() interrupt 1
{
static unsigned int times=0;
times++;
if(times==4000)
{
times=0;
//自己的程序
}}

㈥ c语言如何每隔2秒产生随机数

你可以添加延时函数:

sleep(2);//单位貌似是毫秒,具体的你可以试试。我先写个2,记得去验证单位是什么
//你在里面换算好单位。我在linux是秒单位的。

需要包含头文件

#include<windows.h>

然后你再用rand()产生随即函数。


下面给出样例,你需要调试一下,我在linux用记事本写的

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
intmain(void)//返回值必须是整形c99的新标准
{
srand(time(0));
while(true)
{
printf("t=%d ",rand());
Sleep(2);//记得把2修改,有可能是2000
}
return0
}

㈦ 利用c语言编程,使DSP28335的cpu定时器1在主频为100兆赫兹情况下每隔2秒触发定时器中断

摘要 C 语言编程常用的4种延时方法,其中两种非精确延时,两种精确一些的延时。for 语句和 while 语句都可以通过改变 i 的范围值来改变延时时间,但是 C 语言循环的执行时间都是不能通过程序看出来的。精确延时有两个方法,一个方法是用定时器来延时,这个方法我们后边课程要详细介绍,定时器是单片机的一个重点。另外一个就是用库函数nop();,一个 NOP 的时间是一个机器周期的时间,这个后边也要介绍。

㈧ 这个c语言程序延时2ms是怎么计算的

你给的算法误差大,不同的计算机运算速度不同,等待时间不同。
暂停,可以用
Windows.h
里的
Sleep()
函数,也可以自己写。
Sleep(1000);
参数是1000毫秒,就是暂停
1
秒。一般人认为,Sleep函数,每秒可能有25毫秒误差。
自己写,可以利用
clock
()
函数,clock
()
函数送返从程序开始运行到调用时的时间间隔,单位是毫秒。暂停开始,用clock
()
取开始时间,然后,只要用clock
()再取时间,判断是否到结束时间,没到则继续暂停。
//
等待
多少秒:
void
wait
(
int
seconds
)
{
clock_t
endwait;
endwait
=
clock
()
+
seconds
*
CLOCKS_PER_SEC
;
while
(clock()
<
endwait)
{}
}
//
等待多少毫秒:
void
wait_ms
(
int
ms
)
{
clock_t
endwait;
endwait
=
clock
()
+
ms;
while
(clock()
<
endwait)
{}
}
精确计时算法见L_o_o_n_i_e
网络空间文章:C语言时间函数的应用

㈨ 用C语言编写程序,要求实现两盏LED灯交替闪烁,间隔时间为2秒。

sbit LED1=P2^0;
sbit LED2=P2^1;

// STC的下载工具中,有延时的计算例子,再使用循环延时
void Delay100ms(){ //@11.0592MHz
unsigned char i, j;

i = 180;
j = 73;
do{
while (--j);
} while (--i);
}

void main(){
unsigned int n;
while(1){
LED1=~LED1;
LED2=~LED2;
for(n=0; n<20; n++){
Delay100ms();
}
}
}

㈩ C语言中想要一个循环程序在2秒内结束,用哪个函数,怎么用或者怎么停止循环

你这个程序是单片机的C?
用中断做一个定时器。在中断服务程序里,累加一个全局变量,比如SoftTimerCounter。
将你的主循环while(1)改为:while(SoftTimerCounter<=设定时间)
设定时间要根据定时中断的时间间隔和你要的时长来计算一下,也就是定时中断的次数。
最好在可以跳出的这个while循环后边再加一个while(1)空循环。