c語言秒錶模擬,C語言秒錶

本文目錄一覽:

用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;i0;i–)

for(j=248;j0;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];

}

}

秒錶計時程序要求(需要用C語言實現)

這裡的分段計時,我使用空格鍵實現的,F2比較麻煩。程序開始,輸入回車開始計時,中途輸入空格可以開始新的計時,最後輸入回車完成計時。

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

真麻煩,下次這種求助才給10分,絕對不做。。。

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

我的代碼就是在VS2010下寫的。。。怎麼會無法編譯。。。你要建一個空工程,然後加入C++源文件。

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

請新建一個空工程,不要新建Win32 Console那個工程!

#include stdio.h

#include conio.h

#include windows.h

#include stdlib.h

struct tm     //定義時間結構體,包括時分秒和10毫秒

{

int hours,minutes,seconds;

int hscd;

}time,tmp,total;    //time用以計時顯示,tmp用以存儲上一階段時間,total記總時間

int cnt;

FILE* fout;

//每次調用update函數,相當於時間過了10ms

void update(struct tm *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

}

void display(struct tm *t)

{

//此處輸出計時結果,\r為回車不換行,既一直在同一行更新時間

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

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

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

printf(“%d\r”,(*t).hscd);

//printf(“Now, press ‘e’ key to stop the clock…”);

}

void time_init()  //初始化時間

{

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

}

void get_total()   //計算總時間

{

total.hscd = cnt % 100;

cnt /= 100;

total.seconds = cnt % 60;

cnt /= 60;

total.minutes = cnt % 60;

cnt /= 60;

total.hours = cnt;

}

int main()

{

char m;

time_init();

cnt = 0;

fout =  fopen(“timeout.txt”,”w”);

printf(“Now, press Enter key to begin the clock…\n”);

while(1)

{

m = getch();

if(m != ‘\r’)     //讀入一個輸入,如果是回車,那麼跳出次循環

printf(“Input Error!\n”);

else

break;

}

printf(“While counting, you can press space to start a new time counter!\n”);

while(1)

{

if(kbhit())    //此處檢查是否有鍵盤輸入

{

m=getch();

if(m == ‘\r’)     //如果等於回車,那麼計時結束,跳出循環

break;

else if(m == ‘ ‘)  //如果等於空格,顯示此次計時,初始化計時器

{

tmp = time;      //記錄上一段計時器結果

fprintf(fout,”%d:%d:%d:%d\n”,tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd); //寫入文件

time_init();

printf(“\n”);

}

else

{

printf(“Input Error!\n”);

}

}

update(time);     //更新計時器

display(time);    //顯示計時器時間

}

tmp = time;       //輸出最後一次即使結果,寫入文件

fprintf(fout,”%d:%d:%d:%d\n”,tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd);

get_total();      //計算總的時間,顯示,並寫入文件

printf(“\ntotal time:%d:%d:%d:%d\n”,total.hours,total.minutes,total.seconds,total.hscd);

fprintf(fout,”total time:%d:%d:%d:%d\n”,total.hours,total.minutes,total.seconds,total.hscd);

fclose(fout);

getch();

}

C語言怎麼寫一個簡易秒錶

用到time.h文件

裡面有個clock();函數,返回一個clock_t類型的數字,表示從程序運行開始,CPU的”滴答”數

而在time.h里有個常量CLOCKS_PER_SEC表示每秒鐘有多少個”滴答”.

這樣,(((float)clock())/CLOCKS_PER_SEC)*1000這樣的表達式就能得到從程序運行開始到現在的經過的時間.

程序的大致思路是這樣的,程序按下1的時候記下當時的程序運行時間.

從這時起,每時刻撿取程序運行時間,然後減去先前的值,就可以得到已經計時的時間了.

只要讓用戶按下0結束計時就好了

在conio.h文件里,有個函數kbhit()是個非阻塞函數,用來檢查鍵盤緩衝里有沒有按鍵按下,若有,則返回1,若沒有,則返回0,以此來作為判斷,若返回1,則撿取按鍵,測試它是不是0或者1,若返回0,則表示用戶沒有動作,繼續原來的工作,即繼續計時或等待命令.

用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函數改成這樣看看行不行

原創文章,作者:MNPE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144056.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MNPE的頭像MNPE
上一篇 2024-10-24 15:27
下一篇 2024-10-24 15:27

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論