中間試験馬鳴

ストップウォッチタイマ

 

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

要件:

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

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

 

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

コードをコピー
コードをコピー
コードをコピー
書式#include <reg52.h>
LEDの#define P0
私は0 = unsigned int型。
unsigned int型のJ = 0;
KEY1 = P1 ^ 0 SBIT;      // 一時停止、[スタート]ボタン
SBIT KEY2 = P1 ^ 2; //リセットボタン
unsigned char型NUM [] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8、\
                    0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E}。// ????? 0-F
空INT_T0(無効)
{
    TMOD = 0X01; //オープンタイマ0、タイマ1モード使用
    TH0 = 0XFC。
    TL0 = 0x18の; //初期値
    EA = 1; //は、メインスイッチをオンにします
    ET0 = 1; //開き割り込みスイッチT0
}
無効メイン(無効)
{    
    INT_T0();
    TR0 = 0; //近いタイミング機能
    LED = NUM​​ [0]。
    一方、(1)
    {            
        (KEY1 == 0)の場合
        {
            TR0 1 =; //決意ボタンが押下され、​​開いたクロノグラフのタイミングを
        }
        {
            TR0 = 0; //キーリリースを分析し、切断機能を時限
        }
        (KEY2 == 0)の場合
        {
             ブレーク;ループの//うち、ゼロまでの時間
        }    
    }
}
 
1割り込み無効time0(無効) 
{
    TH0 = 0XFC。
    TL0 = 0x18の; //初期値
    (I <1000)の場合
    {
        I ++;
    }
    {
         LED NUM = [J]。
        (J <16)の場合
        {
         J ++;
        }
        {
             J = 0;
        }
        I = 0;
    }
    
}

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

要件:

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

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

 

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

コードをコピー
コードをコピー
コードをコピー
書式#include <reg52.h>
LEDの#define P0
私は0 = unsigned int型。
unsigned int型のJ = 0;
KEY1 = P1 ^ 0 SBIT;      // 一時停止、[スタート]ボタン
SBIT KEY2 = P1 ^ 2; //リセットボタン
unsigned char型NUM [] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8、\
                    0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E}。// ????? 0-F
空INT_T0(無効)
{
    TMOD = 0X01; //オープンタイマ0、タイマ1モード使用
    TH0 = 0XFC。
    TL0 = 0x18の; //初期値
    EA = 1; //は、メインスイッチをオンにします
    ET0 = 1; //開き割り込みスイッチT0
}
無効メイン(無効)
{    
    INT_T0();
    TR0 = 0; //近いタイミング機能
    LED = NUM​​ [0]。
    一方、(1)
    {            
        (KEY1 == 0)の場合
        {
            TR0 1 =; //決意ボタンが押下され、​​開いたクロノグラフのタイミングを
        }
        {
            TR0 = 0; //キーリリースを分析し、切断機能を時限
        }
        (KEY2 == 0)の場合
        {
             ブレーク;ループの//うち、ゼロまでの時間
        }    
    }
}
 
1割り込み無効time0(無効) 
{
    TH0 = 0XFC。
    TL0 = 0x18の; //初期値
    (I <1000)の場合
    {
        I ++;
    }
    {
         LED NUM = [J]。
        (J <16)の場合
        {
         J ++;
        }
        {
             J = 0;
        }
        I = 0;
    }
    
}

おすすめ

転載: www.cnblogs.com/mayiming/p/11815489.html