• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 搞不懂為什麼會這樣????一頭霧水
#3
資深會員
資深會員


查看用戶資訊
你對 pic uart 的register 並不熟悉~~

main_loop:
    btfss  pir1,rcif
    goto  main_loop    ;rx?

    movlw  0x45
    xorwf  rcreg
    skpz
    goto  main_loop    ;rx = 0x45?
    
    movlw  .1
    movwf  txreg      ;tx 1
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1      ;tx succress ?

    movlw  .2
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    movlw  .3
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    movlw  .4
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    movlw  .5
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    movlw  .6
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    movlw  .7
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    movlw  .8
    movwf  txreg
    movlw  txsta
    movwf  fsr
    btfss  indf,trmt
    goto  $-.1

    goto  main_loop

發表於: 2006/4/27 10:53
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 搞不懂為什麼會這樣????一頭霧水
#2
版主
版主


查看用戶資訊
Crystal頻率多少?它要和SPBRG搭配正確才行。

發表於: 2006/4/26 20:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


搞不懂為什麼會這樣????一頭霧水
#1
初級會員
初級會員


查看用戶資訊
我研究這個程式2-3天了,我是利用PC透過HIN232跟PIC通訊的
<<當PIC接收到45(45是由PC傳給PIC),PIC傳資料(1,2,3,4,5,6,7,8)給PC>>
這個沒問題,,可是問題來了

PC傳出資料
---45(傳了6次,正確率較低)
PC接收資料---1 2 3 4 5 6 7 8  ---第一筆
                 1 2 3 4 5 6 FF    
---第二筆(怎麼會傳出FF,而且還傳一個BYTE問題一)
                 
1 2 3 4 5 6 7 8  ---第三筆
                 1 2                    
---第四筆(這個跟問題一很類似,少了更多BYTE)
                                         --
第五筆這裡是空的,(這是問題2)
                 
1 2 3 FC          ---第六筆

PC傳出資料
---45,45,45,45,45,45,45,45(傳了6次,正確率較高)
PC接收資料---1 2 3 4 5 6 7 F8 ---1
                 1 2 3 4 5 6 7 8 
---2
                 1 2 3 4 E5        
---3
                 1 2 3 4 5 6 7 8 
---4
                 1 2 3 4 5 6 7 8 
---5
                 1 2 3 4 5 6 7 8 
---6
我猜想是  TXEN的控制有問題
...可是找不出哪裡有問題
                再則是程式的架構需要調整
...


                ********
麻煩熱心先進,幫我度過難關*******
                ********
麻煩熱心先進,幫我度過難關*******
                ********
麻煩熱心先進,幫我度過難關*******

        list    
p=16F873Af=INHX8Mr=DECb=8C=80
    
#include     <p16F873A.inc>        ; Include file locate at defult directory
        

START_CODE    EQU        0X30
DATA1        EQU        0X31
DATA2        EQU        0X32
DATA3        EQU        0X33
DATA4        EQU        0X34
CHECKSUM    EQU        0X35
END_CODE    EQU        0X36
FREE        EQU        0X37

W_TEMP        EQU        0X40
STATUS_TEMP    EQU        0X41
CON            EQU        0X42
CON1        EQU        0X43
    
RC_REG        EQU        0X44

STEP1_FLAG    EQU    0X00    
STEP2_FLAG    EQU    0X01
STEP3_FLAG    EQU    0X02
STEP4_FLAG    EQU    0X03
STEP5_FLAG    EQU    0X04
STEP6_FLAG    EQU    0X05
STEP7_FLAG    EQU    0X06
STEP8_FLAG    EQU    0X07

STEP9_FLAG    EQU    0X00
STEP0_FLAG    EQU    0X01

        ORG        0X00
        
GOTO    MAIN_C
        ORG        0X04
        
GOTO    INT_MAIN
        ORG        0X10

MAIN_C    BSF        STATUS
,RP0
        MOVLW    0X80
        MOVWF    TRISC
        MOVLW    0X00
        MOVWF    TRISB
        MOVLW    0X20
        MOVWF    TXSTA
        MOVLW    0X19
        MOVWF    SPBRG
        MOVLW    0X20
        MOVWF    PIE1

        BCF        STATUS
,RP0
        MOVLW    0X90
        MOVWF    RCSTA
        MOVLW    0XC0
        MOVWF    INTCON

MAIN    MOVLW    0XFF
        MOVWF    PORTB
        BCF        STATUS
,RP0
        BSF        RCSTA
,CREN
        MOVLW    0X45
        XORWF    RC_REG
        BTFSC    STATUS
,Z
        
GOTO    MAIN_RUN

        BSF        STATUS
,RP0
        BCF        TXSTA
,TXEN
        BCF        STATUS
,RP0
        CLRF    RC_REG
        
GOTO    MAIN    
MAIN_RUN
        BCF        STATUS
,RP0
        BCF        RCSTA
,CREN
        CLRF    RC_REG
        MOVLW    0X01
        MOVWF    START_CODE
        MOVLW    0X02
        MOVWF    DATA1
        MOVLW    0X03
        MOVWF    DATA2
        MOVLW    0X04
        MOVWF    DATA3
        MOVLW    0X05
        MOVWF    DATA4
        MOVLW    0X06
        MOVWF    CHECKSUM
        MOVLW    0X07
        MOVWF    END_CODE
        MOVLW    0X08
        MOVWF    FREE
        MOVLW    0X2F
        MOVWF    FSR
PUSH_DATA        
        INCF    FSR
        BTFSC    FSR
,3
        
GOTO    CLEAR
        
GOTO    ADD_FSR

CLEAR    BSF        STATUS
,RP0
        BCF        TXSTA
,TXEN
        BCF        STATUS
,RP0
        
GOTO    MAIN
ADD_FSR 
        BSF        STATUS
,RP0
        BSF        TXSTA
,TXEN
        BCF        STATUS
,RP0
        MOVFW    INDF        
        MOVWF    TXREG
                    
WAIT_DATA
        BCF        STATUS
,RP0
        BTFSS    PIR1
,TXIF
        
GOTO    WAIT_DATA
        BSF        STATUS
,RP0
        BTFSS    TXSTA
,TRMT
        
GOTO    WAIT_DATA
    
        BSF        STATUS
,RP0
        BCF        TXSTA
,TXEN
        BCF        STATUS
,RP0
        
GOTO    PUSH_DATA

INT_MAIN
        MOVWF   W_TEMP         
        SWAPF   STATUS
,W       
        MOVWF   STATUS_TEMP     
           
        BTFSC   PIR1
,RCIF
        
GOTO    GET_DATA             
INT_RET
        BCF        STATUS
,RP0
        SWAPF   STATUS_TEMP
,W   
        MOVWF   STATUS          
        SWAPF   W_TEMP
,F      
        SWAPF   W_TEMP
,W      
        RETFIE
        
 
GET_DATA        
        BCF        STATUS
,RP0
        BTFSC    RCSTA
,OERR
        
GOTO    OVERRUN_ERR
        BTFSC    RCSTA
,FERR
        
GOTO    DATA_ERROR
        MOVFW    RCREG
        MOVWF    RC_REG
        BCF        STATUS
,RP0
        BTFSC    PIR1
,RCIF
        
GOTO    GET_DATA        
        
GOTO    INT_RET

OVERRUN_ERR    
        BCF        STATUS
,RP0    
        BCF     RCSTA
,CREN
        MOVFW    RCREG
        MOVWF    RC_REG
        BSF        STATUS
,RP0
        BCF        TXSTA
,TXEN
        BCF        STATUS
,RP0
        
GOTO    INT_RET
DATA_ERROR
        BCF        STATUS
,RP0
        BCF        RCSTA
,CREN
        MOVWF    RCREG
        MOVWF    RC_REG
        BSF        STATUS
,RP0
        BCF        TXSTA
,TXEN
        BCF        STATUS
,RP0
        
GOTO    INT_RET        
                   END

發表於: 2006/4/26 13:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------