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

c语言秒表计时器实现

发布时间: 2022-12-26 00:02:43

A. 用c语言编写秒表的程序(单片机控制的时钟设计)

这个程序可以实现秒的计时,按键控制开始、暂停、清零功能,更多功能自己在看清程序的基础上进行改进。
#include <reg51.H>
sbit P3_5 =P3^5;
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00};
unsigned char second;
unsigned char keycnt;
unsigned int tcnt;
void main(void)
{
unsigned char i,j;
TMOD=0x02;
ET0=1;
EA=1;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
while(1)
{
if(P3_5==0)
{
for(i=20;i>0;i--)
for(j=248;j>0;j--);
if(P3_5==0)
{
keycnt++;
switch(keycnt)
{
case 1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
keycnt=0;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}

B. 秒表计时程序要求(需要用C语言实现)

这里的分段计时,我使用空格键实现的,F2比较麻烦。程序开始,输入回车开始计时,中途输入空格可以开始新的计时,最后输入回车完成计时。

文件存在程序目录下的timeout.txt

真麻烦,下次这种求助才给10分,绝对不做。。。

//////////////////////////

我的代码就是在VS2010下写的。。。怎么会无法编译。。。你要建一个空工程,然后加入C++源文件。

/////////////////////////////

请新建一个空工程,不要新建Win32Console那个工程!

#include<stdio.h>

#include<conio.h>

#include<windows.h>

#include<stdlib.h>

structtm//定义时间结构体,包括时分秒和10毫秒

{

inthours,minutes,seconds;

inthscd;

}time,tmp,total;//time用以计时显示,tmp用以存储上一阶段时间,total记总时间

intcnt;

FILE*fout;

//每次调用update函数,相当于时间过了10ms

voipdate(structtm*t)

{

(*t).hscd++;//10ms单位时间加1

cnt++;

if((*t).hscd==100)//计时满1s,进位

{

(*t).hscd=0;

(*t).seconds++;

}

if((*t).seconds==60)//计时满一分,进位

{

(*t).seconds=0;

(*t).minutes++;

}

if((*t).minutes==60)//计时满一小时,进位

{

(*t).minutes=0;

(*t).hours++;

}

if((*t).hours==24)(*t).hours=0;

//delay();

Sleep(10);//Sleep是windows提供的函数,作用是暂停程序,单位毫秒,所以此处暂停10ms

}

voiddisplay(structtm*t)

{

//此处输出计时结果, 为回车不换行,既一直在同一行更新时间

printf("%d:",(*t).hours);

printf("%d:",(*t).minutes);

printf("%d:",(*t).seconds);

printf("%d ",(*t).hscd);

//printf("Now,press'e'keytostoptheclock...");

}

voidtime_init()//初始化时间

{

time.hours=time.minutes=time.seconds=time.hscd=0;

}

voidget_total()//计算总时间

{

total.hscd=cnt%100;

cnt/=100;

total.seconds=cnt%60;

cnt/=60;

total.minutes=cnt%60;

cnt/=60;

total.hours=cnt;

}

intmain()

{

charm;

time_init();

cnt=0;

fout=fopen("timeout.txt","w");

printf("Now,pressEnterkeytobegintheclock... ");

while(1)

{

m=getch();

if(m!=' ')//读入一个输入,如果是回车,那么跳出次循环

printf("InputError! ");

else

break;

}

printf("Whilecounting,! ");

while(1)

{

if(kbhit())//此处检查是否有键盘输入

{

m=getch();

if(m==' ')//如果等于回车,那么计时结束,跳出循环

break;

elseif(m=='')//如果等于空格,显示此次计时,初始化计时器

{

tmp=time;//记录上一段计时器结果

fprintf(fout,"%d:%d:%d:%d ",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd);//写入文件

time_init();

printf(" ");

}

else

{

printf("InputError! ");

}

}

update(&time);//更新计时器

display(&time);//显示计时器时间

}

tmp=time;//输出最后一次即使结果,写入文件

fprintf(fout,"%d:%d:%d:%d ",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd);

get_total();//计算总的时间,显示,并写入文件

printf(" totaltime:%d:%d:%d:%d ",total.hours,total.minutes,total.seconds,total.hscd);

fprintf(fout,"totaltime:%d:%d:%d:%d ",total.hours,total.minutes,total.seconds,total.hscd);

fclose(fout);

getch();

}

C. 用c语言怎么写秒计时器

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar tt,num;
uchar shi,ge,temp;
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,<br>0x66,0x6d,0x7d,0x07,<br>0x7f,0x6f};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar shi,uchar ge)
{
shi=temp/10;
ge=temp%10; P2=table[shi];
P3=0xfe;
delay(1);
P2=0x00; P2=table[ge];
P3=0xfd;
delay(1);
P2=0x00;
}
void timer0() interrupt 1
{
TH0=-50000/256;
TL0=-50000%256;
tt++;
if(tt>=20)
{
tt=0;
temp++;
if(temp==60)
temp=0;
}
}
void init()
{
TMOD=0x01;
TH0=-50000/256;
TL0=-50000%256;
EA=1;
ET0=1;
TR0=1;
tt=0;
temp=0;
}
void main()
{
init();
while(1)
{
display(shi,ge);
}
} 这个是60秒的,供参考

D. c语言中怎么设置计时器

C语言计时可以用很多方法。
1.
如果是想使用秒级别的技术,可用使用C语言库<time.h>自带的clock()进行计时。如:
#include
<iostream>
#include
<time.h>
using
namespace
std;
int
main()
{
clock_t
start
=
clock();
//do
some
process
here
clock_t
end
=
(clock()
-
start)/CLOCKS_PER_SEC;
cout<<"time
comsumption
is
"<<end<<endl;
}
以上方法只能用于秒级别的计时。
2.如果想使用毫秒级别的计时可以使用2种方法。一种是使用linux的系统库<sys/time.h>,一种是使用CUDA的cutil的库。
A.
如果使用linux的系统库,则可以使用如下方法:
#include
<sys/time.h>
int
main()
{
timeval
starttime,endtime;
gettimeofday(&starttime,0);
//do
some
process
here
gettimeofday(&endtime,0);
double
timeuse
=
1000000*(endtime.tv_sec
-
starttime.tv_sec)
+
endtime.tv_usec
-
startime.tv_usec;
timeuse
/=1000;//除以1000则进行毫秒计时,如果除以1000000则进行秒级别计时,如果除以1则进行微妙级别计时
}
timeval的结构如下:
strut
timeval
{
long
tv_sec;
/*
秒数
*/
long
tv_usec;
/*
微秒数
*/
};
上述方法可以进行微妙级别的计时,当然也可以进行毫秒和秒的计时。
B.
如果可以使用CUDA的话,则可以使用CUDA的sdk里面的cutil库里面的函数。
#include
<cutil.h>
int
main()
{
unsigned
int
timer
=
0;
cutCreatTimer(&timer);//创建计时器
cutStartTimer(&timer);//开始计时
//
do
some
process
here
cutStopTimer(&timer);//停止计时
cout<<"time
is
"<<cutGetTimerValue(&timer)<<endl;//打印时间
}

E. c语言中怎么设置计时器

#include <iostream>

#include <time.h>

using namespace std;

int main()

{

clock_t start = clock();

//do some process here

clock_t end = (clock() - start)/CLOCKS_PER_SEC;

cout<<"time comsumption is "<<end<<endl;

}

(5)c语言秒表计时器实现扩展阅读

使用linux的系统设置计时器

#include <sys/time.h>

int main()

{

timeval starttime,endtime;

gettimeofday(&starttime,0);

//do some process here

gettimeofday(&endtime,0);

double timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - startime.tv_usec;

timeuse /=1000;//除以1000则进行毫秒计时,如果除以1000000则进行秒级别计时,如果除以1则进行微妙级别计时

}

timeval的结构如下:

strut timeval

{

long tv_sec; /* 秒数 */

long tv_usec; /* 微秒数 */

};

F. 用C语言设计秒表程序

int main()
{ char m;
struct tm time;
time.hours=time.minutes=time.seconds=0;
printf("Now, press 's' key to begin the clock...\n");
m=getch();
if(m=='s'||m=='S')
while(1)
{
while(!kbhit()) {
update(&time);
display(&time);}
m=getch();
if(m=='s'||m=='S')break;
else{ printf("Only 's' or 'S' can be inputed!!");}
}
}
把main函数改成这样看看行不行