マイクロコントローラ51 - LEDライト

我々は最初の回路図LEDライトを見て

 

 

 図LEDは、私たちのLEDが点灯し、その後、左ダイオードVCC、ある我々はちょうど右に置く低P2xのは、対応する2)の#include点灯することができます行くreg52.hを // このファイルに定義されていますいくつかの特殊機能レジスタをSCM


SBIT LED = P2 ^ 0 ;        // 導か定義されるように、マイクロコントローラのP0.0ポート。SBITは、可変ビット特殊機能レジスタを定義し、我々は最初のLEDに対応し、ここで、P20を操作することができます。

/ * **************************** ****************************** 
*関数名:メイン
*機能:主な機能
*入力:なし
*出力:なし
* ************************************************** *************************** * / 
ボイドメイン()
{ 
    LED = 0 ;     // P2.0ポートはローレベルに設定され、次いで、LEDライトが点灯し
    、一方1); // whileループ、マイクロコントローラ、我々は、通常のプログラムを書いていない、我々は、whileループが起こる必要があり、書き込みコードにあるマイクロコントローラ無限ループを維持する必要が       
}

.HEXファイルをコンパイルし、その後、あなたは燃え尽きることができます。

2番目のライトをしたい場合は、次に我々は唯一SBIT LED2 = P2 ^ 1が必要です。そして、このLED2はそれで動作します。

私は、すべてのライトがオンになっている場合は、私は、8つのポートを定義するSBITを大量に使用する必要がありますか?

実際に必要とされていない、我々はの#define LED P2 P2ポートを動作させるためにこれを使用することができます。

#include reg52.h     // このファイルには、マイクロコントローラの特殊機能レジスタ定義 
の#define LED P2を;        // マイクロコントローラポートP2は、LEDのように定義される


空隙(メイン)
{ 
    LED = 0X 0 ;     // 0x0の16進数は、バイナリは、P2 ^ 0が割り当て表す00万台に変更しなければならない割り当てP2 ^ 1 0 ......
 一方、1 )。
}

私はちょうど少数の光が必要な場合は全体的に明るいので、8つのLEDライトは、次にLEDの割り当ては、例えば、進数にその1011 0010,0対応するLEDが点灯し、1つの手段ない光は、言いますコード(0xB2)など。

LED =コード(0xB2); LEDの上位4ビットに割り当てB、即ちP2 ^ 7〜P2 ^ 4,2 1/4に割り当てられ、最初の結果は1,3,4,7 LEDライト。

 

 

 

 (の#define文の後の未セミコロン)

おすすめ

転載: www.cnblogs.com/Tayl0r-Swift/p/12441565.html