こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PIC18Fマイコンの使い方

次のような簡単なアセンブラーのプログラムを書いてアセンブルし、PICkit2を使ってマイコン(PIC18F4685)に書き込みましたが、添付の回路図のように組んだLEDとスイッチの回路が働きません。RB7のスイッチを押すとRB3のLEDが点灯し、RB6のスイッチを押すとRB1のLEDが点灯すると思ったのですが。 スイッチを押すとRB7の電位が0Vに落ちますが、RB3の電位はあがりません。
PICマイコンはNorthMicro の評価ボードに乗っていて、Vddは5Vあります。
発振素子はついていません。どこが悪いのでしょうか?詳しい方、どうか教えてください。

Main:

;*** main code goes here ***
Memory EQU 0x0C
Mem1 EQU Memory+0 ; Mem1 at 0C
Time1 EQU Memory+1 ; Time1 at 0D
Time2 EQU Memory+2 ; Time2 at 0E
Time3 EQU Memory+3 ; Time3 at 0F

; ORG 0
GOTO Start

Start

; setting of Port B
   ;  BSF STATUS, RP0 ; 18Fには不要なのでコメントアウト
   MOVLW b'110000' ; bit 7 & 6 =1, Bit 6 to 0 =0
   MOVWF TRISB ; specify port in/out function
  ; BCF STATUS, RP0 ;18Fには不要なのでコメントアウト

   MOVLW b'00001010'
   MOVWF PORTB ; output the data to port B

; main loop
Repeat MOVF PORTB, 0 ; read the port B data into W reg
  ANDLW b'110000'
  MOVWF Mem1

   BTFSS Mem1, 7 ; if 7th bit is '1' then skip the next line
; else execute the next line
   CALL RotateR
   BTFSS Mem1,6 ; if 6th bit is '1' then skip the next line
; else execute the next line
   CALL RotateL
   GOTO Repeat ; infinite loop

; end of main loop

RotateR MOVLW b'00001000'
   MOVWF PORTB
   RETURN

RotateL MOVLW b'00000010'
   MOVWF PORTB
   RETURN

投稿日時 - 2013-05-03 14:37:58

QNo.8071012

すぐに回答ほしいです

質問者が選んだベストアンサー

pic18fの入門書は読みましたか? config命令なし、bank設定なし、アナログよりデジタルポートへ切り換えなし
スイッチのプルアップ抵抗が100Ωでは、出力ポートに設定ミスするとpicが壊れます、->10kΩ
スイッチにてGNDへつながるようになっていますが、ここに1k-470Ωの抵抗を入れると、出力ポートに設定ミスをしても壊れません
LEDの制限抵抗も100Ωでは、小さすぎPICの定格を超えます、->330-470Ω

http://www.amazon.co.jp/%E6%94%B9%E8%A8%82%E7%89%88-%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-PIC18F%E6%9C%AC%E6%A0%BC%E6%B4%BB%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89-%E5%BE%8C%E9%96%91-%E5%93%B2%E4%B9%9F/dp/477413449X

投稿日時 - 2013-05-03 15:39:17

お礼

早速のご回答、有難うございます。
基本を勉強してから、再度挑戦してみます。

投稿日時 - 2013-05-03 22:14:01

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問