目次>5章 第2ステップ(色々な実験)>(6)LEDの明るさを序所に変える(TMR0割込み使用)
LEDの明るさを序所に変える(TMR0割込み使用)
更新日2005.10.15
「(3)LEDの明るさを序所に変える」では、一定時間待つのに命令を繰り返していました。
ここでは、TMR0割込みを使って一定時間の待ちを作り出します。
仕様 | |||||||||
プログラムの仕様は次の通りで、「LEDを徐々に明るくする」と「徐々に暗くする」を繰り返します。 待ち時間を加えると電子ホタルができそうです。
この様子を表すと次のようになります。
| |||||||||
実験回路 | |||||||||
実験回路は今まで使っていたものをそのまま使用します。 「(4)スイッチでLEDの点滅パターンを変更」でスイッチを追加していてもそのまま使用できます。
| |||||||||
LEDの明るさを序所に変えるには | |||||||||
LEDの明るさを序所に変える考え方は、「(3)LEDの明るさを序所に変える」を参照して下さい。 プログラムは変えていますので、以下を見て下さい。
では、プログラムを作成しましょう。 ONとOFFの割合を序所に変える訳ですが、以下の図を元に説明します。
まず、TMR0割込みを、0.2048mS毎に発生させます。
1サイクルの開始時に、RB0をONにし、「点灯する時間」経過時にOFFにします。 この制御のために以下の3つのカウンタを使用します。
こちらは、メイン処理のフローです。
こちらは、割込み処理のフローです。
| |||||||||
プログラム全体 | |||||||||
上記の処理を組み込んだプログラムはこちらです。 メモ帳などのテキストエディタに取り込んで、LED7.ASMという名で保存し、MPLABでアセンブル&PICライタでPICに書き込んで動かしてみて下さい。
|