簡體   English   中英

鎖存寄存器顯示的值與端口寄存器不同

[英]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
            


PORTLAT寄存器的區別可以總結如下:
LATx 寄存器:
應該用於寫入端口引腳。 寫入LATx寄存器會將數據值寫入端口鎖存器。

PORTx-寄存器:
應該用於讀取端口引腳。 讀取PORTx寄存器會讀取 I/O 引腳上的數據值。 寫入PORTx寄存器會將數據值寫入端口鎖存器。

您必須始終使用ANSEL寄存器在模擬和數字引腳之間進行選擇。 默認值:模擬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM