[英]Latch register not showing the same value as the port register
我正在 PIC18F4550 上編寫一個程序,我在內存中定義了數據,並希望將其逐個字符地發送到 PORTA。 我已經這樣做了,但是 LATA 上顯示的值不是 PORTA 寄存器中顯示的值。 我搜索了數據表,它指出寫入端口將寫入其鎖存器,但是,我遇到了端口和鎖存器寄存器在寫入時具有相同值的情況。 只是端口和緯度不應該相同,還是我做錯了什么? 我在 MPLABX V5.30 上使用模擬器工具
LIST p=18f4550
INCLUDE <p18f4550.inc>
ORG 0x00 ; Program Origin/Start Address
MAIN
CLRF TRISA
MOVLW 0X0
MOVWF TBLPTRL
MOVLW 0X05
MOVWF TBLPTRH
READ
TBLRD*+
MOVF TABLAT, W
BZ EXIT
MOVWF PORTA
GOTO READ
EXIT
GOTO $ ; This Line Is To Keep The Program Running, Not To Terminate
ORG 0x500
NAME DB "NAME",'0'
END ; Program End
PORT
和LAT
寄存器的區別可以總結如下:
LATx 寄存器:
應該用於寫入端口引腳。 寫入LATx
寄存器會將數據值寫入端口鎖存器。
PORTx-寄存器:
應該用於讀取端口引腳。 讀取PORTx
寄存器會讀取 I/O 引腳上的數據值。 寫入PORTx
寄存器會將數據值寫入端口鎖存器。
您必須始終使用ANSEL
寄存器在模擬和數字引腳之間進行選擇。 默認值:模擬。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.