スイッチを押すとスピーカから音が出るようにしました。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.出力コネクタにスピーカを接続します。 基板についているLEDとスピーカが負荷になります。 今回は、プログラムの動作確認のためこの状態で動作させました。 PICの出力能力と負荷の関係を考えると、LEDの接続を外し、スピーカ駆動回路を設けます。 |
プログラム(スピーカからの音の出力) |
//---------------------------------------------------------------------------- // 【スピーカからの音の出力】 //---------------------------------------------------------------------------- #include <16f84a.h> // 使用デバイスの定義情報インクルード #fuses HS, NOWDT, NOPROTECT // コンフィグレーション設定 #use delay (clock=20000000) // 発振子の周波数20MHz //---------------------------------------------------------------------------- // I/Oポートの定義 //---------------------------------------------------------------------------- #byte RA = 5 // ポートAのアドレス5番地をRA文字変数 #byte RB = 6 // ポートBのアドレス6番地をRB文字変数 //---------------------------------------------------------------------------- // 音発生の関数 //---------------------------------------------------------------------------- music( int cnt) { byte i; for (i=1;i<5;i++) { RB = 0xff; delay_ms(cnt); RB = 0x00; delay_ms(cnt); } return; } //---------------------------------------------------------------------------- // 音停止の関数 //---------------------------------------------------------------------------- scine() { RB = 0x00; return; } //---------------------------------------------------------------------------- // メイン関数 //---------------------------------------------------------------------------- main() { byte cnt, pushsw; set_tris_a(0xff); // ポートAはすべて入力に設定(1:Input) set_tris_b(0x00); // ポートBはすべて出力に設定(0:Output) RB = 0x00; // 初期状態の点灯 while(1){ // 無限ループで繰り返す pushsw = (~RA & 0x1f); if (pushsw > 0) { cnt = pushsw; music(cnt); } else { scine(); } } } |
平成16年12月12日作成