LEDの点滅は、電子機器を使い始めるための最初のステップです。このチュートリアルでは、LEDをAVRシリーズのマイクロコントローラーであるATmega32に接続します。LEDを0.5秒の速度で点滅させます。
必要なコンポーネント
ハードウェア:
ATmega32Aマイクロコントローラー
電源(5v)
AVR-ISPプログラマー
100uFコンデンサ
導いた
220Ω抵抗
ソフトウェア
Atmelスタジオ6.1
Progispまたはフラッシュマジック
回路と動作の説明
上記のLEDとAVRマイクロコントローラーのインターフェースの回路図に示されているように、ここに外部水晶を接続する必要はありません。ATMEGAはデフォルトで内部1MHz抵抗-コンデンサ発振器で動作するためです。時計の精度が必要な場合にのみ、高精度のカウントの適用として、外部水晶を取り付けます。コントローラを最初に購入したとき、デフォルトで内部クリスタルで動作するように融合されています。
ここに抵抗を接続して、LEDからの電流引き込みを制限します。コントローラは端子で30mAを超えることはできないことを忘れないでください。
プログラミングの説明
ATmega32マイクロコントローラがLEDを点滅させるためのプログラムを以下に示します。コード内のコメントは、コードの個々の行の目的を説明しています。
#include //ピンのデータフロー制御を有効にするヘッダー
#define F_CPU 1000000 //コントローラーの水晶周波数を伝える
#include
int main(void)
{{
DDRD = 0xFF; //(または0b1111 1111)AVRSTUDIOでは、ポートの特定のビットを入力として使用するように制御するために「ZERO」を使用し、出力として特定のビットを使用するように制御するために「ONE」を使用します。8つの「ONE」を配置したため、PORTDのすべてのピンが出力として有効になります。「0b11110111」としてゼロを入力すると、すべてのピン0、1、2、4、5、6、7が入力として有効になり、ピン3が入力として有効になります。
while(1)//ループは永久に続き、LEDは永久に点滅します
{{
PORTD = 0xFF; // PORTDのすべてのピンは5v出力を提供すると言われるか、ハイにプルするように指示されます(LEDオン)
_delay_ms(220); // 200msの遅延
_delay_ms(220); ); // 200msの遅延
PORTD = 0x00; // PORTDのすべてのピンは、出力またはプルダウンでグラウンドを提供すると言われています
_delay_ms(220); ); // 200msの遅延
_delay_ms(220); ); // 200msの遅延
}
}