久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 18F458的CAN通信問題 [打印本頁]

作者: 123lifn    時(shí)間: 2009-12-11 14:18
標(biāo)題: 18F458的CAN通信問題

請各位大哥幫幫小弟看看下面的程,謝謝大家:

LIST   P=18F458
#INCLUDE "P18F458.INC"
           ORG 0X00
           GOTO MAIN
       
           ORG 0X30

;*********初始化子程序***************
INITIAL             
           BCF TRISB,2
           BSF TRISB,3 ;設(shè)置CANRX/RB3為輸入
                        ;CANTX/RB2為輸出
                        ;設(shè)置CAN的波特率為125K,在Fosc=4M時(shí),Tbit=8us,假設(shè)BRP=01h,則
                         ;TQ=[2*(1+BRP)]/Fosc=2*(1+1)/4=1us。
                          ;NOMINAL BIT RATE=8TQ,SJW=1,Sync_Seg=1TQ,Prog _Seg=1TQ,Phase_Seg1=3TQ,Phase_Seg2=3TQ
           MOVLW 0X80
           MOVWF CANCON ;請求進(jìn)入CAN配置模式REQOP=100
WAIT       BTFSS CANSTAT,OPMODE2 ;等待進(jìn)入CAN配置模式OPMODE=100
           GOTO WAIT 
           MOVLW 0X09 
           MOVWF BRGCON1 ;設(shè)置SJW和BRP,SJW=1TQ,BRP=01H
           MOVLW 0X90
           MOVWF BRGCON2 ;設(shè)置Phase_Seg1=3TQ和Prog _Seg=1TQ
           MOVLW 0X42
           MOVWF BRGCON3 ;設(shè)置Phase_Seg2=3TQ
                         ;設(shè)置發(fā)送郵箱0標(biāo)識符號和發(fā)送的數(shù)據(jù)
           MOVLW 0XFF
           MOVWF BSR     ;TXB0D0到TXB0D7的地址在F60h以內(nèi),需
                         ;要指定BSR
          
           BCF TXB0CON,TXREQ
           MOVLW 0X03
           MOVWF TXB0CON ;發(fā)送優(yōu)先級為最高優(yōu)先級,TXPRI=11
           MOVLW 0X08
           MOVWF TXB0DLC ;設(shè)置數(shù)據(jù)長度為8個(gè)字節(jié)
           MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7 ;寫發(fā)送緩沖器數(shù)據(jù)區(qū)的數(shù)據(jù)
           MOVLW 0X00
           MOVWF TXB0SIDH 
           MOVLW 0X01
           MOVWF TXB0SIDL ;設(shè)置發(fā)送緩沖器0的標(biāo)準(zhǔn)標(biāo)識符,本程序采用
                          ;標(biāo)準(zhǔn)識符
                          ;設(shè)置接收郵箱0的標(biāo)識符和初始化數(shù)據(jù)
       
          MOVLW 0X00
          MOVWF CIOCON
                       ;使CAN進(jìn)入某種工作模式模式
          MOVLW 0X00
          MOVWF CANCON ;=0X40,進(jìn)入自測試模式;
                        ;=0x00,正常操作模式
        
WAIT1    MOVF CANSTAT
                        ;等待進(jìn)入CAN配置模式OPMODE=100
        
         ANDLW 0XE0
         SUBLW 0X00
         BTFSS STATUS,Z ;等待進(jìn)入CAN正常操作模式OPMODE=000
                        ;或測試模式OPMODE=010
         GOTO WAIT1        
         RETURN

 
        


;****************PIC單片機(jī)CAN總線通訊匯編程序主程序******************

MAIN     NOP
         CLRF INTCON ;禁止所有中斷
        
        CALL INITIAL ;初始化   
       
LOOP     BSF TXB0CON,TXREQ ;請求發(fā)送,TXREQ=1
        
WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發(fā)送完成
         GOTO WAITE2    
                
         BCF TRISB,1
         BCF TRISB,4
         BCF PORTB,1   ;指示燈亮
         BCF PORTB,4    ;另一   指示燈亮      
          
         GOTO LOOP       

         RETURN
         END

 

問題:小弟用18F458+PCA82C251 在ICD2運(yùn)行,可以運(yùn)行下去,燈也指示亮,但是小弟不敢確定到底有沒有數(shù)據(jù)發(fā)送出去,所以小弟用了一個(gè)別人的CAN MONITOR 接到CANH 和CANL 上去,(CAN MONITOR 是MB90F543和232串口 組成的監(jiān)視器,通過一個(gè)軟件察看發(fā)送過來的數(shù)據(jù)。軟件設(shè)置的ID也是0001H,可以確定MONITOR是好的,因?yàn)橛衅渌陌遄釉嚵薕K的),當(dāng)不接監(jiān)視板,程序可以順利運(yùn)行,有兩個(gè)燈會亮,表示程序可以跑,但當(dāng)接上MONITOR 的CANH 和CANL ,就不能跑了,燈不會亮,數(shù)據(jù)好像沒有發(fā)送過來,程序一直在

WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發(fā)送完成
         GOTO WAITE2    

這里停留。

我懷疑是阻抗不匹配,但是換了我那個(gè)458的板上的電阻,也還是相同的結(jié)果。

還有或許是監(jiān)視板上的晶振不一樣,458的板是20MHZ,而監(jiān)視板的好像不是20MHZ,因?yàn)槟:吹貌磺宄?/p>

最后我就是懷疑MB90F543里面的程序設(shè)置的波特率還有同步跳轉(zhuǎn)寬度等等跟我的程序不一樣,但是我都不敢確定,請問各位大哥有什么看法????

我怎么樣樣才可以看到程序發(fā)送過來的數(shù)據(jù)MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7

 

??????


作者: 123lifn    時(shí)間: 2009-12-11 14:19

請各位大哥幫幫小弟看看下面的程,謝謝大家:

LIST   P=18F458
#INCLUDE "P18F458.INC"
           ORG 0X00
           GOTO MAIN
       
           ORG 0X30

;*********初始化子程序***************
INITIAL             
           BCF TRISB,2
           BSF TRISB,3 ;設(shè)置CANRX/RB3為輸入
                        ;CANTX/RB2為輸出
                        ;設(shè)置CAN的波特率為125K,在Fosc=4M時(shí),Tbit=8us,假設(shè)BRP=01h,則
                         ;TQ=[2*(1+BRP)]/Fosc=2*(1+1)/4=1us。
                          ;NOMINAL BIT RATE=8TQ,SJW=1,Sync_Seg=1TQ,Prog _Seg=1TQ,Phase_Seg1=3TQ,Phase_Seg2=3TQ
           MOVLW 0X80
           MOVWF CANCON ;請求進(jìn)入CAN配置模式REQOP=100
WAIT       BTFSS CANSTAT,OPMODE2 ;等待進(jìn)入CAN配置模式OPMODE=100
           GOTO WAIT 
           MOVLW 0X09 
           MOVWF BRGCON1 ;設(shè)置SJW和BRP,SJW=1TQ,BRP=01H
           MOVLW 0X90
           MOVWF BRGCON2 ;設(shè)置Phase_Seg1=3TQ和Prog _Seg=1TQ
           MOVLW 0X42
           MOVWF BRGCON3 ;設(shè)置Phase_Seg2=3TQ
                         ;設(shè)置發(fā)送郵箱0標(biāo)識符號和發(fā)送的數(shù)據(jù)
           MOVLW 0XFF
           MOVWF BSR     ;TXB0D0到TXB0D7的地址在F60h以內(nèi),需
                         ;要指定BSR
          
           BCF TXB0CON,TXREQ
           MOVLW 0X03
           MOVWF TXB0CON ;發(fā)送優(yōu)先級為最高優(yōu)先級,TXPRI=11
           MOVLW 0X08
           MOVWF TXB0DLC ;設(shè)置數(shù)據(jù)長度為8個(gè)字節(jié)
           MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7 ;寫發(fā)送緩沖器數(shù)據(jù)區(qū)的數(shù)據(jù)
           MOVLW 0X00
           MOVWF TXB0SIDH 
           MOVLW 0X01
           MOVWF TXB0SIDL ;設(shè)置發(fā)送緩沖器0的標(biāo)準(zhǔn)標(biāo)識符,本程序采用
                          ;標(biāo)準(zhǔn)識符
                          ;設(shè)置接收郵箱0的標(biāo)識符和初始化數(shù)據(jù)
       
          MOVLW 0X00
          MOVWF CIOCON
                       ;使CAN進(jìn)入某種工作模式模式
          MOVLW 0X00
          MOVWF CANCON ;=0X40,進(jìn)入自測試模式;
                        ;=0x00,正常操作模式
        
WAIT1    MOVF CANSTAT
                        ;等待進(jìn)入CAN配置模式OPMODE=100
        
         ANDLW 0XE0
         SUBLW 0X00
         BTFSS STATUS,Z ;等待進(jìn)入CAN正常操作模式OPMODE=000
                        ;或測試模式OPMODE=010
         GOTO WAIT1        
         RETURN

 
        


;****************PIC單片機(jī)CAN總線通訊匯編程序主程序******************

MAIN     NOP
         CLRF INTCON ;禁止所有中斷
        
        CALL INITIAL ;初始化   
       
LOOP     BSF TXB0CON,TXREQ ;請求發(fā)送,TXREQ=1
        
WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發(fā)送完成
         GOTO WAITE2    
                
         BCF TRISB,1
         BCF TRISB,4
         BCF PORTB,1   ;指示燈亮
         BCF PORTB,4    ;另一   指示燈亮      
          
         GOTO LOOP       

         RETURN
         END

 

問題:小弟用18F458+PCA82C251 在ICD2運(yùn)行,可以運(yùn)行下去,燈也指示亮,但是小弟不敢確定到底有沒有數(shù)據(jù)發(fā)送出去,所以小弟用了一個(gè)別人的CAN MONITOR 接到CANH 和CANL 上去,(CAN MONITOR 是MB90F543和232串口 組成的監(jiān)視器,通過一個(gè)軟件察看發(fā)送過來的數(shù)據(jù)。軟件設(shè)置的ID也是0001H,可以確定MONITOR是好的,因?yàn)橛衅渌陌遄釉嚵薕K的),當(dāng)不接監(jiān)視板,程序可以順利運(yùn)行,有兩個(gè)燈會亮,表示程序可以跑,但當(dāng)接上MONITOR 的CANH 和CANL ,就不能跑了,燈不會亮,數(shù)據(jù)好像沒有發(fā)送過來,程序一直在

WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發(fā)送完成
         GOTO WAITE2    

這里停留。

我懷疑是阻抗不匹配,但是換了我那個(gè)458的板上的電阻,也還是相同的結(jié)果。

還有或許是監(jiān)視板上的晶振不一樣,458的板是20MHZ,而監(jiān)視板的好像不是20MHZ,因?yàn)槟:吹貌磺宄?/p>

最后我就是懷疑MB90F543里面的程序設(shè)置的波特率還有同步跳轉(zhuǎn)寬度等等跟我的程序不一樣,但是我都不敢確定,請問各位大哥有什么看法????

我怎么樣樣才可以看到程序發(fā)送過來的數(shù)據(jù)MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7

 

??????






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 黄色片网站在线观看 | 五月开心网 | 在线视频99| 国产自产21区 | 毛茸茸free性熟hd | 青青草成人在线 | 波多野结衣一区二区三区在线观看 | 天天拍夜夜操 | 国产在线免费 | 中文字幕永久在线 | 国内精品视频在线观看 | 国产又爽又黄免费视频 | 中文字幕+乱码+中文乱码91 | 欧美不卡一区二区三区 | 国产福利在线播放 | 免费成人在线看 | 亚洲一区二区中文字幕 | 在线观看日韩 | 能看毛片的网站 | 日本理论片午伦夜理片在线观看 | 欧美一区免费 | 欧美另类z0zx974 | 亚洲播放| 一级黄色片视频 | 久久中文网 | 久久久久久久九九九九 | 麻豆中文字幕 | 99色在线 | 欧美久久综合 | 欧美精品第一页 | 每日更新av | 91激情网 | 国产精品aaa | 久久99热这里只频精品6学生 | 天天操天天舔 | 日韩精品视频在线免费观看 | 成人在线a | 欧美日韩高清 | 日韩天堂在线 | 波多野结衣视频一区 | 日韩精品一区在线 |