最終更新日2004年2月3日
Last update 10,4,2000

有限会社レック制御
1998年7月7日


有限会社レック制御         HOME(レック制御の総合HP)
大阪府岸和田市田治米町63
tel:0724−43−0845

PIC_BUILDER2はマイクロチップ社のマイクロコントローラー
PIC16F84A/F84/F83/C84/5Xに特化した
コンパイラー言語で、構造化Basicに似た制御系に向く言語です。

※本製品は現在生産を中止しております。

★無償提供版は、20行下にあります。

PIC_BUILDER2.5 for Windows95/98/ME
(本体プログラム CD−ROMにて提供。DOS/V機用)

LEPro for Windows95/98/ME
(PICへの書き込み装置です。DOS/V機用)

PIC評価基板 for Windows95/98/ME
(PICの習得に便利な装置です。DOS/V機用)

始めてPICを扱うのであれば上記3点をセットにした、次の商品が便利です。
PICマスター for Windows95/98/ME
(商品到着後すぐにPICを実行できます)


このホームページは本製品を上から下へリンクなしで、詳細に、
順番に説明しています。
一度印刷してからゆっくりと内容を確認願います。


CQ出版社トランジスタ技術誌(99年6月号)MyTools掲載
PIC_BUILDER2.2Tのダウンロード(無償提供版)
http://www.lec21.com/6/pic_builder22t.lzh(終了しました)
(2.10MB)

最新版:PIC_BUILDER2.42のダウンロード
(無償提供版)
http://www.lec21.com/6/pic_builder242.lzh(2.2Tをバージョンアップ)
(2.69MB)


注意事項(必ず読んでください)
1:pic_builder242.lzhをダウンロードし、それぞれ解凍後、
  FD3枚にコピーしてからコンピューターにインストールします。

2:インストール後はPIC_BUILDER2.42を起動し、
  扱い方はヘルプを参考にしてください。
  ★簡単な操作方法:
         @「ファイルの選択」を押す。
         A「AD08(F84).RTF」を選択し、「開く」を押す。
         B「8X構築」を押す。コンパイルが始まります。
         C コンパイルが終わると、C:\PIC_BUILDER_ASM\0004.ASM が生成します。
         D この 0004.ASM をMPLAB/MPASMでアセンブルし、ライターでPICに書き込みます。
           (アセンブルと書き込み手順は、HELPで説明しています)
         E PICに電源を入れ、動作確認します。
  ※AD08(F84).RTF はAD変換ICからデータを受信し、このデータをRS232C信号に変換し、
   パソコンへ伝送するプログラムです。雛型としては最適です。
   その他、数十種の雛型プログラムが入っています。

3:無償提供版PIC_BUILDER2.42は、
  マイクロチップ社製のMPLAB/MPASMが必要です。
  またPICライター
(DevelopmentProgrammer)が必要です。
  もしくは弊社製PICライター
(LEPro)が必要です。
  お持ちでない場合は弊社まで連絡下さい。
  (MPLAB/MPASMとLEProのプログラムは、
   インターネットから無償でダウンロードが受けられます。
   アドレスとダウンロード方法は、
   PIC_BUILDER2.42のHELPにて詳細に説明しています。)

4:無償提供版PIC_BUILDER2.42には使用期限や
  機能制約などはありません。

5:無償提供版STPGD for Win95/98 のダウンロード
(現在休止中です)

http://www.lec21.com/6/stpgd.zip(バージョンアップ作業中)

  このプログラムを使うにはPIC評価基板が必要です。



本製品はマイコンを初めて使用するエンジニアから
プロフェッショナルまで幅広く扱えます。
Basic言語が扱えるエンジニアであれば誰でも使用でき、
軽快なプログラミングが可能です。

インタープリタやランタイムパッケージ構造ではなく、
自動サブルーチン生成と最適化連結構造なので、
プログラムメモリーの消費は少なく、また超高速実行です。

F84A/F84/F83/C84の場合はプログラムメモリーを
フラットな空間として利用します。
5Xの場合はGOTO文の、Page間ジャンプを意識する必要はありません。
自動的にPageを認識し、最適なGOTO文を生成します。
またCALL文も便利なVCALLやFCALLを備え万全です。

RS232C送受信命令や、
A/D・D/A変換器接続命令、
ステッピングモーター駆動命令、
LCD表示器駆動命令など、特殊命令が豊富です。
もちろん、算術演算命令や割込命令も揃っています。

高機能シーケンサーの超低価格版としての応用や、プログラマブルアナログ回路、
ロジック回路の置き換えなど、応用は多岐に渡ります。
アセンブラ言語が苦手なエンジニアも、マイクロコントローラーを容易に扱えるようにします。
便利な、LCD駆動命令やステッピングモーター駆動命令など特殊命令も豊富です。


←このボタンを押して、
会社名・担当者名・電話番号・EMAILアドレスを記入後、
連絡願います。弊社から案内致します。

有限会社レック制御         HOME(レック制御の総合HP)
大阪府岸和田市田治米町63
tel:0724−43−0845


***PIC_BUILDER2 命令語一覧(抜粋)***
豊富なビット・バイト・ワード命令と、プラス・マイナス値の符号処理も行え、
また、外部機器の制御を容易にする特殊命令が多数用意されています。

★四則演算命令
★シフト/ローテイト命令
★論理演算命令
★ビットのセット/リセット命令
SpecialFunctionReg操作命令
★タイマー/カウンター命令
★表示機器操作関連命令
★ボリューム位置を分解能8ビット相当で、
わずか1本の入出力ポートから取得する命令
★割込処理命令
★インクリメント/デクリメント命令
★NEGATE命令
★PROTECT命令
★条件分岐(IF)命令群
★BCD変換/BIN変換命令
★CALLサブルーチン呼び出し命令
★液晶表示装置駆動命令
★4相ステッピングモーターを駆動する命令
★RS232C送受信命令
★その他多数あり
 

***PIC_BUILDER2***

特徴
PIC_BUILDER2はマイクロチップ社の
PICデバイスに特化したコンパイラー言語で、
構造化Basicに似た制御系に向く言語です。
インタープリタ構造ではなく、自動サブルーチン生成と最適化連結構造なので、
プログラムメモリーの消費は少なく、また超高速実行です。
豊富なビット・バイト・ワード命令と、プラス・マイナス値の符号処理も行え、
また、外部機器の制御を容易にする、特殊命令が用意されています。

1ビット型・8ビット型・16ビット型多数用意。
プログラムメモリーとレジスタ本数が少ないPICデバイスを効率よくサポートする
コンパイラー言語なので、かなり大きなプログラムでかつ高度な処理が実現可能です。
自動的にサブルーチンが連結され、必要に応じて呼び出す構成を取るため、
コンパクトにプログラムメモリーをまとめます。
「こんな小さなマイコンに、ここまで複雑な動作ができるのか!」と驚嘆されることでしょう。

特定の基板や構成に、制約を受けません。
使用するPIC種の指定や、プロセッサークロックの指定、入出力ポートの指定が自由に行え、
またそれに対応できる、コンパイラー言語なので、ユーザーが設計した構成に、柔軟に対応します。

デバッグを容易にする、オプションの
MEMORY_READERをパソコンに接続すれば、
開発中のPICデバイスのレジスタの動きを
パソコン上でモニターできます。開発中のPICデバイスの
1つのポートに接続する事により10Kbpsでモニターします。
マイクロチップ社の高価なICEのように高度な
サポートはできませんが、
MEMORY_READERは安価な装置で、
必要な情報を開発者に提供できます。
使用可能なPICデバイスは、
PIC16F84A/F84/F83/C84、
PIC16C54/54A/55/56/57/58Aであり、
開発時は窓付きデバイスを使用します。
プログラムの消去には、別途ROMイレーサーが必要です。
★クロックは4〜20MHz、電源は5Vで使用しましょう。

使用可能なPICデバイスは、
PIC16F84A/F84/F83/C84、
PIC16C54,54A,55,56,57,58Aであり、
開発時は窓付きデバイスを使用します。
プログラムの消去には、別途ROMイレーサーが必要です。
F84A/F84/F83/C84は、不揮発性メモリーなので、
プログラムの消去と書き込みが迅速に行え、ROMイレーサーも不要です。

液晶表示デバイス(LCD)を駆動するドライブプログラムを内蔵しており、
レジスタの代入感覚で使用できる環境を提供します。使用可能なLCDは、オプトレックス製
16文字2行:DMC16230か相当品、16文字1行:DMC16105か相当品 です。
相当品は、日立液晶コントローラーHD44780を使用した製品。

PIC_BUILDER2はエディター上で作成されたプログラムをコンパイルし、
マイクロチップ社のMPASMでアセンブル可能なASMファイルを生成します。
PIC_BUILDER2はMPASMとの併用運転が必要です。
しかしMPASMは無償で最新版をダウンロードできます。

デバイス(PIC)への書き込みは、
LEProで行えます。ただし全てのデバイスをサポートしておらず、
とくに5Xには書き込めません。
推奨は
F84A/F84/F83/C84です。
もし全てのデバイスを対象にしたいのであれば、
もっとも安価なMPLABシリーズの、PIC START Plus が別途必要です。
プログラムの書き込みに必要なDEVELOPMENT PROGRAMMER は
PIC START Plus に付属しています。

LEProとMEMORY_READERのパソコンへの接続方法。
LEProは標準プリンターポートへ接続します。
MEMORY_READERもプリンターポートへ接続して使用します。
通常プリンターポートをつなぎ替えて使用します。
この構成は、ほとんどのパソコンに接続でき、
インターフェースボードを必要としない安価な方法です。

使用可能なパソコンはDOS/V機です。ペンティアム90MHz以上で、
Cドライブ(HD)は15MBの開き容量が必要です。
OSは、Windows95/98です。


PIC_BUILDER2 for Windows95/98





価格表

PIC_BUILDER2 for Windows95/98/ME
(本体プログラム 1.44M 3.5インチFDにて提供。DOS/V機用)
<<内容物>>
プログラムFD 1式
説明書 1式
回路集 1式
購入者には期限なしで無償サポートが受けられます。 

LEPro for Windows95/98/ME
(PICへの書き込み装置です。DOS/V機用)

電源は乾電池(006P)です。裏面に設置。
プリンターポートに接続して使います。
<<内容物>>
本装置 1台
説明書 1式

PIC評価基板 for Windows95/98/ME
(PICの習得に便利な装置です。DOS/V機用)

<<機能>>
12bit8chA/D変換器
RS232C
トランジスタ出力
CNT入力
LED
ボリューム入力
 <<内容物>>
 本装置 1台
 サンプルプログラムFD 1式
 説明書 1式
 PIC16F84 1個
 RS232Cケーブル 1本
 ACアダプタ 1台
 ステッピングモーター 1台



始めてPICを扱うのであれば上記3点をセットにした、次の商品が便利です。
PICマスター for Windows95/98/ME


MEMORY_READER
(PICデバイスのレジスタの動きをモニターする装置です。DOS/V機用)



プリンターポートに接続して使います。
<<内容物>>
本装置 1台
説明書 1式


PRN.CNはプリンターポートに接続。PWR.LINEはAC100Vコンセントへ。
PWR.LINEコードは約2m付き。V1,T1コードは約60cmで
ICテストクリップ付き。プリンターケーブルは付属していません。


PIC START Plus
(全てのデバイスを対象にしたい場合に必要です。
PIC STARTPlusはアセンブラーとライターのセットです。)


ROMイレーサー(Sunhayato:RE−908)
(ROMイレーサーをお持ちでない方は必要です。窓付きPICデバイスに
書き込まれたプログラムを消去する場合に使います)




プログラム例
以下に示す構造の、2種ペレット混合機を例に解説します。

AペレットはAバルブの開にて落とし込めます。BペレットはBバルブの開にて落とし込めます。
またバルブはロータリーモーター式で1粒づつ高速に落とし込めます。

ペレットカウントセンサーは、落ちてきたペレットがあればON、
なければOFFの状態を出力します。

制御動作は、運転ボタンを押すと、運転ランプを点灯し、
Aバルブを開いて、Aペレットを1200個注入します。
続いて、Aバルブを閉め、Bバルブを開いて、
AB合計で2120個になるまでBペレットを注入し、運転ランプを消して終了です。


この動作をプログラム化すると次のようになります。

入力 port_C[1]:運転ボタン port_C[0]:ペレットカウント信号
出力 port_B[0]:運転ランプ port_B[1]:Aペレット port_B[2]:Bペレット      
if(port_C[1]_upe_H80[1])/L1       ;運転ボタンのアップエッジ検出
  A16=0                ;ペレットカウンターのクリア
  set port_B[0]            ;運転ランプ ON
  set port_B[1]            ;Aペレット ON

L1: if(port_B[0]_ON)/L3         ;運転状態比較。OFFならL3へ。

    if(port_C[0]_upe_H80[0])/L3   ;ペレットカウント信号の
アップエッジにて、
      A16=[+1]           ;ペレットカウンターのインクリメント 
      if(A16>=2120)/L2       ;2120カウントにて、
        rst port_B[2]      ;Bペレット OFF
        rst port_B[0]      ;運転ランプ OFF
        goto L3

L2:   if(A16>=1200)/L3         ;1200カウントにて、
      rst port_B[1]        ;Aペレット OFF
      set port_B[2]        ;Bペレット ON
L3:                   ;なにも書かなければ自動的に先頭行へ移行。
構造化Basic的な記述ができ理解しやすい。Basic言語に少しでも理解があれば、
あるいは少し学習すれば、プログラミングが可能。
当然、アセンブラ言語を知っているエンジニアであれば簡単にプログラミングができます。
命令語の記述形態を長めにしてあるので、高級感のあるプログラムが書けます。



命令語の簡単な説明
(書き方は、大文字でも小文字でもその複合でも問題ありません。
 本説明文では読みやすいように大文字で書いております。)
四則演算命令
8ビット型、16ビット型を用意。
使用例の一部を以下に示します。
A16=A16+1234d
A16=A16−B16
A32=A16*B81
A32=A32/A16
A83=A83+E81
A80=A80−76d
A16=A82*B80
A16=A16/B80

インクリメント/デクリメント命令
8ビット型、16ビット型を用意。
使用例の一部を以下に示します。
A80=[+1]
A16=[−1]

シフト/ローテイト命令
8ビット型、16ビット型を用意。
使用例の一部を以下に示します。
 符号付き左シフトの例
A16=S14TO16(A16)
 符号なし右シフトの例
A16=16TO11(A16)

NEGATE命令
数値を−1倍にする命令を備えています。

PROTECT命令
アナログ回路の場合、電源電圧の制約で
制御された電圧の変化には上限と下限があります。
デジタル回路の場合は電源電圧の制約は受けないので
比較命令で制限しなければ、際限なく増減してしまいます。
この増減に上限値/下限値を設定し、値の変化を保護する命令です。

論理演算命令
AND・OR・XOR等の論理演算命令を備えています。

条件分岐(IF)命令群
8ビット型、16ビット型を用意。
 ★数値の比較
  使用例の一部を以下に示します。
IFNP(A16=B16)TRUE/
IFNP(A16=0AEFh)/FALSE

 ★ビットの比較
  PORTのON/OFF、
  PORTのアップエッジ/ダウンエッジ、
  チャタリング吸収型比較を用意。
  使用例の一部を以下に示します。
IF(PORT_B[4]_UPE_H80[4])/FALSE

ビットのセット/リセット命令
指定ビットをON/OFFする命令です。

BCD変換/BIN変換命令
7セグメントLEDに10進数値を表示したり、
デジSWからの入力値を16進数値に変換する場合に便利です。

SpecialFunctionReg操作命令
PICデバイスの特殊レジスタ操作命令です。

タイマー/カウンター命令
タイマー命令は、
経過時間後に、指定プログラムを実行可能にする命令。
カウンター命令は、
ポートのON/OFFや、フラグのON/OFF回数を
カウントし、指定カウント数に達すると、
指定プログラムを実行可能にする命令。
マルチスレッド動作で、
例えばタイマー命令が実行され、経過時間を計測中であっても、
他のプログラムは走っており、円滑な流れを実現します。

CALLサブルーチン呼び出し命令
FCALL命令の場合、PICベースラインデバイスの
CALL命令ネスティングレベル2の制約を超えた、
ネスティングレベル4を実現できます。

表示機器操作関連命令
液晶表示装置の操作を容易にする命令。
STB命令は7SegLED表示装置に応用できます。

特殊命令(抜粋)
1:デジSW入力命令
2:複数のデジSWのダイナミック入力命令
3:LED発光デバイスを、オーディオの音量インディケーター的
  なバー表示を行う命令。使用例の一部を以下に示します。
LEDBAR_PORT_C[0]_A80
4:指定された入出力ポートに、
  ボリュームと簡単な外付け回路を接続すれば、ボリューム位置を分解能8ビット相当で、
  わずか1本の入出力ポートから取得できる命令。使用例の一部を以下に示します。
A80=VRPORT_A[2]
5:マキシムA/D変換器MAX188をシリアル通信にて、
  バイポーラモード/ユニポーラモードで読みとる命令。
  (MAX188は弊社で取り扱っています)
6:マキシムD/A変換器MAX532をシリアル通信にて、
  ユニポーラモード/バイポーラモードで出力する命令。
  (MAX532は弊社で取り扱っています)
7:4相ステッピングモーターを駆動する命令。
  以下に示す3つのモードが選択でき、最大4軸までサポートしています。
  ★1−2相励磁モード
 (2分の1ステップで、モーターステップ数が2倍になります)
  ★2相励磁モード
 (通常の駆動方法です)
  ★1相励磁モード
(消費電力を抑えた駆動方法です)
8:プログラムメモリーに書き込まれたデータテーブルを、
  指定レジスタで指定される番号のデータを取り出す命令。
  7SegLED表示器のパターンや、サーミスタ温度の校正データなどに、応用できます。
  使用例の一部を以下に示します。
A80=TABLE(C80)
9:PORTn,m からの1線式シルアル出力命令。
  MEMORY_READERとの専用通信命令です。
  約10Kbpsで22バイトのレジスタを、MEMORY_READERへ送信します。
  使用例の一部を以下に示します。
TRANS_PORT_B[1]
10:RS232C送受信命令。
  標準COMに適合したRS232C送受信命令です。
11:割込処理命令。
  割込処理が簡単に行えます。


レジスタ数について
PIC16F84A/F84は68byte、
PIC16F83/C84は36byte、
PIC16C54、54A,55,56 は25byte
PIC16C57 は72byte
PIC16C58A は73byte

プログラムメモリーについて
PIC16F84A/84/C84は1Kwords、
PIC16F83は512words、
PIC16C54、54A,55 は512words
PIC16C56 は1Kwords
PIC16C57,58A は2Kwords

PIC_BUILDER2で、開発中の様子。
(構造化ライクに記述できます)



★構成と特徴
PIC_BUILDERは、
マイクロチップ社のマイクロコントローラー用に開発された
コンパイラー言語です。
PIC_BUILDERは、構造化BASICライクな言語であり、
また、制御系に向く言語構成になっています。
PIC_BUILDERは、PICに特化したASMファイルを
生成しMPASMにて最終的な機械語に翻訳され、デバイスに書き込まれます。
PIC_BUILDERはMEMORY_READERを通して、
ターゲットデバイスのレジスタの動きをパソコン上にてモニターできます。
これにより、プログラムのデバッグが容易になります。


★インストール
MPLABとPIC_BUILDERのインストールと作業領域に必要な
Cドライブ(ハードディスク)開き容量の合計は、最低15MByteです。
インストール方法の解説書を参考に、インストールを行います。


★最初の一歩
インストール作業が終われば、PIC_BUILDERを起動し、ヘルプを立ち上げます。
この中にある「最初の一歩」を最初のアプリケーションとして作成しながら
PIC_BUILDERの操作やプログラムの記述方法を具体的に修得できます。



***PICマイコンの外観***

CPUとROM、RAM、WDTが内蔵されており、外付け部品はわずかで済みます。
クロックは最高20MHzで高速実行。
通常はマイクロチップ社のアセンブラ言語でプログラミングしますが、
PIC_BUILDER2を使えば、
Basic感覚にプログラミングできます。

窓付きタイプは何度でも消去と書き込みができ、窓無しタイプは一回だけ書き込める低価格品です。
F84Aは最高20MHz動作、
F84/F83/C84は、最高10MHz動作で、
不揮発性メモリーによりプログラムの書き込みと消去が迅速に行えるデバイスです。


CPU構造解説
PICマイクロコントローラーは、RISCタイプのCPUで、ワンチップに、
CPU+プログラムEPROM+データRAM+OSC+WDT+TMR+入出力ポートを
内蔵しています。

★耐ノイズ性
CPUからのBUSが外部にでることはなく、極めてノイズに強い構造でさらに、
命令とデータを同時に読み込み実行できるため処理は高速です。また、過大なノイズにて
万が一CPUが暴走したとしても、命令とデータを一対として実行が始まるので、
安定したWDTリフレッシュが期待できます。


通常のCPU(命令とデータを交互に読みとり実行)

0024 
0025
0026
0027
0028
0029
命令
データ 
命令
データ
命令
データ
← 過大なノイズでプログラムカウンタが狂い
  データを命令として実行してしまう可能性があり、
  さらに複雑な暴走をきたす。



PICマイコンCPU(命令とデータを同時に実行)

0024 
0025 
0026
0027
0028
0029
命令 
命令 
命令 
命令 
命令 
命令
データ 
データ 
データ 
データ 
データ 
データ
← 過大なノイズでプログラムカウンタが狂ったと
  しても、データを命令として実行することはない。
  そのため、WDTリフレッシュに至る可能性は高く、
  安定した動作が期待できる。

←このボタンを押して、
会社名・担当者名・電話番号・EMAILアドレスを記入後、
連絡願います。弊社から案内致します。

有限会社レック制御         HOME(レック制御の総合HP)
大阪府岸和田市田治米町63
tel:0724−43−0845