0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

自作CPUAdvent Calendar 2022

Day 16

Kageki (TD4互換機) でなんちゃって電子オルガン

Posted at

TD4の命令を実行できる自作CPU「Kageki」で電子オルガンっぽい何かを作ってみた。

仕様

入力ポートの各ビットにHIGHを入力すると、HIGHを入力したビットによって異なる周波数の信号を出力ポートのビット1 (0-origin) に出力する。
音階は保証しない。

プログラム

場所 機械語   アセンブリ言語
-------------------------------
0    00100000       IN  A
1    00001000       ADD A, 1000
2    11100100       JNC NO3
3    11111100       JMP BEEP
4    00000100 NO3:  ADD A, 0100
5    11100111       JNC NO2
6    11111100       JMP BEEP
7    00000010 NO2:  ADD A, 0010
8    11101010       JNC NO1
9    11111100       JMP BEEP
A    00000001 NO1:  ADD A, 0001
B    11100000       JNC START
C    10110010 BEEP: OUT 0010
D    01011000 WAIT: ADD B, 1000
E    11101101       JNC WAIT
F    10110000       OUT 0000

解説

0番地で、入力ポートを読み込む。
1番地~B番地で、HIGHのビットの判定をする。立っているビットによってここの判定に費やすクロック数が変わるため、出力がLOWとなる時間が変わり、出力信号の周波数が変わる。
C番地~F番地で、出力ポートにHIGHを出力する。

実行結果

入力ポートに Pmod BTN を、出力ポートに 2-way Buzzer Board を接続し、10kHzのクロックで実行した。
出力ポートのビット1は 2-way Buzzer Board の manual 端子(音声信号入力)に接続される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?