スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PWMで音を鳴らす 第三弾

どうもです。

あれから、例の試作プログラムを少し弄って、短くて簡単な曲くらいなら演奏できるようにしてみました。

と言っても、音階ごとにサブルーチンを作って、メインルーチンで並べるってだけですけどね^^;

もちろん、音階を増やしたり、結構応用が利くので、しばらくはこいつを弄り倒したいと思います(笑)



~~余談~~

BASIC言語、最強ですね(笑)
同じプログラムをC言語で書こうとすると、挫折すると思います。それをここまで簡単にこなしてくれるのも、MikroBASICのお陰です。これからも愛用していきます。



とりあえず、プログラム載せておきます。

※これは、16F648Aを2MHz作動させてるので、Delay関数で入力した値の半分が実際の時間になります。


program PWM_Music

sub procedure s

Pwm_Stop

end sub


sub procedure do1

Pwm_Init(220)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure re

Pwm_Init(246)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure mi

Pwm_Init(277)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure fa

Pwm_Init(293)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure so

Pwm_Init(329)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure ra

Pwm_Init(369)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure si

Pwm_Init(415)
Pwm_Change_Duty(50)
Pwm_Start

end sub


sub procedure do2

Pwm_Init(440)
Pwm_Change_Duty(50)
Pwm_Start

end sub


main:

CMCON = 0x07
TRISB.3 = 0
PORTB.3 = 0
CCP1CON = 0x0C
T2CON.2 = 1


while true

※ここに音階を入力
(例)
do1
delay_ms(2000)
s


wend


end.
スポンサーサイト

テーマ : 電子工作
ジャンル : 趣味・実用

コメント

Secret

FC2カウンター
プロフィール
名前:どじょりん
年齢:18歳
埼玉県所沢市在住
2014/4から新社会人
常に金欠

どじょりん

最新記事
カテゴリ
月別アーカイブ
最新コメント
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。