136kHzCW送信機用にビーコン発生装置を作りましたが、AMやSSB送信機のテストに使えるように、トーン信号が出るようにしました。
CW用ビーコン発生装置のプログラムを少し改造して、キーダウンしている間に別のポートに800Hzくらいのトーン信号を出力するようにしました。
使用したのはPIC 12F683ですが、前回と同様に他のデバイスでもOKです。
今回は改造したプログラムのテストなので、ブレッドボードを使いました。
LEDはキーの代わりに確認用です。
![](https://blogimg.goo.ne.jp/user_image/7e/87/f312916918e9a0910d78360422d4ce49.jpg)
プログラムを解説します。
DLT1とDLT3は、短点と長点を生成するためのループ回数です。
DLTは、トーン信号の半分の長さです。
toneはトーンの半周期の待ちルーチンです。
tone1とtone3で、GPIO.1をON/OFFして短点、長点分のトーンを発生させます。
key1とkey3では、キーダウンしている間にtoneを呼んで、トーンを発生させています。
CW用ビーコン発生装置のプログラムを少し改造して、キーダウンしている間に別のポートに800Hzくらいのトーン信号を出力するようにしました。
使用したのはPIC 12F683ですが、前回と同様に他のデバイスでもOKです。
今回は改造したプログラムのテストなので、ブレッドボードを使いました。
LEDはキーの代わりに確認用です。
![](https://blogimg.goo.ne.jp/user_image/7e/87/f312916918e9a0910d78360422d4ce49.jpg)
プログラムを解説します。
DLT1とDLT3は、短点と長点を生成するためのループ回数です。
DLTは、トーン信号の半分の長さです。
const DLT1 as word = 160 '200ms / 1.25ms(800Hz) = 160 const DLT3 as word = 480 '600ms / 1.25ms(800Hz) = 480 const DLT as word = 625 '800Hz=1.25ms 1250us/2=625us dim i as word
toneはトーンの半周期の待ちルーチンです。
tone1とtone3で、GPIO.1をON/OFFして短点、長点分のトーンを発生させます。
sub procedure tone Delay_us(DLT) end sub sub procedure tone1 for i=1 to DLT1 GPIO.1 = 1 tone GPIO.1 = 0 tone next i end sub sub procedure tone3 for i=1 to DLT3 GPIO.1 = 1 tone GPIO.1 = 0 tone next i end sub
key1とkey3では、キーダウンしている間にtoneを呼んで、トーンを発生させています。
sub procedure key1 GPIO.0 = 1 tone1 GPIO.0 = 0 dly1 end sub sub procedure key3 GPIO.0 = 1 tone3 GPIO.0 = 0 dly1 end sub