下載手機(jī)汽配人

CAN控制器接收數(shù)據(jù)的問題

CAN節(jié)點(diǎn)的硬件是:單片機(jī)選用AT89C51AN控制器使用SJA1000,CAN收發(fā)器使用82C250。P2.7連接SJA1000的CS端,P2.6連接RST引腳,單片機(jī)的INT0接到SJA1000的INT引腳。硬件連接圖如下。我想用查詢方式接收數(shù)據(jù),那么就不用將單片機(jī)的INT0接到SJA1000的INT引腳了吧??如果有中斷接收數(shù)據(jù)的匯編語言,將另附高分獎(jiǎng)勵(lì)(不用C語言)。還有誰能提供一個(gè)不錯(cuò)的CAN學(xué)習(xí)網(wǎng)站或論壇??
提問者:網(wǎng)友 2017-08-10
最佳回答
周立功的網(wǎng)站上有比較完整的資料和模塊程序,你可以去找找?;蛘逪I聯(lián)系我。以下為部分程序,全套程序太大發(fā)不上來。ASM和C都有。BCAN_CREATE_COMMUNATION: MOV DPTR, #REG_TEST ;對(duì)測試寄存器進(jìn)行讀寫測試 MOVX A, @DPTR MOV A, #0AAH ;寫入值0AAH MOVX @DPTR, A SETB F0 MOVX A, @DPTR ;讀出值 CJNE A, #0AAH,BCAN_CM_QUIT ;測試寫入讀出是否正確 MOV A, #055H ;再次測試 MOVX @DPTR, A ;寫入055H MOVX A, @DPTR CJNE A, #055H,BCAN_CM_QUIT ;測試寫入讀出是否正確 CLR A ;清零測試寄存器 MOVX @DPTR, A CLR F0 ;接口正確BCAN_CM_QUIT: RET ;************************************************************************;*函數(shù): BCAN_ENTER_RETMODEL *;*應(yīng)用資源: DPTR,ACC,F0 *;*參數(shù)說明: 無 *;*返回值: F0,存放返回值 *;* 0 ; 表示成功進(jìn)入復(fù)位工作模式 *;* 1 ; 表示不能進(jìn)入復(fù)位工作模式 *;* * ;*說明:CAN控制器進(jìn)入復(fù)位工作模式 *;************************************************************************;*子程序調(diào)用示例: *;* USER_CODE: ;;用戶代碼 *;* ----- ----- *;* LCALL BCAN_ENTER_RETMODEL ;;調(diào)用子程序 *;* JNB F0, USER_CODE1 ;;繼續(xù)用戶代碼 * ;* LJMP ERROR_PRG ;;復(fù)位請(qǐng)求不成功跳到錯(cuò)誤處理 *;* *;* USER_CODE1: *;* ----- ----- ;;用戶代碼 * ;************************************************************************BCAN_ENTER_RETMODEL: MOV DPTR, #REG_CONTROL ;控制寄存器訪問 MOVX A, @DPTR ; ORL A, #01H ;置位復(fù)位請(qǐng)求 MOVX @DPTR, A ; CLR F0 MOVX A, @DPTR ;驗(yàn)證復(fù)位是否寫入 JB ACC.0, BCAN_ER_QUIT SETB F0 ;復(fù)位不成功BCAN_ER_QUIT: RET
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號(hào)?立即注冊

我要提問

汽配限時(shí)折扣

本頁是網(wǎng)友提供的關(guān)于“CAN控制器接收數(shù)據(jù)的問題”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。