PIC 12F675をプログラムして、GPIO 0ピン(ピン番号7)に接続されたLEDダイオードを点滅させようとしました。遅延ループのPICアセンブリコードがブレッドボードで動作しない
私はデジタルモードにピンを設定している:
clrf ANSEL
私は出力としてそれらをすべて設定している:
clrf TRISIO
をし、最終的に、これは私が使用したループです:
;this delay loop should consume 1 000 000 ticks
;which is 1 second approximately
movlw 0xff ;assigned the highest 8bit value to accumulator
movwf 0x20 ;moved the value to general purpose register 20
movwf 0x21 ;moved the value to GPR 21
clrw ;cleared the working register (accumulator)
movlw 0x15 ;assigned the value 15 to accumulator
movwf 0x22 ;moved the value to GPR 22
bsf GPIO,0 ;set the first pin high
loop1
decfsz 0x20, 1
goto loop1
decfsz 0x21, 1
goto loop1
decfsz 0x22, 1
goto loop1 ;nested loops to delay further action
bcf GPIO,0 ;set the first pin low
そして、これは私が最初の場所にチップを設定するのに使ったコードです:
__CONFIG _FOSC_INTRCIO & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _BOREN_OFF & _CP_OFF & _CPD_ON
私の問題は、MPLAB Xでプログラムをコンパイルし、それを段階的にデバッグする場合、プログラムの実行に問題はありません。ビットGPIO 0は確かにループに従って状態を変更します。しかし、チップをブレッドボードに接続すると、LEDが点滅せず、ちょうど点灯しません。
私の質問です:問題は発振器の構成が不良である可能性がありますか? (私は100 nFのデカップリングセラミックコンデンサも使用しています)
私はかなり多くのコードバリエーションを試しました。アドバイスは大歓迎です。私が使用
全体.ASMコード:
list p=12F675
#include <p12F675.inc>
__CONFIG _FOSC_INTRCIO & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _BOREN_OFF & _CP_OFF & _CPD_ON
OSCCAL equ 0x90
TRISIO equ 0x85
ANSEL equ 0x9f
GPIO equ 0x05
org 0x00
bsf 0x03,5 ;bank1
movlw b'00111100' ;osccal value
clrf OSCCAL
movwf OSCCAL ;osccal set
movlw b'11111110' ;ansel value
movwf ANSEL ;set pin AN0 as digital I/O
movlw b'11111110' ;trisio value
movfw TRISIO ;set pin GPIO0 as output
clrf TRISIO
bcf 0x83,5 ;bank0
clrf GPIO ;clear GPIO port
start
movlw 0xff
movwf 0x20
movwf 0x21
clrw
movlw 0x15
movwf 0x22
bsf GPIO,0
loop1
decfsz 0x20, 1
goto loop1
decfsz 0x21, 1
goto loop1
decfsz 0x22, 1
goto loop1
bcf GPIO,0
movlw 0xff
movwf 0x20
movwf 0x21
clrw
movlw 0x15
movwf 0x22
loop2
decfsz 0x20, 1
goto loop2
decfsz 0x21, 1
goto loop2
decfsz 0x22, 1
goto loop2
goto start
end
ウォッチドッグタイマーはオンまたはオフですか? –
私はこのコードを生成しました:_WDTE_OFF、私はそれがオフだと思います。 すべての生成済みコードビットコード:__CONFIG _FOSC_INTRCIO&_WDTE_OFF&_PWRTE_ON&_MCLRE_OFF&_BOREN_OFF&_CP_OFF&_CPD_ON – Avo
@Aboe質問を編集して詳細を追加してください。 –