に切り替え...これはUSARTで「Q」を置くために働く:銀行は、私はPICのアセンブラでバンク切り替えによって混乱していますPICアセンブラ
bsf PORTB,1 ;Set Transmit DIR (PORTB (0x6) not mirrored in other banks)
movlw 'Q' ;'Q' to work reg
movwf TXREG ;work reg to TXREG (TXREG (0x19) not mirrored in other banks)
clrwdt ;Clear watchdog
btfss TXSTA,TRMT ;Wait until 'Q' is shifted (TXSTA is 0x18, not mirrored)
goto $-2
bcf PORTB,1 ;Set Recive DIR
そして、これは、同じように良い作品:
BCF 0x3, 0x5 ;Switch to bank 0
BCF 0x3, 0x6
bsf PORTB,1 ;Set Transmit DIR
movlw 'Q' ;'Q' to work reg
movwf TXREG ;work reg to TXREG
BSF 0x3, 0x5 ;Switch to bank 1
clrwdt ;Clear watchdog
btfss TXSTA,TRMT ;Wait until 'Q' is shifted
goto $-2
BCF 0x3, 0x5 ;Switch to bank 0
bcf PORTB,1 ;Set Recive DIR
私が見ていないときにコンパイラがバンク切り替えをしていないことを確認しました。いつバンクを切り替える必要がありますか?
コンパイラ:MPASM;チップ:16F876A。 TXSTAはマニュアルに従ってバンク1にあります。私はこれを正しい答えとしてマークしています。 – c0m4