【 取り扱い説明書 】
Flash PIC には、まだたくさんのバグが残っている可能性があります。見つけ次第修整していきます。
不運にもバグに遭遇されました折にはぜひデジタル降魔録にあるBBS等でお知らせください。
Flash PICのページへ戻る
勝手にQ&Aへ戻る
デジタル降魔録のトップページへ戻る
【 目次 】
基板上に載っているPICは仮想のものでFPIC16F999という型番ですが、命令は14ビット語長
のPICに準拠しています。
28ピンデバイスで、7ビットの入出力ポートAと、8ビットの入出力ポートB、Cを持っています。
残りのピンは電源とクロック・リセットピンです。
アドレス | レジスタ名 | 説明 |
0x00 | INDF | 間接アドレス用 |
0x01 | TMR0 | タイマー0(現在準備中) |
0x02 | PCL | プログラムカウンタの下位8ビット |
0x03 | STATUS | 演算結果のフラグ(Zerro=bit2 とCarry=bit0しかありません) |
0x04 | FSR | 間接アドレス設定用 |
0x05 | TRIS_A | ポートAの入出力設定用(1:入力ポート 0:出力ポート) |
0x06 | TRIS_B | ポートBの入出力設定用(1:入力ポート 0:出力ポート) |
0x07 | TRIS_C | ポートCの入出力設定用(1:入力ポート 0:出力ポート) |
0x08 | PORT_A | ポートAの内容 |
0x09 | PORT_B | ポートBの内容 |
0x0A | PORT_C | ポートCの内容 |
トレーニングボード1には8個のLEDと1個の7セグメント表示器、1個の押しボタンスイッチが基板上にあります。
さらに、外部機器として〝ちきどん〟というACモータで回転するユニットが接続されています。
〝ちきどん〟には回転歯車に4個のマイクロスイッチが取り付けられており、スティックが当るとそのマイクロスイッチがONになります。これらはトレーニングボードのPICに配線されていますのでプログラムでスキャンできます。
また、〝ちきどん〟を作動させるためのリレーがトレーニングボード上にあり、〝ちきどん〟の回転のON/OFFがコントロールできます。
各ポートの接続先は
ポートA0(入力)→基板上の押しボタンスイッチ
ポートA1~A4(入力)→〝ちきどん〟に取り付けられているマイクロスイッチ1~4
ポートA5(入力)→未使用
ポートA6(出力)→〝ちきどん〟をON/OFFさせているリレーへ(0でリレーがONになり〝ちきどん〟が動きます)
ポートB0(出力)→7セグメント表示器のセグメント〝a〟
ポートB1(出力)→7セグメント表示器のセグメント〝b〟
ポートB2(出力)→7セグメント表示器のセグメント〝c〟
ポートB3(出力)→7セグメント表示器のセグメント〝d〟
ポートB4(出力)→7セグメント表示器のセグメント〝e〟
ポートB5(出力)→7セグメント表示器のセグメント〝f〟
ポートB6(出力)→7セグメント表示器のセグメント〝g〟
ポートB7(出力)→7セグメント表示器のセグメント〝Dp〟
すべて1で点灯します
ポートC0~C7(出力)→LED0~7
すべて1で点灯します
ボード1の回路図
トレーニングボード2には7セグメント表示器が8個と、押しボタンスイッチが20個搭載されています。
8個の7セグメント表示器を表示させるには、通常ダイナミック点灯方式で回路を組みますが、Flash PICではあまりにも速度が遅いため、この方式では点滅してしまい正しく表示できません。
そこでコスト高になりますが、汎用 ICの74LS374を8個使ったスタティック点灯方式にしました。
74LS273でも同じ回路を作れますが、出力電流が10mAも取れないので、24mAほど流せる74LS374を使用しました。
このあたりは現実的に本気でこだわってますが、マジでこんな回路を仕事場で組んだら「バカもの!」と叱られます。
でも、Flash PICでは何個部品を使おうとタダです。絵ですからね(笑)
20個のスイッチは簡単なキーボードとして機能します。
イメージとしては、0~15のスイッチは16進を入力、16~19は〝RUN〟〝CLR〟〝CAN〟〝SET〟キーとして刻印が打ってありますが、プログラム次第では汎用キーとして利用できます。
20個のスイッチはダイナミックスキャン方式で読み取ります。この方式もPICの速度が要求されますが、人間がマウスでボタンを押す動作はかなりゆっくりです。7セグメント表示器ほどの速度は要求されませんが、それでも10倍速ほどに上げないと、長いあいだマウスで押しておかないと反応しません。
ダイナミックスキャンの具体的な方法は下記の〝●キーボードをダイナミックスキャンする方法〟かトレーニングボード2のサンプルプログラムの1番を実行してみてください。
●各桁の表示器へのアクセス方法
① 書き込みたい表示データをポートCへ載せます。データ構成は点灯するビットを〝0〟とします。
② 書き込みたい桁のアドレス(0~7番)のデータをPB1,2,3へ出力します。
③ PB0をLoにして、すぐHiにしますと、アドレスで選んだラッチ回路にポートCのデータが書き込まれて表示器が点灯します。
※リセット直後はデタラメなデータが表示されますので初期設定でクリアする必要があります。
●キーボードをダイナミックスキャンする方法
① キーグループ(PB4~PB7)を順にLoにするスキャンループ処理を作ります。
② スキャンループの中でキービットデータ(PA0~PA4)を随時読み取り、Loのビットがあった場合キーが押されています。
③ そのときのキーグループとキービットデータのLoになっているビットから押されたキーを特定します。
※詳しくはトレーニングボード2のサンプルプログラムの1番を読み込んでソースプログラムをご覧ください。
ダイナミックスキャンは常にスキャンし続ける必要があり、スキャン処理にかなりのCPUパワーを使われますので、Flash PICの速度は10倍速以上にする必要があります。速度が遅いとキーの反応が悪くなります。
ボード2の回路図
Flash PICはトレーニングボードですので、そのままでは何も動きません。実際にプログラムを書いて、基板上のものをコントロールしてPICプログラムの勉強をしようとするものです。
サンプルプログラムを数点用意しましたが、これも読み込むだけでは動きません。読み込んだプログラムをPICの理解するマシン語にアセンブルして転送してやる必要があります。
実際にサンプルプログラムを読み込んで動くようになるまでの工程を紹介します。
サンプルプログラム3を読み込んで動かしてみます。
〝ちきどん〟の装備されているトレーニングボード1を選んで、SAMPLEボタンを押しサンプル一覧の中から
3つ目の〝7セグメント表示器の中をグルグル廻します〟を選びます。
ソースプログラムがソースウインドウに読み込まれましたので、編集ボタンを押して編集画面を出します。
ソースウインドウに読み込まれたソースプログラムが表示されています。
このままではソースプログラムを読み込んだだけで、プログラムエリアにアセンブルされていませんので動きません。
次に写真の〝Build〟ボタン(①)を押します。
編集画面の詳しい使い方は下記をご覧ください。必要の無い方は読み飛ばして〝Build〟ボタンを押した写真へ進んでください。
編集画面の使い方
ソースウインドウ内をクリックするとキーボードからプログラムの編集ができます
ウインドウ内を全て選択してコピーした後、メモ帳などの別のアプリケーションへプログラムを移動させることができます。
逆にメモ帳などのエディッタで作成されたプログラムをコピーしてFlash PICのソースウインドウへ貼り付けることも出来ます。
各種ボタンの説明
①:ソースプログラムをPICのマシン語に変換して隣のプログラムエリアに送ります。エラーがあるとエラーリストが出ます。
②:現在のソースプログラムを保存します。次回このページを開くと再読み込みされます。
ひとつのソースプログラムしか保存できません。いくつも保存する時はソースプログラムを全て選択して、メモ帳など外部エディッタへ移動させてから、お使いのコンピューターへ保存してください。
③:PICのピン情報が出ます。
④:ソースプログラム内を消去して初期状態にセットします。
⑤:ソースプログラム内をスクロールさせます。
ソースウインド側(右)のボタン類
⑥:プログラムエリア内の選択されている行にブレークポイントを設定します。プログラムを走らるとブレークポイントの位置で停止します。
⑦:PICのメモリー内を一覧表示するWatchウインドウが出ます。
⑧:PICをリセットさせてプログラムのスタート番地を0番に戻します。
⑨:クリックするたびにプログラムを1行ずつ実行します。⑦のWatchウインドウも更新されます。キーボードの〝S〟キーを押してもワンステップできます。
⑩:プログラムをスタートさせます。ブレークポイントが設定されているとその位置で停止し、⑦のWatchウインドウも更新されます。
・プログラムエリア内のニーモニックは大文字表記でも小文字表記でも切り替えることができます。
・ブレークポイントは1ヶ所しか設定できません。
・リセットボタンを押すと、実際のPICと同じように入出力設定のファイルレジスタと、プログラムカウンターのみが初期化されます。ボード1の場合、CN1をクリックすると電源を切ったときと同じように、Flash PIC内のすべてのレジスタ類が初期化されます。
逆アセンブラウインド側(左)のボタン類
〝Build〟ボタンを押した時の写真
ソースウインドウの〝Build〟ボタンを押した時の写真です。
サンプルプログラムにはエラーがありませんので、ソースプログラムに手を加えない限り、エラー無しのエラーリストが出ます。
プログラムエリア内にマシン語が送り込まれ、逆アセンブラされたものが表示されています。
エラーリストと編集画面(EDIT画面)を消して①〝RUN〟ボタンを押します。
②〝+〟ボタンを押すとFlash PICの速度を上げることができます。トレーニングボードの反応が鈍い時などは
20倍速まで上げることができます。
サンプル3では1~2倍速が適当です。(2GHzのWindowsマシンで)
7セグメント表示器の中のLEDがプログラムによってグルグル廻っているのが見れます。
・ソースプログラムはMPASMフォーマットです。
・数値表現は10進数はそのまま、16進数は頭に〝0x〟をつけます。現時点ではこの二種だけです。
・サブルーチンコールやジャンプ先はラベルが使用できます。
・定数設定にもEQU擬似命令で設定されているラベルが使用できます。
・擬似命令は〝org〟と〝EQU〟のみ使用できます。
・格納先の指定(ディスティネーション)は下記の6種類の表記が許されています。
●Wレジスタへ格納する時
〝to_W〟 〝to_w〟 〝W〟 〝w〟 〝 W〟(Wの前にひとつのスペース) 〝 w〟(wの前にひとつのスペース)
●レジスタへ格納する時
〝to_F〟 〝to_f〟 〝F〟 〝f〟 〝 F〟(Fの前にひとつのスペース) 〝 f〟(fの前にひとつのスペース)
|
|