Iam嘗試通過16f84a寫入8255 ppi(可編程外設接口)的控制字節。在Proteus上一切都很好,但我不能在我的電路上寫任何8255。輸入從16f84a(PORTB)輸出並連接到8255的數據總線。有些人說必須有8255的延遲。我試過但沒有工作。這是我寫的一個測試程序,通過8255輸出。所有端口都設置爲輸出(A,B,C)。但它不起作用。 鏈接,變形桿菌屏幕截圖 http://i.stack.imgur.com/UQbfG.jpg通過16f84a編程8255
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
輸出端口引腳是否正確設置? (你不妨暫時增加大量的延遲。) –