忍者ブログ

PICのド素人のブログ

10年ほど前にヤフーブログにあった記録をここへ移しました。「PIC16F84Aで作ってみました 」というホームページも運営していました。今はそこも消滅し   http://picdetukutte.toshi-ie.com/PIC16F84A.html   にすべてではありませんが引っ越しています。あわせてご覧いただければ幸いです。

今日はどうだ?PIC16F84A

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

今日はどうだ?PIC16F84A

こんばんわ。昨日は休みしたのだ。
動画をアップした後始末で今度はホームページに載せる為の資料を整える作業をしていました。
製作中はプログラムは書くけど回路図はまず書かないのです。頭の中でイメージしてるだけ。穴あき基板のレイアウトもやりながら決めて行くので資料が残らない。だからまだ頭の中にイメージが残っている間に図面にしたりするのです。
で、出来上がった物を揃えてホームページにアップするのです。で 適当な解説っぽいのも書きます。今日は急遽パルスチェック用のプログラムと回路図を書いて急いで車でテストしてあっさりOKで(これぐらいはアッサリ行きたいものです)そのまま掲載ってわけですな。
 さて今日もお勉強です。
昨日の次のSAMPLE5で行きましょう。プログラムの流れはもうやりません。いつかやるかも知れませんが当分しません。新しい命令語の説明だけします。
まず、

INCF CNT_A,F

ってのがある。これは前にも少しお話しましたね。CNT_Aという場所の中の数字をここを通るたびに1ずつ増加させる命令です。次!

MOVF CNT_A,W ;CNT_Aの値を
MOVWF CNT ;CNTへ代入

MOVFって始めてだよね。これはMOVLWと一緒。違うのはMOVLWの右横はいつも数字だったよね。D'250'とかB'11110000'とかね。でもこのMOVFは数字じゃなくて場所の名前なのだ。で場所の名前の次には必ず「,W」と付けるんだよ。意味として「この場所(CNT_A)の中の数字をCNTという場所に入れる。」ってこと。ある場所の数字をまたある場所へ移動するんだ。しかし移動元の数字は変わらない。つまり「切り取りでは無くコピー」なのだ。次!!

DECF CNT_A,F

これはさっきのINCFの逆でここを通るたびに1ずつ減るって意味です。何がって?
ここではCNT_A ね。次!!!

MOVF CNT_A,F ;CNT_Aの0チェック

BTFSC STATUS,Z ;=0になったときここがオンします。
GOTO MAIN10 ;オンした MAIN10へ行く

これは便利な熟語。
場所の中身が0かどうか調べる方法。CNT_Aの中が0だったらSTATUSって場所のZって小部屋が1になるのだ。だからここが1かどうか調べるってわけさ。Zが1、つまりCNT_Aの中が0の場合は次の行へ行き、中身がまだ残っているときは2行目へ行くのさ。でこれも調べるだけで中身の数字の変更はないので安心。

ここまで見てきてどう? そんなにたくさんの命令語が出てきたわけじゃないよね。
でもこれだけでいろいろ出来ちゃうのさ。 つまり作り手のひらめきなんだよ。
少ない持ち駒(知ってる命令語)だけ使っても充分遊べるわけ。このSAMPLE5だって相当難しそうに思えるよね。でも出来てるんだよ。
 ひらめかないと始まらないってことを覚えて今日はおしまいにしましょう。おしまい。

拍手[0回]

PR

コメント

プロフィール

HN:
waewax
性別:
非公開

P R