S
sora5563
Guest
Aš pastaruoju metu bando siųsti duomenis į ir iš PIC16F877A per UART ir rezultatas rodo,
į HyperTerminal, bet yra problema, kad nieko išeina
ne HyperTerminal.
Čia yra mano šaltinio kodą,
--------------------------------------------
LIST p = 16F877A
# Include <P16F877A.inc>
__CONFIG 0x3F32
Scratch kongresas 0x20
TVP kongresas 0x21
ORG 0x200
GOTO START
ORG 0x204
GOTO START
ORG 0x205
Pradžia:
; Išjungti už porta comparater
BANKSEL CMCON
MOVLW 0x07
MOVWF CMCON
; išjungti įtampą nuoroda modulis
BANKSEL CVRCON
MOVLW 0x00
MOVWF CVRCON
KVIETIMAS UART_INIT
Vėl
MOVLW Spausdinimui-1
KVIETIMAS RAŠYKITE
KVIETIMAS UART_GETCHAR
KVIETIMAS UART_PUTCHAR
GOTO AGAIN
;------------------------------------
; UART KASDIENĖ
;------------------------------------
UART_INIT:
BANKSEL SPBRG
MOVLW d'129 '; nustatyti Baud Rate 9.600
MOVWF SPBRG
MOVLW 0x20; siųstuvas įjungtas
MOVWF TXSTA
BCF PIE1, TXIE
BCF PIE1, RCIE
BANKSEL RCSTA
MOVLW 0x90
MOVWF RCSTA
RETURN
UART_PUTCHAR:
CHARWAIT1:
BTFSS PIR1, TXIF
GOTO CHARWAIT1
MOVWF TXREG
RETURN
UART_GETCHAR:
CHARWAIT2:
BTFSS PIR1, RCIF
GOTO CHARWAIT2
MOVWF RCREG
RETURN
;----------------------------------
; TEKSTAS vartotojo sąsają
;----------------------------------
Reklama:
DT "\ n \ rHow esate? \ N \ r", 0h
;----------------------------------
; RAŠYTI eilutę UART
;----------------------------------
Rašo:
MOVWF Scratch
GoWrite:
KVIETIMAS PCLsub
ADDLW 0h; jei KIEKIS yra nulis, Z bus nustatyti
BTFSC STATUS, Z
RETURN
KVIETIMAS UART_PUTCHAR
GOTO GoWrite
;-----------------------------------
; PCLsub NAUDOTI Netiesioginio PROBLEMOS
;-----------------------------------
PCLsub:
INCF nulio F
MOVF nulio, W
MOVWF PCL
RETURN
PABAIGA
-------------------------------------------------- -----------
Ar kas nors man sako, kas vyksta negerai.Baud Rate yra 9.600 už HyperTerminal.
į HyperTerminal, bet yra problema, kad nieko išeina
ne HyperTerminal.
Čia yra mano šaltinio kodą,
--------------------------------------------
LIST p = 16F877A
# Include <P16F877A.inc>
__CONFIG 0x3F32
Scratch kongresas 0x20
TVP kongresas 0x21
ORG 0x200
GOTO START
ORG 0x204
GOTO START
ORG 0x205
Pradžia:
; Išjungti už porta comparater
BANKSEL CMCON
MOVLW 0x07
MOVWF CMCON
; išjungti įtampą nuoroda modulis
BANKSEL CVRCON
MOVLW 0x00
MOVWF CVRCON
KVIETIMAS UART_INIT
Vėl
MOVLW Spausdinimui-1
KVIETIMAS RAŠYKITE
KVIETIMAS UART_GETCHAR
KVIETIMAS UART_PUTCHAR
GOTO AGAIN
;------------------------------------
; UART KASDIENĖ
;------------------------------------
UART_INIT:
BANKSEL SPBRG
MOVLW d'129 '; nustatyti Baud Rate 9.600
MOVWF SPBRG
MOVLW 0x20; siųstuvas įjungtas
MOVWF TXSTA
BCF PIE1, TXIE
BCF PIE1, RCIE
BANKSEL RCSTA
MOVLW 0x90
MOVWF RCSTA
RETURN
UART_PUTCHAR:
CHARWAIT1:
BTFSS PIR1, TXIF
GOTO CHARWAIT1
MOVWF TXREG
RETURN
UART_GETCHAR:
CHARWAIT2:
BTFSS PIR1, RCIF
GOTO CHARWAIT2
MOVWF RCREG
RETURN
;----------------------------------
; TEKSTAS vartotojo sąsają
;----------------------------------
Reklama:
DT "\ n \ rHow esate? \ N \ r", 0h
;----------------------------------
; RAŠYTI eilutę UART
;----------------------------------
Rašo:
MOVWF Scratch
GoWrite:
KVIETIMAS PCLsub
ADDLW 0h; jei KIEKIS yra nulis, Z bus nustatyti
BTFSC STATUS, Z
RETURN
KVIETIMAS UART_PUTCHAR
GOTO GoWrite
;-----------------------------------
; PCLsub NAUDOTI Netiesioginio PROBLEMOS
;-----------------------------------
PCLsub:
INCF nulio F
MOVF nulio, W
MOVWF PCL
RETURN
PABAIGA
-------------------------------------------------- -----------
Ar kas nors man sako, kas vyksta negerai.Baud Rate yra 9.600 už HyperTerminal.