亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mcp2510.lst

?? 自己開發的can和單片機通信的程序
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.50   MCP2510                                                               07/11/2005 20:13:03 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MCP2510
OBJECT MODULE PLACED IN MCP2510.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MCP2510.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /************************************************************************************\
   2                  MCP2510 CAN總線試驗演示程序2003.10
   3          \************************************************************************************/
   4          
   5          
   6          #include "MCP2510.h"
   7          #include "def.h"
   8          #include "regx51.h"
   9          
  10          /********************** MCP2510 Pin *********************************/
  11          //#define MCP2510_CS                            0x4             //EXIO2
  12          
  13          /********************** MCP2510 Instruction *********************************/
  14          #define MCP2510INSTR_RESET              0xc0
  15          #define MCP2510INSTR_READ               0x03
  16          #define MCP2510INSTR_WRITE              0x02
  17          #define MCP2510INSTR_RTS                0x80    //request to send
  18          #define MCP2510INSTR_RDSTAT     0xa0    //read status
  19          #define MCP2510INSTR_BITMDFY    0x05    //bit modify
  20          
  21          
  22          //#define MCP2510_Enable()              do{CLREXIOBIT(MCP2510_CS);}while(0)
  23          //#define MCP2510_Disable()             do{SETEXIOBIT(MCP2510_CS); Delay(1);}while(0)
  24          
  25              MCP2510_Enable()
  26              {P1_0=0;}
  27          
  28                  MCP2510_Disable()
  29              {P1_0=1;}
  30          
  31          void MCP2510_Reset()
  32          {
  33   1              MCP2510_Enable();
  34   1      
  35   1              SendSIOData(MCP2510INSTR_RESET);
  36   1      
  37   1              MCP2510_Disable();
  38   1      }
  39          
  40          void MCP2510_Write(int address, int value)
  41          {
  42   1              MCP2510_Enable();
  43   1      
  44   1              SendSIOData(MCP2510INSTR_WRITE);
  45   1              SendSIOData((unsigned char)address);
  46   1              SendSIOData((unsigned char)value);
  47   1      
  48   1              MCP2510_Disable();
  49   1      }
  50          
  51          unsigned char MCP2510_Read(int address)
  52          {
  53   1              unsigned char result;
  54   1      
  55   1              MCP2510_Enable();
C51 COMPILER V7.50   MCP2510                                                               07/11/2005 20:13:03 PAGE 2   

  56   1      
  57   1              SendSIOData(MCP2510INSTR_READ);
  58   1              SendSIOData((unsigned char)address);
  59   1      
  60   1              //SendSIOData(0);
  61   1              result=ReadSIOData();
  62   1      
  63   1              MCP2510_Disable();
  64   1      
  65   1              return result;
  66   1      }
  67          
  68          unsigned char MCP2510_ReadStatus()
  69          {
  70   1              unsigned char result;
  71   1      
  72   1              MCP2510_Enable();
  73   1      
  74   1              SendSIOData(MCP2510INSTR_RDSTAT);
  75   1      
  76   1              result=ReadSIOData();
  77   1      
  78   1              MCP2510_Disable();
  79   1      
  80   1              return result;
  81   1      }
  82          
  83          void MCP2510_WriteBits(int address,int value,int mask)
  84          {  int baddress,bvalue,bmask;
  85   1          baddress=address;
  86   1              bvalue=value;
  87   1              bmask=mask;
  88   1              MCP2510_Enable();
  89   1      
  90   1              SendSIOData(MCP2510INSTR_BITMDFY);
  91   1              SendSIOData((unsigned char)baddress);
  92   1              SendSIOData((unsigned char)bmask);
  93   1              SendSIOData((unsigned char)bvalue);
  94   1      
  95   1              MCP2510_Disable();
  96   1      }
  97          
  98          
  99          void MCP2510_SetBandRate(CanBandRate bandrate, BOOL IsBackNormal)
 100          {
 101   1              //
 102   1              // Bit rate calculations.
 103   1              //
 104   1              //Input clock fre=16MHz
 105   1              // In this case, we'll use a speed of 125 kbit/s, 250 kbit/s, 500 kbit/s.
 106   1              // If we set the length of the propagation segment to 7 bit time quanta,
 107   1              // and we set both the phase segments to 4 quanta each,
 108   1              // one bit will be 1+7+4+4 = 16 quanta in length.
 109   1              //
 110   1              // setting the prescaler (BRP) to 0 => 500 kbit/s.
 111   1              // setting the prescaler (BRP) to 1 => 250 kbit/s.
 112   1              // setting the prescaler (BRP) to 3 => 125 kbit/s.
 113   1              //
 114   1              // If we set the length of the propagation segment to 3 bit time quanta,
 115   1              // and we set both the phase segments to 1 quanta each,
 116   1              // one bit will be 1+3+2+2 = 8 quanta in length.
 117   1              // setting the prescaler (BRP) to 0 => 1 Mbit/s.
C51 COMPILER V7.50   MCP2510                                                               07/11/2005 20:13:03 PAGE 3   

 118   1      
 119   1              // Go into configuration mode
 120   1              MCP2510_Write(MCP2510REG_CANCTRL, MODE_CONFIG);
 121   1      
 122   1              switch(bandrate){
 123   2              case BandRate_125kbps:
 124   2                      MCP2510_Write(CNF1, SJW1|BRP4); //Synchronization Jump Width Length =1 TQ
 125   2                      MCP2510_Write(CNF2, BTLMODE_CNF3|(SEG4<<3)|SEG7); // Phase Seg 1 = 4, Prop Seg = 7
 126   2                      MCP2510_Write(CNF3, SEG4);// Phase Seg 2 = 4
 127   2                      break;
 128   2              case BandRate_250kbps:
 129   2                      MCP2510_Write(CNF1, SJW1|BRP2); //Synchronization Jump Width Length =1 TQ
 130   2                      MCP2510_Write(CNF2, BTLMODE_CNF3|(SEG4<<3)|SEG7); // Phase Seg 1 = 4, Prop Seg = 7
 131   2                      MCP2510_Write(CNF3, SEG4);// Phase Seg 2 = 4
 132   2                      break;
 133   2              case BandRate_500kbps:
 134   2                      MCP2510_Write(CNF1, SJW1|BRP1); //Synchronization Jump Width Length =1 TQ
 135   2                      MCP2510_Write(CNF2, BTLMODE_CNF3|(SEG4<<3)|SEG7); // Phase Seg 1 = 4, Prop Seg = 7
 136   2                      MCP2510_Write(CNF3, SEG4);// Phase Seg 2 = 4
 137   2                      break;
 138   2              case BandRate_1Mbps:
 139   2                      MCP2510_Write(CNF1, SJW1|BRP1); //Synchronization Jump Width Length =1 TQ
 140   2                      MCP2510_Write(CNF2, BTLMODE_CNF3|(SEG3<<3)|SEG2); // Phase Seg 1 = 2, Prop Seg = 3
 141   2                      MCP2510_Write(CNF3, SEG2);// Phase Seg 2 = 1
 142   2                      break;
 143   2              }
 144   1      
 145   1              if(IsBackNormal){
 146   2                      //Enable clock output
 147   2                      MCP2510_Write(CLKCTRL, MODE_LOOPBACK | CLKEN | CLK1);
 148   2              }
 149   1      }
 150          
 151          
 152          /*******************************************\
 153          *       序列讀取MCP2510數據                             *
 154          \*******************************************/
 155          /*unsigned char MCP2510_SRead( int address)
 156          {         unsigned char value[8];
 157                  //int i;
 158          
 159                  MCP2510_Enable();
 160                  SendSIOData(MCP2510INSTR_READ);
 161                  SendSIOData((unsigned char)address);
 162                  //for(i=0;i<nlength;i++)
 163              value[0]=ReadSIOData();     
 164                  MCP2510_Disable();
 165                  return value[0];
 166          }*/
 167          
 168          
 169          /*******************************************\
 170          *       序列寫入MCP2510數據                             *
 171          \*******************************************/
 172          void MCP2510_Swrite(int address,unsigned char value,unsigned char nlength)
 173          {   //int address;
 174   1              int i;
 175   1              unsigned char IDarry[1];
 176   1              IDarry[0]=value;
 177   1              MCP2510_Enable();
 178   1      
 179   1              SendSIOData(MCP2510INSTR_WRITE);
C51 COMPILER V7.50   MCP2510                                                               07/11/2005 20:13:03 PAGE 4   

 180   1              SendSIOData((unsigned char)address);
 181   1      
 182   1              for (i=0; i < nlength; i++) {
 183   2                      SendSIOData(IDarry[i]);
 184   2                      //pdata++;
 185   2              }
 186   1              MCP2510_Disable();
 187   1      }
 188          
 189          /*******************************************\
 190          *       讀取MCP2510 CAN總線ID                           *
 191          *       參數: address為MCP2510寄存器地址*
 192          *                       can_id為返回的ID值                      *
 193          *       返回值                                                          *
 194          *       TRUE,表示是擴展ID(29位)                        *
 195          *       FALSE,表示非擴展ID(11位)               *
 196          \*******************************************/
 197          /*BOOL MCP2510_Read_Can_ID( int address, U32* can_id)
 198          {
 199                  U32 tbufdata;
 200                  unsigned char* p=(unsigned char*)&tbufdata;
 201          
 202                  MCP2510_SRead(address, p, 4);
 203                  *can_id = (tbufdata<<3)|((tbufdata>>13)&0x7);
 204                  *can_id &= 0x7ff;
 205          
 206                  if ( (p[MCP2510LREG_SIDL] & TXB_EXIDE_M) ==  TXB_EXIDE_M ) {
 207                          *can_id = (*can_id<<2) | (p[MCP2510LREG_SIDL] & 0x03);
 208                          *can_id <<= 16;
 209                          *can_id |= tbufdata>>16;
 210                          return TRUE;
 211                  }
 212                  return FALSE;
 213          }*/
 214          
 215          /***********************************************************\
 216          *       讀取MCP2510 接收的數據                                                  *
 217          *       參數: nbuffer為第幾個緩沖區可以為3或者4 *
 218          *                       can_id為返回的ID值                                                      *
 219          *                       rxRTR表示是否是RXRTR                                            *
 220          *                       data表示讀取的數據                                              *
 221          *                       dlc表示data length code                                                 *
 222          *       返回值                                                                                          *
 223          *               TRUE,表示是擴展總線                                            *
 224          *               FALSE,表示非擴展總線                                           *
 225          \***********************************************************/
 226          /*BOOL MCP2510_Read_Can(U8 nbuffer, BOOL* rxRTR, U32* can_id, U8* data , U8* dlc)
 227          {
 228          
 229                  U8 mcp_addr = (nbuffer<<4) + 0x31, ctrl;
 230                  BOOL IsExt;
 231          
 232                  IsExt=MCP2510_Read_Can_ID( mcp_addr, can_id);
 233          
 234                  ctrl=MCP2510_Read(mcp_addr-1);
 235                  *dlc=MCP2510_Read( mcp_addr+4);
 236                  if ((ctrl & 0x08)) {
 237                          *rxRTR = TRUE;
 238                  }
 239                  else{
 240                          *rxRTR = FALSE;
 241                  }
C51 COMPILER V7.50   MCP2510                                                               07/11/2005 20:13:03 PAGE 5   

 242                  *dlc &= DLC_MASK;
 243                  MCP2510_SRead(mcp_addr+5, data, *dlc);
 244          
 245                  return IsExt;
 246          }*/
 247          
 248          
 249          /***********************************************************\
 250          *       寫入MCP2510 發送的數據                                                  *
 251          *       參數: nbuffer為第幾個緩沖區可以為0、1、2        *
 252          *                       ext表示是否是擴展總線                                   *
 253          *                       can_id為返回的ID值                                                      *
 254          *                       rxRTR表示是否是RXRTR                                            *
 255          *                       data表示讀取的數據                                              *
 256          *                       dlc表示data length code                                                 *
 257          *               FALSE,表示非擴展總線                                           *
 258          \***********************************************************/
 259          /*void MCP2510_Write_Can( U8 nbuffer, BOOL ext, U32 can_id, BOOL rxRTR, U8* data,U8 dlc )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区久久影院| 国产色婷婷亚洲99精品小说| 日本va欧美va瓶| 午夜影视日本亚洲欧洲精品| 亚洲一卡二卡三卡四卡无卡久久| 麻豆视频观看网址久久| www.av精品| 亚洲欧美一区二区不卡| 日韩三级视频在线观看| 一区二区三区欧美日| 欧美一区二区三区日韩视频| 国产一区在线观看麻豆| 国产精品一区二区三区网站| 99精品国产91久久久久久 | 国产精品丝袜91| 亚洲一区二区五区| 国产精品911| 欧美成人精品3d动漫h| 国产精品不卡在线| 日本成人在线网站| 狠狠狠色丁香婷婷综合激情| 成人小视频在线| 精品国产乱码久久久久久1区2区 | 欧美一级生活片| 亚洲一区二区三区自拍| 国产成人在线免费观看| 国产日韩欧美高清| 国产精品伦一区二区三级视频| 狠狠色狠狠色综合系列| 奇米综合一区二区三区精品视频| 欧美国产日韩一二三区| 中文字幕中文字幕在线一区| 激情综合五月天| 日韩欧美成人午夜| 9i看片成人免费高清| 91污在线观看| 成人网在线播放| 国产伦精品一区二区三区免费| 日韩国产高清在线| 不卡欧美aaaaa| 91免费国产在线观看| 国产日韩精品一区二区三区| 极品销魂美女一区二区三区| 日韩欧美国产一区二区在线播放| 日韩av午夜在线观看| 555夜色666亚洲国产免| 美女视频黄免费的久久| 久久久久久**毛片大全| 国产精品系列在线观看| 国产视频一区二区三区在线观看| 欧美撒尿777hd撒尿| 日本怡春院一区二区| 欧美一级xxx| 99精品国产热久久91蜜凸| 亚洲乱码国产乱码精品精的特点| 1区2区3区欧美| 日韩视频不卡中文| av综合在线播放| 欧美aaaaaa午夜精品| 2014亚洲片线观看视频免费| voyeur盗摄精品| 国产一本一道久久香蕉| 樱花影视一区二区| 中文字幕免费一区| 日韩一级大片在线观看| 欧美日韩国产成人在线免费| 成人av在线电影| 国产一区不卡精品| 麻豆91在线观看| 免费成人在线视频观看| 日韩在线观看一区二区| 一区二区三国产精华液| 一区二区三区中文字幕电影| 成人欧美一区二区三区| 国产精品久久免费看| 国产精品视频第一区| 国产精品视频免费| 亚洲女同一区二区| 亚洲专区一二三| 久久久av毛片精品| 国产人成亚洲第一网站在线播放| 五月综合激情婷婷六月色窝| 亚洲第一会所有码转帖| 亚洲成av人影院| 久久国产尿小便嘘嘘尿| 国产一区二区三区久久悠悠色av| 欧美三级在线视频| 欧美区视频在线观看| 2023国产精品视频| 亚洲人亚洲人成电影网站色| 欧美一级一区二区| 亚洲一区二区在线视频| 亚洲图片有声小说| 国产一区二区成人久久免费影院 | 一本一道综合狠狠老| 成人免费精品视频| 欧美精品乱码久久久久久按摩| 亚洲欧美日韩国产一区二区三区 | 日韩精品午夜视频| 久久99热狠狠色一区二区| 99久久伊人久久99| 精品久久久久久久人人人人传媒| 青青草97国产精品免费观看 | 一区二区三区中文字幕电影| 午夜精品久久久| 91麻豆免费观看| 久久午夜老司机| 久久精品国产澳门| 日韩精品一区二区三区swag | 色呦呦一区二区三区| 久久人人97超碰com| 精品亚洲免费视频| 欧美日韩国产精选| 日韩av一区二区三区| 91精品午夜视频| 久久99蜜桃精品| www国产精品av| 国产精华液一区二区三区| 欧美精品一区二区三区高清aⅴ| 91久久精品一区二区三| 一区二区成人在线| 精品日韩99亚洲| 国产91精品一区二区麻豆网站| 日韩成人一级片| xf在线a精品一区二区视频网站| 在线观看亚洲专区| 黄页网站大全一区二区| 国产日韩欧美亚洲| 成人毛片老司机大片| 亚洲综合在线视频| 国产女主播在线一区二区| 99re在线精品| 激情综合五月天| 亚洲高清免费在线| 国产精品情趣视频| 日韩免费一区二区| 欧美日韩成人综合天天影院| 国产一区二区三区久久久| 亚洲成在线观看| 亚洲欧美在线高清| 日本一二三不卡| 久久久久久久电影| 久久伊人中文字幕| 欧美一区二区高清| 911精品国产一区二区在线| 91老司机福利 在线| 国产精品一品视频| 国产suv精品一区二区883| 免费久久99精品国产| 夜夜爽夜夜爽精品视频| 国产精品污污网站在线观看| 日韩欧美在线综合网| 欧美无人高清视频在线观看| 99久久精品免费看国产免费软件| 欧美一区二区女人| 日韩三级高清在线| 精品蜜桃在线看| 精品国产99国产精品| 91福利精品第一导航| 91国偷自产一区二区三区成为亚洲经典 | 一区在线中文字幕| 亚洲欧美日韩中文播放| 依依成人综合视频| 男女男精品视频| 成人午夜视频网站| 欧美亚洲禁片免费| 久久久国际精品| 亚洲国产成人精品视频| 一区二区三区免费| 国产精品亚洲一区二区三区在线 | 久久综合九色综合97_久久久 | 欧美日韩国产综合久久| 久久久一区二区| 亚洲午夜激情网站| 粉嫩绯色av一区二区在线观看| 精品日韩欧美一区二区| 一区二区三区日韩欧美| 国产酒店精品激情| 欧美日韩夫妻久久| 一区二区三区日本| 国产精品白丝av| 日韩欧美国产麻豆| 极品少妇xxxx精品少妇偷拍| 欧美三级乱人伦电影| 亚洲色图视频免费播放| 国产麻豆成人精品| 日韩美女一区二区三区| 日韩综合一区二区| 欧美猛男男办公室激情| 亚洲国产另类av| 欧美调教femdomvk| 一级日本不卡的影视| 欧美日韩一区不卡| 性欧美疯狂xxxxbbbb| 欧美美女网站色| 蜜桃在线一区二区三区| 精品国产伦一区二区三区观看体验| 91福利在线看| 六月丁香综合在线视频| 国产亚洲福利社区一区|