プロが教えるわが家の防犯対策術!

PIC初心者です。 PIC16F88のLED制御で以下のプログラムを実行すると点滅を繰り返します。
意図としては1度だけ光って消えてほしいのですが…
CONFIG部分がおかしいのでしょうか?
環境として、PCはVista、MPLABとPICkit2を使用しています

お分かりになる方、お願いいたします。
以下ソースです
LISTP=PIC16F88
INCLUDE"P16F88.INC"

__CONFIG _CONFIG1, _INTRC_IO & _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

BSFSTATUS,RP0
CLRFTRISB
BCFSTATUS,RP0
BCFSTATUS,0
CLRFPORTB

MAIN
BSFPORTB,0
NOP
NOP
NOP
(以下、NOPが100個ほど)
NOP
BCFPORTB,0

END

A 回答 (3件)

END命令は議事命令といわれており、CPUに実行停止を命令するのではなく、コンパイラに対してコードの終端を明示しているだけです。



下記URLのコードを参考にしてみては如何でしょうか?
http://homepage1.nifty.com/rikiya/software/310pi …
プログラムの最後でループしているだけですが。
    • good
    • 0

コンフィグについては、ハードウェアに依存するので


この質問だけでは私は判りません。

ひとつ問題なのは

クロックを最大の20MHZで動作させているとするとNOP命令1個に実行時間は50nsec.です。したがってそれを100個並べても5μsec.強にしかなりません。LEDの容量(キャパシタンス)と電流制限抵抗のCR積による時定数の問題で光らないか、光ったとしても人間の目で識別するのは不可能でしょう。

ループ10万回実行するか、マイコンの勉強ということであればタイマーを使用すべきです。
    • good
    • 0

MAIN


BSFPORTB,0
NOP
NOP
NOP
(以下、NOPが100個ほど)
NOP

MAIN1
BCFPORTB,0
GOTO MAIN1

END

______________________________________¥

BSF PORTB,0がNOP100個分続いたあとに
BCF PORTB,0になって電源オフまでそこを繰り返すというプログラムです。

貴方のプログラムは途中で終わっている状況です。
エンドレスにしないとプログラムとして成立しません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!