![]()
スイッチを押すとスピーカから音が出るようにしました。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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日作成