AMCG1 モールス符号発生プログラミングライブラリ添付資料
AMCG1-R104
本製品は、罠用発信器の制御と、モールス符号の発生を行うマイコンのプログラムを容易に作成する為のプログラミングライブラリです。本製品は、 フリーソフトウェアですのでご自由にお使い下さい。 本製品が正常に動作しなかった事による損害は補償されません。
1. 対応するハードウェア
本製品はAWDC29及びAWDE29基板とそれらの互換基板、マイクロチップ社PICマイコンに対応しています。詳細は以下の表のとおりです。(AWDC29とAWDD29とは送信器の出力が若干異なるだけで、マイコンのプログラムは同じです。)
基板 マイコン AWDC29
AWDD29PIC12C509 PIC12F629 PIC12F675 AWDE29 PIC12C509 PIC12F629
2. 対応するアセンブラ
マイクロチップ社のMPLABをお使い下さい。
->MPLAB IDE Archivesサンプルのバッチファイル(build.bat)を試してみてうまくいかない場合には、「MPLAB IDE v5.70.40」をインストールしてみて下さい。
3. 対応する書込みソフト
2. 各ファイルの説明
amcg1.inc モールス符号を記述する為のマクロが定義されているインクルートファイルです。 amcg1.asm amcg1.incを利用したプログラムを作る為のスケルトンプログラムです。 AM_*.HEX アセンブル済みのプログラムです。そのまま書込みソフトに読み込めます。 AM_*.ASM ソースです。 build.bat ソースを全てアセンブルする為のバッチファイルのサンプルです。 amcg1.txt amcg1.incで内部的に使われてるマクロ等の簡単な説明です。 readme.html 本製品の添付資料です。
基板やマイコンによってプログラムのソース(inc、asm)やオブジェクトコード(HEX)が異なります。それらに対応するファイルのセットは別々のサブフォルダに格納されています。
基板 フォルダ マイコン AWDC29
AWDD29C 12C509 PIC12C509 12F629 PIC12F629 12F675 PIC12F675 AWDE29 E 12C509 PIC12C509 12F629 PIC12F629
5. モールス符号用定義済みマクロの一覧
AWDC29、AWDE29共通 マクロ 符号 マクロ 符号 マクロ 符号 マクロ 符号 AM_A A AM_N N AM_1 1 AM_QUE ? AM_B B AM_O O AM_2 2 AM_DAS ' AM_C C AM_P P AM_3 3 AM_HYP - AM_D D AM_Q Q AM_4 4 AM_LBR ( AM_E E AM_R R AM_5 5 AM_RBR ) AM_F F AM_S S AM_6 6 AM_SLA / AM_G G AM_T T AM_7 7 AM_EQU = AM_H H AM_U U AM_8 8 AM_PLU + AM_I I AM_V V AM_9 9 AM_QUO " AM_J J AM_W W AM_0 0 ADOT 点 AM_K K AM_X X AM_PER . ADAS 線 AM_L L AM_Y Y AM_COM , AWS2 二符号の間隔 AM_M M AM_Z Z AM_COL : AWS6 二語の間隔 AWDE29のみ マクロ 説明 AMI1 送信間隔を4.6秒にする。 AMI2 送信間隔を9.2秒にする。 AMI3 送信間隔を18.6秒にする。 AMS0 データ速度を「遅い」にする。 AMS1 データ速度を「速い」にする。
6. 一文字だけのモールス符号を発生させる場合
AM_*.HEXの中から発生させたい符号の物を選んで、マイコンに書込んで下さい。これらのファイルは、マクロがそのままファイル名となっています。
7. 複数の文字を含むモールス符号を発生させる場合
7.1. amcg1.incとamcg1.asmを任意のフォルダにコピーします。この時、この二つのファイルが同じフォルダに存在する様にして下さい。
7.2. amcg1.asmをテキストエディタで開きます。AWDC29とAWDE29とでは若干異なるので、以下ではそれぞれの場合を示します。
AWDC29の場合 AWDE29の場合 INCLUDE "AMCG1.INC"
ORG 0
AM_STA
AM_END
END
INCLUDE "AMCG1.INC"
ORG 0
AM_STA
AMI1
AMS1
AM_END
END
7.3. AM_STAとAM_ENDとの間に、発生させたい符合に対応するマクロを挿入します。マクロは、一行に一つづつ書く事ができます。例として、「SOS SOS」としたい場合には以下に様にします。
AWDC29の場合 AWDE29の場合 INCLUDE "AMCG1.INC"
ORG 0
AM_STAAM_S
AM_O
AM_S
AWS6
AM_S
AM_O
AM_S
AM_END
END
INCLUDE "AMCG1.INC"
ORG 0
AM_STA
AMI1
AMS1
AM_S
AM_O
AM_S
AWS6
AM_S
AM_O
AM_S
AM_END
END
7.4. amcg1.asmの編集結果を保存し、MPLABに含まれるMPASMWIN等を使ってamcg1.asmをアセンブルします。MPASMWINの場合には、Source File Nameにamcg1.asmのフルパスをセットし、Assembleボタンを押すだけで簡単にアセンブルできるかと思います。
7.5. アセンブルした結果出てきたAMCG1.HEXを、マイコンに書込んで下さい。
7.6. amcg1.asmは任意の分かりやすい名前にリネーム(たとえば、SOS.ASM)しておくと便利です。
8. その他
8.1. マクロADOT,ADAS,AWS2を使えば、点と線と間隔を使って、任意の符号作る事が出来ます。また、任意の長さの線や間隔を生成するには、amcg1.txtのサブルーチンAMMGT,AMMGWの説明を参考にして下さい。
8.2. 定義済みのマクロを使って符号を記述する場合、挿入したマクロの数が20個を超えるとアセンブルできない場合があります。
8.3. AWDE29の場合、マクロAMI1とAMS1を入れる位置は「7. 複数の文字を含むモールス符号を発生させる場合」で示されている位置でなければなりません。そのまま、AMIやAMSの後の数字を変えることによって、送信間隔やデータ速度を変えることができます。
AMCG1 2002-2009 by あけび猫
http://nyan.co.uk/wana/2.html