中期試験のストップウォッチタイマー

ストップウォッチ、タイマー、0-15秒の記録時間を作ります。それは、正確かつ制御が必要です。

要件:

  • [スタートストップウォッチはキーで制御することができます
  • ボタンは、ストップウォッチを停止することによって制御することができます
  • ボタンはゼロへのクロックを制御するために使用することができます
  • タイマ制御精度を使用して、時間が必要です。
  • デジタル制御の複数を使用して機能キーを実装します。

図に示すように、まず、要求と2つのボタンの回路図。

 

 書き込みコードの要件は、以下の参照コードです

コードをコピー
#include <reg52.h> 
の#define LED P0 
I 0 = unsigned int型、
unsigned int型J = 0; 
SBIT KEY1 P1の^ = 0; //一時停止、開始ボタン
SBITのKEY2 = P1 ^ 2; //リセットボタン
unsigned char型のNUM [] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8、\ 
                    0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E}; 
空隙INT_T0(ボイド)
{ 
    TMOD = 0X01; //タイマ0、タイマにより1モードオン
    ; TH0である= 0xFC 
    TL0 = 0x18のを; //初期値
    EA = 1; //メインスイッチをオンにし
    ET0 = 1; //割り込みスイッチT0を開く
} 
ボイドメイン(ボイド)
{     
    INT_T0() ; 
    TR0 = 0; //オフタイマー
    LED NUM = [0]; 
    一方、(1) 
    {            
        IF(KEY1 == 0)
        {
            TR0 = 1; //決意ボタンを押すと、開いたクロノグラフのタイミング
        } 
        { 
            TR0 = 0; //分析キーのリリースでは、切断機能を計時
        } 
        (KEY2 == 0)IF 
        { 
             BREAK; //アウトループの、ゼロまでの時間
        }     
    } 
} 
 
。ボイドTIME0(ボイド)割り込み1 
{ 
    TH0である= 0xFC; 
    TL0 = 0x18の; //初期値
    IF(I <1000)
    { 
        I ++; 
    } 
    { 
         LED NUM = [J]; 
        IF(J < 16)
        { 
         J ++; 
        } 
             J = 0; 
        } 
        そう
        { 
        iが0 =。
    } 
    
}
コードをコピー

押して1カウント、停止解除、プレス2リセットを開始します

おすすめ

転載: www.cnblogs.com/chenminjian/p/11815591.html