OAKS16を使用したオルガン
M16C/62のD-A出力機能を使用して、オルガンを作成しました。
”C”から1オクターブ上の”C”の音階で、2和音まで出力できます。
開発環境として、アンカーシステムズ株式会社の統合開発環境AnchorPlace(お試し版)、オークス電子株式会社の
OAKS16-FullKitを使用しました。

1.仕様概要
鍵盤状に配置されているSW2〜SW14を押すことにより、指定周波数の正弦波がD-Aポートにより出力され
ます。
出力された正弦波は、オペアンプを通して、ブザーに出力します。
正弦波の出力方法
波形データをDMACにより転送し、D-A出力を行います。2和音を出力する場合は、DMAC0と
DMAC1を
正弦波形データ
波形データは、下記式にて決定されます。
転送値 = (255/2)sin(2πft) + (255/2)
f:出力したい音の周波数
t:時間(今回は、6.25μS間隔で値を求めました。)
音階と周波数
|
音階 |
C |
C# |
D |
D# |
E |
F |
F# |
G |
G# |
A |
A# |
B |
C |
|
周波数(Hz) |
2096 |
2216 |
2352 |
2488 |
2640 |
2792 |
2960 |
3136 |
3320 |
3520 |
3728 |
3952 |
4192 |
2.部品配置図
|
|
所感
今回のオルガン作成は、当初、アセンブリ言語でプログラムを書き始めました。というのも、C言語なんてものは知らなかった
こういう私が書いたプログラムなので、
DMACによる波形データの転送も、和音を考えるのが面倒だったので、そうしました。
結果的に、2和音という制限事項が
これで勘弁願います。
・回路図
・プログラムソース