MPLAB で PIC16f877 をプログラミングしています (アセンブリを使用)。私は4x4のスイッチパネルを持っています。入力を受け取ることはできますが、それがどのスイッチから来たのかを検出できません。portb を使って、最初の RB4 から RB7 を入力し、RB0 から RB3 を出力にしていますが、たとえば SW0、SW4、SW8、SW12 は同じように機能しますか? どうすれば厳密に判断できますか??
ここに私のコードの関連部分があります
...
bsf TRISB,5
bcf TRISB,2
bcf STATUS,RP0
bsf STATUS,RP0
bcf OPTION_REG,7
bcf STATUS,RP0
...
btfs PORTB,5
call button1
goto main
button1:
movlw b'11111111'
movwf PORTD
clrf PORTE
bsf PORTE,2
call delay
return