新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于P89C668單片機的CAN總線接口設計

        基于P89C668單片機的CAN總線接口設計

        作者: 時間:2012-03-14 來源:網絡 收藏

        下面是SJA1000 的初始化程序.
        _INI: MOV DPTR, #MOD; 模式寄存器
        MOV A, #01H
        MOVX @DPTR, A
        NOP
        MOVX A, @DPTR
        ANL A, #01H
        JZ _INI; 等待SJA1000 進入復位模式
        MOV DPTR, #BTR0; 定時0
        MOV A, #BandRate0
        MOV DPTR, #BTR1; 定時1
        MOV A, # BandRate1
        MOV DPTR, #OCR; 輸出控制寄存器
        MOV A, #1AH
        MOVX @DPTR, A
        MOV DPTR, #CDR; 時鐘分頻器
        MOV A, #0C0H
        MOV DPTR, #ACR0; 接收代碼寄存器ACR0
        MOV A, #ModuleAddress; 設置為模塊的地址
        MOVX @DPTR, A
        INC DPTR
        MOV A, #0FFH
        MOV @DPTR, A
        INC DPTR
        MOV A, #0FFH
        MOVX @DPTR, A
        INC DPTR
        MOV A, #0FFH
        MOVX @DPTR, A
        MOV DPTR, #AMF0; 接收掩碼寄存器AMF0
        MOV A, #0FFH; 接收代碼設置為
        0X0FFFFFFFF
        MOVX @DPTR, A
        INC DPTR
        MOV A, #0FFH
        MOVX @DPTR, A
        INC DPTR
        MOV A, #0FFH
        MOVX @DPTR, A
        INC DPTR
        MOV A, #0FFH
        MOVX @DPTR, A
        MOV DPTR, #IER ; 中斷使能寄存器IER
        MOV A, #09H; 允許接收中斷和數據溢出中斷
        MOV DPTR, #CMR; 命令寄存器
        MOV A, #04H; 釋放接收緩沖器
        MOVX @DPTR, A
        LOOP: MOV DPTR, #MOD
        MOV A, #08H; 設置SJA1000 工作模式為普通模式,單濾波接收
        MOVX @DPTR, A
        MOV DPTR, #MOD
        MOV A, @DPTR
        ANL A, #01H
        JNZ LOOP; 等待復位標識被清除
        RET

        2.2 發送程序

        對SJA1000控制器進行初始化建立CAN總線通信后,就可以通過CAN總線發送和接收報文.發送程序負責節點的報文發送.發送報文時,用戶只需將需要發送的數據按一定的格式組合成一幀的報文,并送入SJA1000發送緩存區中,然后啟動SJA1000發送即可.發送程序分發送數據幀和遠程幀兩種.通過設置RTR以決定是發送數據幀還是遠程幀.



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金湖县| 梅州市| 浠水县| 五原县| 临夏县| 章丘市| 沧州市| 利辛县| 常德市| 德令哈市| 湘阴县| 乐都县| 彝良县| 漠河县| 陇川县| 蒙山县| 五华县| 眉山市| 和平县| 西乌珠穆沁旗| 阿克陶县| 丹棱县| 缙云县| 四子王旗| 莫力| 江津市| 衡水市| 巴塘县| 灵石县| 广南县| 怀仁县| 临邑县| 平邑县| 喜德县| 涞水县| 六安市| 宜州市| 黄平县| 普洱| 彰化市| 宁武县|