Re: 急!請問各位USART有問題如何解決
|
||||
---|---|---|---|---|
版主
|
瞎子摸象,找台示波器量一下輸出的波形算一下 Baud Rate 吧!
發表於: 2008/8/6 18:49
|
|||
|
Re: 急!請問各位USART有問題如何解決
|
||||
---|---|---|---|---|
高級會員
|
忘了問你!!!
超級終端機收到的是什麼? 還有!!! 你有接電位轉換ic MAX3232嗎? 你不會就RS232的TX/RX跟687的RX/TX直接接吧?
發表於: 2008/8/6 18:07
|
|||
|
Re: 急!請問各位USART有問題如何解決
|
||||
---|---|---|---|---|
新會員
|
我有試過了
我是要產生{a-0}這串字 所以相對應的ASCII 的十六進位數值為 7B,61,2D,30,7D 然後把值送到TXREG MOVLW H'7B' MOVWF TXREG 然後從終端機看到的值卻不是我所想要的 不是{a-0} 我想再請問各位一下 我這樣對應試錯的嗎
發表於: 2008/8/6 17:30
|
|||
|
Re: 急!請問各位USART有問題如何解決
|
||||
---|---|---|---|---|
版主
|
參照:
如果只是將0~9轉成 ASCII Code 的話只要將數字加上0x30 就可以了。 0=0x30=48 1=0x31=49 2=0x32=50 3=0x33=51
發表於: 2008/8/6 16:34
|
|||
|
Re: 急!請問各位USART有問題如何解決
|
||||
---|---|---|---|---|
高級會員
|
你的問題在十位數轉ASCII CODE!!!
123=495051(d) 97=5755(d) 查一下ASCII CODE就知道啦!!!
發表於: 2008/8/6 14:51
|
|||
|
急!請問各位USART有問題如何解決
|
||||
---|---|---|---|---|
新會員
|
不好意思我又有一個問題測試不出來
傳送值為123,97,45,48,125 雖然用試波器測試,有波型出現 可是用終端機接到電腦上值測試是否是我想要的 發現跟我所傳輸的值不太一樣 那也跟改了 BAUDCTL 的設定值試看看,結果還是跟傳送的不符 那我想再請教各位前輩一下,為什麼會不一樣 因為這是我的第一份程式,我想把他給弄懂 希望前輩們能幫助我一下, 謝謝 list p=16f687 #include <P16F687.inc> ; 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 0X00 GOTO MAIN MAIN CALL INITIAL USART_TX MOVLW .123 SelBank0 MOVWF TXREG USART_TX_0 CLRWDT BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_0 SelBank0 CLRF TXREG ;MOVF TXDATA1,W MOVLW .97 MOVWF TXREG USART_TX_1 CLRWDT BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_1 SelBank0 CLRF TXREG ;MOVLW B'00101100' ;SelBank0 ;MOVWF TXREG USART_TX_1_0 CLRWDT BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_1_0 SelBank0 CLRF TXREG ;MOVF TXDATA2,W MOVLW .45 SelBank0 MOVWF TXREG USART_TX_2 CLRWDT BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_2 SelBank0 CLRF TXREG MOVLW .48 ;MOVF TXDATA3,W MOVWF TXREG USART_TX_3 CLRWDT BTFSS PIR1,TXIF ;判斷TRANSMIT BUFFER是否滿了 GOTO USART_TX_3 SelBank0 CLRF TXREG MOVLW .125 ;MOVF TXDATA4,W SelBank0 MOVWF TXREG GOTO USART_TX INITIAL SelBank1 MOVLW B'00001111' ;#B'00001111' MOVWF OPTION_REG ;ENABLE PORTA/B PULL-UP,INT-FALLING,WDT,WDT RATE 1:128 BANKSEL WDTCON MOVLW B'00001001' ;#B'00001001' MOVWF WDTCON ;WDT 1:512,WDT IS ON BIT0=1;SLEEP SET BIT0=0 BANKSEL OSCCON MOVLW B'01100101' ;#B'01100101' MOVWF OSCCON ;INTERNAL OSC 4MHz ;;;;;PORTA SelBank0 BANKSEL PORTA MOVLW B'00000100' ;#B'00000100' MOVWF PORTA BANKSEL TRISA MOVLW B'00000100' ;#B'00000100' MOVWF TRISA BANKSEL WPUA MOVLW B'00000100' ;#B'00000100' MOVWF WPUA BANKSEL IOCA MOVLW B'00000000' ;#B'00000000' MOVWF IOCA ;;;;;PORTB 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 ;;;;;PORTC BANKSEL PORTC MOVLW B'00000000' ;#B'00000000' MOVWF PORTC BANKSEL TRISC MOVLW B'00001111' ;#B'00001111' MOVWF TRISC ;;;;;INTERRUPT SelBank0 MOVLW B'00000000' ;DISABLE GIE,INTE,RABIE MOVWF INTCON ;;;;;USART 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 MOVLW B'01001001' MOVWF BAUDCTL RETURN END
發表於: 2008/8/6 14:15
|
|||
|