編集:PIC 16F684
さて、私は0から7までカウントする単純な3 LEDバイナリクロックを持っており、各ライトがオンになる間に約1秒の遅延を追加したいと思います。
私は、各ライトが一種のループにある必要があり、ティックやロールオーバーなどを測定するためにカウントを使用する必要があることを理解しました。
時計は4MHzだと思います。マニュアルのスクリーンショットは次のとおりです。http: //i.imgur.com/tJatQ.png
これが私のコードからの関連する抜粋です:
COUNT1 EQU 20h ; Delay counter #1
COUNT2 EQU 21h ; Delay counter #2
..。
LOOP0
MOVLW TRIS_D0_D1 ; Move value defined in Constants to TRISA, to switch on LED 0.
TRIS PORTA ;
CLRF PORTA ; Clear all outputs.
MOVLW D0 ; Set the accumulator to the value of D0.
MOVWF PORTA ; Move the accumulator to PORTA, to switch on LED 0.
; Using COUNTs to add a delay
decfsz COUNT1,1 ; Decrease COUNT1 by 1, and skip the next line if the result is 0.
goto LOOP0 ; If COUNT1 is 0, carry on. If not, go to LOOP0.
decfsz COUNT2,1 ; Decrease COUNT2 by 1, and skip the next line if the result is 0.
goto LOOP0 ; If COUNT1 is 0, carry on. If not, go to LOOP0.
しかし、私はタイミングを台無しにしているとかなり確信しています、誰かが私に手を差し伸べることができますか?