PIC初心者用掲示板

★★ 質問する前に下記をチェック ★★
(PICに関する疑問は必ず解決するはず)
←←←「電子工作の実験室」へ
←←←← 

■最新ツリー一覧

□このツリー付近のツリー一覧

★新規ツリー作成

◆ 9845. リセットによる初期状態への戻し方について [のぼらん2006/03/09 15:14


9845. リセットによる初期状態への戻し方について [のぼらん2006/03/09 15:14
みなさん、こんにちは。私は現在PIC16F873を使って、ロボットの製作に挑戦しています。まだスタートしたばかりですが1つなかなか解決できない問題が発生してしまったので、どうかお助け下さい。それは、リセットによる初期状態への復帰についてです。現在作っている回路は、スイッチボタン(RA1,RA2にプルアップして接続)を押すことで信号をHブリッジ回路に送りモーターの正転・逆転をさせるものです(信号線にはRC7,RC6,後々PWMの勉強もしたいのでRC1も使用)。そしてMCLRにスイッチをプルアップして接続しております。私が組んだプログラムでは、電源投入時にはモーターは回転しておらず、スイッチを押すと回転するはずなのですが、なぜか電源をPIC側、モーター側の両方に入れたとたん回転してしまいます。その状態でPICの電源をOFFにして再びONにすると、モーターの回転は止まっており、スイッチを押すと正常動作します。しかし、再び電源を両方ともOFFにした後で同じ操作をすると、また回転してしまいます。どのようにすれば、解決できるのかアドバイスをよろしくお願いいたします。一応プログラムリストを載せておきます。

LISTP=PIC16F873
INCLUDE"P16F873.INC"

__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF & _DEBUG_OFF

ORG0

START
BSFSTATUS,RP0
MOVLWH'07'
MOVWFADCON1
MOVLWH'01'
MOVWFTRISA
CLRFTRISB
CLRFTRISC
BCFSTATUS,RP0
MOVLWH'F0'
MOVWFPORTC
GOTOMAIN
MAIN
BTFSSPORTA,1
CALLMoter1
BTFSSPORTA,2
CALLMoter2
MOVLWH'F0'
MOVWFPORTC
GOTOSTART
Moter1
MOVLWH'82'
MOVWFPORTC
BTFSSPORTA,1
GOTOMoter1
RETURN
Moter2
MOVLWH'42'
MOVWFPORTC
BTFSSPORTA,2
GOTOMoter2
RETURN

END

9846. Re: リセットによる初期状態への戻し方について [初心者G2006/03/09 18:05
とりあえずTRISAの設定とか見直して再確認しましょう。

これではRA0のみ入力?
>MOVLWH'01'
>MOVWFTRISA

それから、いろいろ試してるのかもしれませんけど、
GOTO START のところ GOTO MAINに替えたりループ範囲と内容を変えて
動作確認しながら機能アップしていけば良いと思います。