當前位置:首頁 » 操作系統 » c源碼定時

c源碼定時

發布時間: 2022-07-11 10:31:41

c語言定時器

這個程序用多線程比較好解決.

#include <windows.h>
#include <iostream>
#include <conio.h>
using namespace std;

const int MAX_SECOND = 1000 * 60;

DWORD WINAPI MyThread(PVOID pParam)
{
int nSum = 0;

DWORD dwFirstTime = GetTickCount();

cout<<"做題開始,請在"<<MAX_SECOND / 1000 <<"秒內回答."<<endl;
do
{
cout<<"1 + 2 = ? 請回答:"<<endl;
nSum = getch();
cout<<char(nSum)<<endl;
if(nSum == 3 + '0')
{
cout<<"答案正確"<<endl;
return 0;
}
}while(GetTickCount() - dwFirstTime <= MAX_SECOND);

return 0;
}

int main()
{
HANDLE hThread = CreateThread(NULL, 0, MyThread, 0, NULL, NULL);
WaitForSingleObject(hThread, MAX_SECOND);
CloseHandle(hThread);
return 0;
}

⑵ 請問單片機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語言編個定時開關機的程序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int print()
{
printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
printf("╔═══╧╧ C語言 關機程序 ╧╧═══╗\n");
printf("║※1.實現10分鍾內的定時關閉計算機 ║\n");
printf("║※2.立即關閉計算機 ║\n");
printf("║※3.注銷計算機 ║\n");
printf("║※0.退出系統 ║\n");
printf("╚═══════════════════╝\n");
return 0;
}
void main()
{
system("title C語言關機程序");//設置cmd窗口標題
system("mode con cols=48 lines=25");//窗口寬度高度
system("color 0"); //可以寫成 red 調出顏色組
system("date /T");
system("TIME /T");
char cmd[20]="shutdown -s -t ";
char t[5]="0";
print();
int c;
scanf("%d",&c);
getchar();
switch(c)
{
case 1:printf("您想在多少秒後自動關閉計算機?(0~600)\n");scanf("%s",t);system(strcat(cmd,t));break;
case 2:system("shutdown -p");break;
case 3:system("shutdown -l");break;
case 0:break;
default:printf("Error!\n");
}
system("pause");
exit(0);//exit(1)表示異常退出.這個1是返回給操作系統的不過在DOS好像不需要這個返回值
// exit(0)表示正常退出

}

⑷ c51定時計數C語言代碼

#include<reg51.h>
#include<INTRINS.h>
#defineu16unsignedint
#defineu8unsignedchar/*********************************************************/
u8ds[3];//數碼管顯示緩存

//共陽
codeu8w[]={0x01,0x02,0x04,0x08}; //位碼
codeu8d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//斷碼
voiddispaly(){//顯示函數
staticu8a;
if(++a>=3)a=0;
P0=0xff;
P2=w[a];
P0=d[ds[a]];
}


/****************************************/
voidinit() //初始化函數
{TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;

}
u16count=0; //計數
u16V=0;//速度

u16js;//計時u8mc=P1^1;//脈沖引腳
u8tt=0xff;
voidsmmc(){
tt<<=1;
if(mc)tt|=0x01;
if((tt&0x03)==0x02){//下降沿脈沖
if(count<65535)count++;
}
}

/***********************************/

voidmain()//主函數
{
init();//系統初始化
TR0=1;//定時器開始計時
while(1){
ds[0]=V/100%10;//計數送到數碼管顯示緩存中
ds[1]=V/10%10;
ds[2]=V%10;
smmc();
if(js>=10000){//10s
js=0;
V=4*count/10+2;//計算速度
count=0;
}
}

}


/****************************/
voidtimer0()interrupt1//1ms定時器
{
TH0=(65536-1000)/256;//重載初值
TL0=(65536-1000)%256;
dispaly();//顯示
js++;


}

⑸ C語言如何定時

#include <stdio.h>

main()
{
int i;
for(i=99;i>0;i--)
{
gotoxy(10,10); 用這你可以在你想的任何地方顯示。
printf(" 2空格 "); //清除上次的顯示,如要三位數就用三個空格
gotoxy(10,10);
printf("%d",i);
delay(10000);
}
getch();

}

⑹ 求教怎麼在C語言中使用定時器

簡單使用,比如初始化,回讀計數值,可以通過訪問定時器的寄存器的方式完成
如果需要定時器中斷服務,要編寫中斷服務程序,並設置中斷向量表

⑺ 如何用C語言實現代碼定時執行

不懂你是要問整個代碼還是特定代碼段
要是定時執行一段代碼的話可以把代碼做成一個函數,在代碼執行前加個標志位,如果條件成立就執行,不成立就不執行,在定時中斷中設置標志位。
要是整個代碼就讓單片機進入睡眠和喚醒功能吧,現在很多單片機都帶有睡眠狀態

⑻ 如何用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語言中怎麼設置計時器

#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;

}

(9)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; /* 微秒數 */

};

熱點內容
安卓快手圖片怎麼弄 發布:2024-11-20 21:10:21 瀏覽:81
linuxtomcat內存 發布:2024-11-20 20:56:28 瀏覽:776
小米5s存儲卡 發布:2024-11-20 20:48:48 瀏覽:15
互聯網宣傳片腳本 發布:2024-11-20 20:47:09 瀏覽:994
穿越火線伺服器ip地址和埠 發布:2024-11-20 19:59:43 瀏覽:701
李鴻章環球訪問 發布:2024-11-20 19:54:07 瀏覽:197
方舟聯機伺服器怎麼發育 發布:2024-11-20 19:53:15 瀏覽:937
蘋果手機怎麼設計密碼 發布:2024-11-20 19:53:13 瀏覽:181
一個伺服器可以搭建多少游戲 發布:2024-11-20 19:43:56 瀏覽:971
哈希函數c語言 發布:2024-11-20 19:43:03 瀏覽:746