OAKS16を使用したオルガン

 

M16C/62のD-A出力機能を使用して、オルガンを作成しました。 

”C”から1オクターブ上の”C”の音階で、2和音まで出力できます。

開発環境としてアンカーシステムズ株式会社の統合開発環境AnchorPlace(お試し版)、オークス電子株式会社の

OAKS16-FullKitを使用しました。

 

 

 

1.仕様概要

鍵盤状に配置されているSW2〜SW14を押すことにより、指定周波数の正弦波がD-Aポートにより出力され

ます。

出力された正弦波は、オペアンプを通して、ブザーに出力します。

 

正弦波の出力方法

波形データをDMACにより転送し、D-A出力を行います。2和音を出力する場合は、DMAC0と

DMAC1を使用して、それぞれの転送データを、足し合わせ、2で割った値を、D-A出力します。

 

正弦波形データ

波形データは、下記式にて決定されます。

                  転送値 = (255/2)sin(2πft) + (255/2)

f:出力したい音の周波数

t:時間(今回は、6.25μS間隔で値を求めました。)

 音階と周波数

       

音階

C#

D#

F#

G#

A#

周波数(Hz)

2096

2216

2352

2488

2640

2792

2960

3136

3320

3520

3728

3952

4192

 

 

2.部品配置図

 

 

 

 

所感

 

今回のオルガン作成は、当初、アセンブリ言語でプログラムを書き始めました。というのも、C言語なんてものは知らなかったからです。そういった状況の中、優れた開発環境の中で、何とか完成に至りました。

こういう私が書いたプログラムなので、細かいことは気にしないでください。突っ込まないでください。

 

DMACによる波形データの転送も、和音を考えるのが面倒だったので、そうしました。

結果的に、2和音という制限事項がついてしましました。本当は、もっと良い方法があるのでしょうが、

これで勘弁願います。

 

回路図

 

・プログラムソース

  organ.exe

 

 

 

 

 

戻る→ OAKS16応用事例  OAKS16トップ  ホーム