Iamは、16f84aを介して8255ppi(プログラマブルペリフェラルインターフェイス)の制御バイトを書き込もうとしています。プロテウスと一緒に全部うまくいったけど、私の回路には何も書き込めません。入力は16f84a(PORTB)から出て8255のデータバスに接続されています。8255を書き込むには遅延があると言われます。 8255を通して出力を得るために書いたテストプログラムです。すべてのポートは出力(A、B、C)に設定されています。しかし、それは動作しません。プロテウス画面用 のリンクは、あなたはあなたの回路が効果的にグランドに8255の出力を短絡8255.を吹いた、ほとんどのhttp://i.stack.imgur.com/UQbfG.jpgプログラミング8255以上16f84a
bsf PORTA,3 ; activate 8255's reset pin
call jDelay
bcf PORTA,3 ; deactivate 8255's reset pin
movlw b'00000001' ; Control byte for 8255 (B0->D7....B7->D0) /reverse of 10000000 (all set to output)
movwf PORTB
movlw b'00000011' ; mode 11 to write control register and also PortA.3-> 8255.WR (activate with 0 ,WR pin active-low)
movf PORTA ;portA.0->8255.A0&& portA.1->8255.A1
call jDelay ; Delay to write control byte
bsf PORTA,2 ; Deactive Write pin of 8255 (Active-low , 1 deactivates)
main
movlw B'10110110' ; Digit value for 5
movwf PORTB
movlw b'00000000' ; mode 00 and activate WR pin
movwf PORTA ; write to portA so -> 8255
call jDelay ; Delay to write byte
bsf PORTA,2 ; Deactivate 8255's WR pin(active-low)
Delay ;endless loop
goto Delay
jDelay ; Delay loop
Loop3 decfsz COUNT1,1
goto Loop3
decfsz COUNT3,1
goto Loop3
return
end
症状は何ですか? –
症状はデータバスからの入力です8255の出力ポートに到着しません。私はledとマルチメーターでチェックしてテストしました – loki
出力ポートのピンは正しく設定されていますか?あなたは一時的に遅延を巨額増加させたいかもしれません。 –