新會員
Joined
: 2008/8/4 12:30 最後登入時間
: 2008/12/6 21:40
Group:
註冊會員
Level : 2 HP : 0 / 37 MP : 4 / 1733 EXP : 50
|
不好意思,就是之前有前輩指導我用不同的方法去良測USART 訊號出來對不對,那結果都不是我想要的 那我從試波器量測的結果BAUD RATE=7,14K 而不是我想要的BAUD RATE=38.4K 那我的SPBRG=25, BRG=1 我想請問一下各位那裡出了問題 再麻煩各位一下為我解答,謝謝
; Macros SelBank0 macro BCF STATUS,RP1 BCF STATUS,RP0 endm SelBank1 macro BCF STATUS,RP1 BSF STATUS,RP0 endm SelBank2 macro BSF STATUS,RP1 BCF STATUS,RP0 endm SelBank3 macro BSF STATUS,RP1 BSF STATUS,RP0 endm ;**********************************************************************
ORG 0x000 ; processor reset vector GOTO MAIN
MAIN CALL INITIAL GOTO PARING_Process PARING_Process USART_TX MOVLW B'01111011' ;{ SelBank0 MOVWF TXREG
USART_TX_0
BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_0 SelBank0 CLRF TXREG SelBank0 MOVLW B'01100001' ;a MOVWF TXREG
USART_TX_1 BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_1 SelBank0 CLRF TXREG
MOVLW B'00101101' ;- SelBank0 MOVWF TXREG
USART_TX_3_0 BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_3_0 SelBank0 CLRF TXREG
MOVLW B'00110000' ;0 SelBank0 MOVWF TXREG
USART_TX_4 BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_4 SelBank0 CLRF TXREG
MOVLW B'01111101' ;} SelBank0 MOVWF TXREG
USART_TX_5 BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_5 SelBank0 CLRF TXREG
GOTO USART_TX ;-------------------初始化----------------------- INITIAL
;---------------------------------------------------- ; OPTION_REG SETTING ;---------------------------------------------------- SelBank1 MOVLW B'00000111' ;#B'00000111' MOVWF OPTION_REG ;ENABLE PORTA/B PULL-UP,INT-FALLING,WDT,WDT RATE 1:128
;-------------------------------------------------------- ; OSCCON AND OSCTUNE SETTING ;-------------------------------------------------------- MOVLW B'01100101' ;#B'01100101' MOVWF OSCCON ;INTERNAL OSC 4MHz SelBank1 MOVLW B'00000000' MOVWF OSCTUNE ;----------------------------------------------- ; PORTA SETTING ;------------------------------------------------ SelBank0 BANKSEL PORTA MOVLW B'00101111' ;#B'00101111' MOVWF PORTA SelBank1 MOVLW B'00101111' ;#B'00101111' MOVWF TRISA
SelBank2 ;Bank 2 CLRF ANSEL ;digital I/O CLRF WPUA ;disabled pull-up BANKSEL IOCA MOVLW B'00000000' ;#B'00000000' MOVWF IOCA ;------------------------------------------ ; PORTB SETTING ;------------------------------------------ BANKSEL PORTB MOVLW B'00000000' ;#B'00000000' MOVWF PORTB BANKSEL TRISB MOVLW B'00100000' ;#B'00100000' MOVWF TRISB BANKSEL WPUB MOVLW B'00000000' ;#B'00000000' MOVWF WPUB BANKSEL IOCB MOVLW B'00000000' ;#B'00000000' MOVWF IOCB
;-------------------------------------------------- ; INTERRUPT SETTING ;-------------------------------------------------- SelBank0 MOVLW B'00000000' ;DISABLE GIE,INTE,RABIE MOVWF INTCON ;-------------------------------------------------- ; USART SETTING ;------------------------------------------------
SelBank1 MOVLW B'00100100' ;8-BIT TRANSMISSION,TRANSMIT ENABLED,ASYNCHRONOUS MODE,HIGH SPEED,TSR EMPTY MOVWF TXSTA SelBank0 MOVLW B'10010000' ;SERIAL PORT ENABLED,8-BIT RECEPTION,ENABLES CONTINUOUS RECEIVE,DISABLES ADDRESS DETECTION,NO FRAMING ERROR,NO OVERRUN ERROR MOVWF RCSTA SelBank1 MOVLW .25 ;SET BAUD RATES AT 9600K WITH HIGH SPEED MODE(4MHZ=25,20MHZ=129) ; MOVWF SPBRG SelBank1 BSF PIE1,TXIE ;ENABLES THE USART TRANSMIT INTERRUPT ;開啟USART BSF PIE1,RCIE ;ENABLES THE USART RECEIVE INTERRUPT ;開啟USART
SelBank0 BCF PIR1,TXIF ;THE USART TRANSMIT BUFFER IS FULL BCF PIR1,RCIF ;THE USART RECEIVE BUFFER IS EMPTY
SelBank1 BSF TXSTA,BRGH CLRF SPBRGH ;BSF BAUDCTL,ABDEN BCF BAUDCTL,BRG16 ;------------------------------------------------------- RETURN END
發表於: 2008/8/8 9:33
|