音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

那位大俠辛苦一下,把基于2510CAN控制器的匯編程序變成C,

作者:zhaojiuhua 欄目:單片機(jī)
那位大俠辛苦一下,把基于2510CAN控制器的匯編程序變成C,

;************************************************
;* EVM2510A.ASM                                 *
;************************************************
;*                                              *
;* Written by:  Calvin Ho                       *
;*              Technical Sales ENGINEER.       *
;*              MICROCHIP TECHNOLOGY Inc.       *
;* Date:        12 Nov 2000                     *
;* Revision:    1.0                             *
;************************************************
;
;
;
; This source code provides a demonstration of the MSSP peripheral
; on the PIC16F876 MCU & MCP2510 CAN Controller.   
; It will show how to Configure and Write/Read the SPI data to/from MCP2510
; >> The operation Freq is 16MHZ for both 877 & MCP2510
; >> The Bit Rate will be set as 125K Bps with 8TQ/Bit
; >> The 877 receive data from MCP2510 & Send Byte2 to both PORTD & CCPR1L
; >>  Byte2 contain the ADC result send from Message 100
; >>  CCPR1L is PWM duty cycle register, change it will change the duty cycle of PWM OUTPUT
; >>  
; >>  

    list p=16F877
    #include <p16F877.inc>
    #include <REG2510.inc>


; Variables used in this program;
    UDATA

TEMPH        RES    1        ; TEMPH & TEMPL are used for Bin2BCD subroutine
TEMPL        RES    1        ;

TEMPVar1    RES    1
TEMPVar2    RES    1

LoopCntr    RES    1

SPI_TEMP    RES    1        ; Used for SPI TEMP in order to KEEP the content of W reg
Dlen_2510    RES    1
Addr_2510    RES    1
Buf_2510    RES    8

STATUS_2510    RES    1

CAN_PORTD    RES    1
CAN_PWM        RES    1

TEMP_ADC    RES    1

;******************************************************************
;****    The location of FLASH Registers is BANK3
;****    Because the EEDATA & EEADR are located @ Bnk 3
;******************************************************************


w_temp        EQU    0x72
status_temp    EQU    0x73
pclath_temp    EQU    0x74
             
PORT_CS2510    EQU    PORTC

#define        CS2510    PORTC,0        ; RC2 is CS CONTROL signal of this 2510 EVM Board !!
#define        MESSAGE_NO1    .250    ;
#define        PWM_DUTY    .255

; Locates startup code @ the reset vector

;*******************************************************
;****        MACRO RESET_2510  
;****        RESET MCP2510
;*******************************************************
RESET_2510    MACRO
        BANKSEL    PORT_CS2510
        bcf    CS2510
        movlw    CMD_RESET
        call    Write_SPI_Byte
        BANKSEL    PORT_CS2510
        bsf    CS2510
        ENDM

;*******************************************************
;****        MACRO WRITE_2510 W_ADD,W_DATA
;****        Write W_DATA into W_ADD
;*******************************************************
WRITE_2510    MACRO    W_ADD,W_DATA
        BANKSEL    PORT_CS2510
        bcf    CS2510
        movlw    CMD_WRITE
        call    Write_SPI_Byte
        movlw    W_ADD
        call    Write_SPI_Byte
        movlw    W_DATA
        call    Write_SPI_Byte
        BANKSEL    PORT_CS2510
        bsf    CS2510
        ENDM

;*******************************************************
;****        MACRO READ_2510 R_ADD
;****        Read data @ address R_ADD
;*******************************************************
READ_2510    MACRO    R_ADD
        BANKSEL    PORT_CS2510
        bcf    CS2510
        movlw    CMD_READ
        call    Write_SPI_Byte
        movlw    R_ADD
     &nb
2樓: >>參與討論
zhaojiuhua
INC文件,全了
;******************************************************
;****    REF2510.inc
;****   Definition file of MCP2510 registers & COMMANDs
;******************************************************

CMD_WRITE    EQU    b'00000010'
CMD_READ    EQU    b'00000011'
CMD_RESET    EQU    b'11000000'
CMD_STATUS    EQU    b'10100000'
CMD_MODIFY    EQU    b'00000101'
CMD_RTS0    EQU    b'10000001'
CMD_RTS1    EQU    b'10000010'
CMD_RTS2    EQU    b'10000100'

;****************************************************
;****    FIRST PORTION : DEFINITION OF CONTROL REGS
;****************************************************
CANSTAT        EQU    0x0E
CANCTRL        EQU    0x0F
BFPCTRL        EQU    0X0C
TXRTSCTRL    EQU    0X0D
CNF1        EQU    0x2A
CNF2        EQU    0x29
CNF3        EQU    0x28
CANINTE        EQU    0x2B
CANINTF        EQU    0x2C
EFLG        EQU    0x2D
TEC        EQU    0x1C
REC        EQU    0x1D
TXB0CTRL    EQU    0x30
TXB1CTRL    EQU    0x40
TXB2CTRL    EQU    0X50
RXB0CTRL    EQU    0X60
RXB1CTRL    EQU    0X70

;****************************************************
;****    SECOND PORTION : MASK & FILTER REGS
;****************************************************
RXM0SIDH    EQU    0X20
RXM0SIDL    EQU    0X21
RXM0EID8    EQU    0X22
RXM0EID0    EQU    0X23
RXM1SIDH    EQU    0X24
RXM1SIDL    EQU    0X25
RXM1EID8    EQU    0X26
RXM1EID0    EQU    0X27
RXF0SIDH    EQU    0X00
RXF0SIDL    EQU    0X01
RXF0EID8    EQU    0X02
RXF0EID0    EQU    0X03
RXF1SIDH    EQU    0X04
RXF1SIDL    EQU    0X05
RXF1EID8    EQU    0X06
RXF1EID0    EQU    0X07
RXF2SIDH    EQU    0X08
RXF2SIDL    EQU    0X09
RXF2EID8    EQU    0X0A
RXF2EID0    EQU    0X0B
RXF3SIDH    EQU    0X10
RXF3SIDL    EQU    0X11
RXF3EID8    EQU    0X12
RXF3EID0    EQU    0X13
RXF4SIDH    EQU    0X14
RXF4SIDL    EQU    0X15
RXF4EID8    EQU    0X16
RXF4EID0    EQU    0X17
RXF5SIDH    EQU    0X18
RXF5SIDL    EQU    0X19
RXF5EID8    EQU    0X1A
RXF5EID0    EQU    0X1B

;****************************************************
;****    THIRD PORTION : TRANSMIT IDs & BUFFER
;****************************************************
TXB0SIDH    EQU    0X31
TXB0SIDL    EQU    0X32
TXB0EID8    EQU    0X33
TXB0EID0    EQU    0X34
TXB0DLC        EQU    0X35
TXB0D0        EQU    0X36
TXB0D1        EQU    0X37
TXB0D2        EQU    0X38
TXB0D3        EQU    0X39
TXB0D4        EQU    0X3A
TXB0D5        EQU    0X3B
TXB0D6        EQU    0X3C
TXB0D7        EQU    0X3D

;****        TRANSMIT BUFFER 1 ..

TXB1SIDH    EQU    0X41
TXB1SIDL    EQU    0X42
TXB1EID8    EQU    0X43
TXB1EID0    EQU    0X44
TXB1DLC        EQU    0X45
TXB1D0        EQU    0X46
TXB1D1        EQU    0X47
TXB1D2        EQU    0X48
TXB1D3        EQU    0X49
TXB1D4        EQU    0X4A
TXB1D5        EQU    0X4B
TXB1D6        EQU    0X4C
TXB1D7        EQU    0X4D

;****        TRANSMIT BUFFER 2 ..

TXB2SIDH    EQU    0X51
TXB2SIDL    EQU    0X52
TXB2EID8    EQU    0X53
TXB2EID0    EQU    0X54
TXB2DLC        EQU    0X55
TXB2D0        EQU    0X56
TXB2D1        EQU    0X57
TXB2D2        EQU    0X58
TXB2D3        EQU    0X59
TXB2D4   &n
3樓: >>參與討論
農(nóng)夫XP
不是已經(jīng)給出C程序了么
 
4樓: >>參與討論
農(nóng)夫XP
MICROCHIP已經(jīng)有c程序了 啊。。
 
5樓: >>參與討論
haimei
看看這個(gè)C源瑪
試試這個(gè), 我還沒機(jī)會(huì)試, 請(qǐng)告訴我你試的結(jié)果. 這是PCW的,原理通了轉(zhuǎn)成別的也不難. 我的Email: zhaozh@yahoo.com


/////////////////////////////////////////////////////////////////////////
////                        can-18xxx8.c                             ////
//// CAN Library routines for MICROCHIP's PIC18Cxx8 and 18Fxx8 LINE  ////
////                                                                 ////
//// This library provides the following functions:                  ////
////  (for more information on these functions see the comment       ////
////   HEADER above each function)                                   ////
////                                                                 ////
////    can_init - Configures the PIC18xxx8 CAN peripheral           ////
////                                                                 ////
////    can_set_baud - Sets the baud rate CONTROL registers          ////
////                                                                 ////
////    can_set_mode - Sets the CAN MODULE into a specific mode      ////
////                                                                 ////
////    can_set_id - Sets the STANDARD and extended ID               ////
////                                                                 ////
////    can_get_id - Gets the STANDARD and extended ID               ////
////                                                                 ////
////    can_putd - Sends a message/request with specified ID         ////
////                                                                 ////
////    can_getd - Returns specifid message/request and ID           ////
////                                                                 ////
////    can_kbhit - Returns true if there is data in one of the      ////
////                receive buffers                                  ////
////                                                                 ////
////    can_tbe - Returns true if the transmit buffer is ready to    ////
////              send more data                                     ////
////                                                                 ////
////    can_abort - Aborts all pending transmissions                 ////
////                                      &
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
關(guān)于單片機(jī)的實(shí)時(shí)操作系統(tǒng)
路過高人,留幾招
請(qǐng)問有關(guān)數(shù)碼管顯示的程序。
請(qǐng)教PIC晶振動(dòng)校正問題
哪位大哥知道有沒有帶IDE接口的單片機(jī)?
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)