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

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

?? i2c.lst

?? i2c讀寫代碼C語言
?? LST
字號:
C51 COMPILER V7.09   I2C                                                                   10/14/2004 15:45:56 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN i2c.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE i2c.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************/
   2          /**Objective:IIC Module                                                                                 **/
   3          /*****************************************************************/
   4          /**Auther       :Seal Luo                                                                                       **/
   5          /**Date         :2004-04-06                                                                                     **/
   6          /**CopyRight:C*Core 2004                                                                                **/
   7          /*****************************************************************/
   8          #include "IICReg.h"
   9          
  10          extern  void Delayms(uint16 uiTime);
  11          
  12          /*--
  13                  Function:Generate a start signal on I2C bus
  14                                  Input:Mode      0:slave         1:master
  15                                  return void
  16          --*/
  17          void    I2C_Start(UCHAR8 ucMode,UCHAR8 ucFistAddr)
  18          {
  19   1              UCHAR8  ucReg;
  20   1      
  21   1      /* Slave mode */
  22   1              if(ucMode == SLAVE_MODE)
  23   1              {
  24   2                      /* enable control */
  25   2                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
  26   2                      ucReg |=0x01;
  27   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
  28   2                      Delayms(10);
  29   2      
  30   2                      /* enable interrupt */
  31   2                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
  32   2                      ucReg |=0x02;
  33   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
  34   2      
  35   2              }
  36   1      
  37   1      /*Master Mode */
  38   1              if(ucMode == MASTER_MODE)
  39   1              {
  40   2      
  41   2                      /* enable control */
  42   2                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
  43   2      
  44   2                      ucReg |=0x01;
  45   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
  46   2      
  47   2                      Delayms(10);
  48   2                       /* enable interrupt */
  49   2                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
  50   2      
  51   2                      ucReg |=0x02;
  52   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
  53   2      
  54   2      
  55   2                      /* config I2CSA */
C51 COMPILER V7.09   I2C                                                                   10/14/2004 15:45:56 PAGE 2   

  56   2                      ucReg = SLAVE_ADDRESS;
  57   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_SLAVE_ADDRESS_REG , ucReg);
  58   2      
  59   2                      /*config I2CCP */
  60   2                      ucReg = CLOCK_PRESCALER;
  61   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_CLOCK_PRESCALAR_REG , ucReg);
  62   2                      /* write slave address */
  63   2              ucReg = ucFistAddr;
  64   2      
  65   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_DATA_REG , ucReg);
  66   2      
  67   2              /* check bus whether IDLE */
  68   2      
  69   2                      do
  70   2                      {
  71   3                              ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
  72   3      
  73   3                      }while((ucReg>>3)==1);
  74   2      
  75   2                      /* change MSMODE 1 to 0 */
  76   2                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
  77   2      
  78   2                      ucReg |= 0x04;
  79   2                      write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
  80   2      
  81   2              }
  82   1      
  83   1      }
  84          
  85          
  86          /*--
  87                  Function:I2C Check ACK
  88                                  Input: void
  89                                  Return:1->no receive ACK     2->receive ACK             4->receive AACK
  90          
  91          --*/
  92          UCHAR8  I2C_Check_ACK(void)
  93          {
  94   1              UCHAR8  bRet = 0x01;
  95   1              UCHAR8  ucReg;
  96   1              /* read status register */
  97   1              ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
  98   1      
  99   1              if((ucReg & 0x01)==0x01)
 100   1              {
 101   2                      bRet <<=1;
 102   2              }
 103   1              if((ucReg & 0x02)==0x02)
 104   1              {
 105   2                      bRet <<=2;
 106   2              }
 107   1      
 108   1              return bRet;
 109   1      
 110   1      }
 111          
 112          
 113          /*--
 114                  Function:I2C generate a stop signal
 115                                  Input: void
 116                                  Return:void
 117          
C51 COMPILER V7.09   I2C                                                                   10/14/2004 15:45:56 PAGE 3   

 118          --*/
 119          void    I2C_Stop(void)
 120          {
 121   1              UCHAR8 ucReg;
 122   1              /* change MSMODE 1 to 0 */
 123   1              ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
 124   1              ucReg &= 0xfb;
 125   1              write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
 126   1      
 127   1      
 128   1      }
 129          
 130          
 131          
 132          /*--
 133                  Function:I2C write data to slave
 134                                  Input:
 135          
 136          --*/
 137          void    I2C_Write(UCHAR8 ucFistAddr,UCHAR8 ucData[],uint16 uiLength)
 138          {
 139   1                      UCHAR8  ucReg;
 140   1                      uint16  i;
 141   1                      ucFistAddr &= 0xfe;
 142   1                      /* send start signal */
 143   1                      I2C_Start(MASTER_MODE,ucFistAddr);
 144   1      
 145   1                      do
 146   1                      {
 147   2                              /* read status register */
 148   2                              ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
 149   2                              if((ucReg & I2C_AACK)!=0 )
 150   2                                      goto Exit;
 151   2      
 152   2                      }while((ucReg & I2C_TF) != I2C_TF);
 153   1      
 154   1      
 155   1                      /* check whether receive ack */
 156   1                      for(i=0;i<uiLength;i++)
 157   1                      {
 158   2      
 159   2                              write_port_byte( I2C_BASE_ADDRESS + I2C_DATA_REG , ucData[i]);
 160   2                              do
 161   2                              {
 162   3                                      /* read status register */
 163   3                                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
 164   3                                      if((ucReg & I2C_AACK)!=0 )
 165   3                                              goto Exit;
 166   3      
 167   3                              }while((ucReg & I2C_TF) != I2C_TF);
 168   2                      }
 169   1      
 170   1      Exit:
 171   1                      /* send stop signal */
 172   1                      I2C_Stop();
 173   1      
 174   1      
 175   1      }
 176          
 177          
 178          /*--
 179                  Function:I2C read data from slave
C51 COMPILER V7.09   I2C                                                                   10/14/2004 15:45:56 PAGE 4   

 180                                  Input:
 181          
 182          --*/
 183          void    I2C_Read(UCHAR8 ucFistAddr,UCHAR8 ucLength)
 184          {
 185   1                      UCHAR8  ucReg,tmp;
 186   1                      uint16  i;
 187   1        
 188   1                      ucFistAddr |= 0x01;
 189   1                      /* send start signal */
 190   1                      I2C_Start(MASTER_MODE,ucFistAddr);
 191   1      
 192   1                      do
 193   1                      {
 194   2                              /* read status register */
 195   2                              ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
 196   2                              if((ucReg & I2C_AACK)!=0 )
 197   2                                      goto Exit;
 198   2      
 199   2                      }while((ucReg & I2C_RC)!=I2C_RC );
 200   1      
 201   1                      /* read control register */
 202   1                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
 203   1      
 204   1                      if(ucLength>1)
 205   1                              ucReg |= 0x08;
 206   1                      else
 207   1                      {
 208   2                              ucReg &= 0xf7;
 209   2                              write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
 210   2                              do
 211   2                              {
 212   3                                      /* read status register */
 213   3                                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
 214   3      
 215   3                              }while((ucReg & I2C_TF)!= I2C_TF);
 216   2      
 217   2      //                      pI2cBuf[0] = read_port_byte( I2C_BASE_ADDRESS + I2C_DATA_REG );
 218   2                              tmp = read_port_byte( I2C_BASE_ADDRESS + I2C_DATA_REG );
 219   2                              write_port_byte(PMC_DATA_REG,tmp);
 220   2                              goto Exit;
 221   2                      }
 222   1                      write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
 223   1                      /* check whether receive ack */
 224   1                      for(i=0;i<ucLength;i++)
 225   1                      {
 226   2      
 227   2                              do
 228   2                              {
 229   3                                      /* read status register */
 230   3                                      ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_STATUS_REG);
 231   3      
 232   3      
 233   3                              }while((ucReg & I2C_TF)!= I2C_TF);
 234   2      
 235   2                              /*read data form bus when tf = 1 */
 236   2                      //      pI2cBuf[i] = read_port_byte( I2C_BASE_ADDRESS + I2C_DATA_REG );
 237   2                  tmp = read_port_byte( I2C_BASE_ADDRESS + I2C_DATA_REG );
 238   2                              write_port_byte(PMC_DATA_REG,tmp);//Write data into PMC port
 239   2                              
 240   2                              /* read status register */
 241   2                              ucReg = read_port_byte(I2C_BASE_ADDRESS + I2C_CONTROL_REG);
C51 COMPILER V7.09   I2C                                                                   10/14/2004 15:45:56 PAGE 5   

 242   2      
 243   2                              if(i== ucLength -1)
 244   2                                      goto Exit;
 245   2                              if(i == (ucLength - 2))
 246   2                                      ucReg &= 0xf7;
 247   2                              else
 248   2                                      ucReg |= 0x08;
 249   2                              write_port_byte( I2C_BASE_ADDRESS + I2C_CONTROL_REG , ucReg);
 250   2      
 251   2      
 252   2                      }
 253   1      
 254   1      Exit:
 255   1                      /* send stop signal */
 256   1                      I2C_Stop();
 257   1      }
 258          
 259          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    392    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区精华液 | 99热99精品| 欧美日韩成人一区二区| 一区二区三区中文字幕| 91小视频免费观看| 亚洲欧洲日韩综合一区二区| 亚洲国产美女搞黄色| 99精品欧美一区| 国产精品国产三级国产aⅴ入口| 欧美激情一区二区三区四区| 国产原创一区二区三区| 日韩av一区二| 亚洲一区视频在线观看视频| 亚洲丝袜美腿综合| 在线观看亚洲a| 色婷婷国产精品久久包臀| 国产成人精品三级| 91麻豆.com| 久久九九国产精品| 久久99国产精品久久99果冻传媒| 欧美日韩综合色| 视频一区免费在线观看| 国产成人在线免费| 亚洲婷婷在线视频| 欧美日韩一卡二卡三卡 | 中文字幕+乱码+中文字幕一区| 国产在线精品国自产拍免费| 久久免费偷拍视频| 成人免费视频一区| 国产欧美一区二区精品婷婷| 久久精品国产亚洲aⅴ| 久久久噜噜噜久噜久久综合| www.视频一区| 亚洲欧美日韩电影| 91麻豆精品国产自产在线观看一区| 在线不卡的av| 亚洲精品成人a在线观看| 欧美亚洲一区二区在线观看| 午夜一区二区三区视频| 久久女同互慰一区二区三区| www.av精品| 午夜视频一区在线观看| 精品久久久久久亚洲综合网 | 国产亚洲精品7777| 一本到三区不卡视频| 日日嗨av一区二区三区四区| 亚洲精品在线免费观看视频| 欧美精品乱码久久久久久按摩| 本田岬高潮一区二区三区| 麻豆精品久久精品色综合| 一区二区三区四区蜜桃| 国产精品欧美久久久久无广告| 日韩亚洲国产中文字幕欧美| 欧美日韩成人综合| 欧洲精品视频在线观看| 色综合夜色一区| 成人免费观看男女羞羞视频| 国产九九视频一区二区三区| 青青草97国产精品免费观看| 亚洲一区二区欧美激情| 亚洲欧美激情插| 综合久久久久综合| 综合久久久久久久| 亚洲女人小视频在线观看| 国产精品污www在线观看| 久久亚洲私人国产精品va媚药| 欧美顶级少妇做爰| 6080yy午夜一二三区久久| 欧美日韩精品一区二区天天拍小说| 色天使久久综合网天天| 色综合天天做天天爱| 久久精品噜噜噜成人av农村| 日韩精品免费专区| 麻豆精品一区二区综合av| 美腿丝袜亚洲色图| 蜜桃av一区二区在线观看| 精品无码三级在线观看视频| 精品亚洲免费视频| 国产拍欧美日韩视频二区| 91精品国产综合久久福利软件| 欧美无砖专区一中文字| 在线精品观看国产| 欧美日韩免费高清一区色橹橹 | 91久久香蕉国产日韩欧美9色| 成人视屏免费看| hitomi一区二区三区精品| 99re8在线精品视频免费播放| 99久久婷婷国产综合精品| 色婷婷av一区二区三区软件| 欧美日韩国产大片| 欧美大片一区二区三区| 久久久另类综合| 亚洲欧洲成人av每日更新| 一区二区三区高清在线| 视频一区中文字幕国产| 国产综合成人久久大片91| 成人黄色大片在线观看| 欧美系列日韩一区| 日韩免费一区二区三区在线播放| 欧美变态tickle挠乳网站| 国产精品久久午夜| 一片黄亚洲嫩模| 久久不见久久见免费视频1| 国产精品亚洲人在线观看| 色综合天天性综合| 国产精品青草久久| 亚洲美女免费视频| 另类小说视频一区二区| jiyouzz国产精品久久| 666欧美在线视频| 中文字幕欧美日本乱码一线二线| 一区二区三区日韩精品| 乱中年女人伦av一区二区| 99久久精品免费看国产 | 日韩欧美国产电影| 亚洲视频免费观看| 捆绑紧缚一区二区三区视频| 91一区一区三区| 91精品国产综合久久久久久久| 国产欧美日韩三级| 午夜免费久久看| 成人黄色电影在线| 欧美v亚洲v综合ⅴ国产v| 亚洲欧美日韩国产中文在线| 久久91精品久久久久久秒播| 91在线视频播放| 精品国一区二区三区| 依依成人精品视频| 国产精品一区一区三区| 欧美日韩成人在线一区| 国产精品网友自拍| 男人的天堂亚洲一区| 在线观看www91| 国产精品久久久久久久久久久免费看| 天堂久久久久va久久久久| 99re成人在线| 日本一区二区视频在线观看| 麻豆精品视频在线| 欧美最猛性xxxxx直播| 欧美韩国日本不卡| 日韩av一二三| 欧美色中文字幕| 最新成人av在线| 国产寡妇亲子伦一区二区| 欧美成人video| 日精品一区二区三区| 欧美性猛交一区二区三区精品| 18欧美乱大交hd1984| 国产成人啪免费观看软件| 欧美成人三级在线| 久久电影网站中文字幕| 6080午夜不卡| 日本在线不卡视频| 91麻豆精品国产91久久久资源速度| 一区二区在线观看免费视频播放| 成人免费视频播放| 国产精品毛片高清在线完整版| 国产麻豆成人传媒免费观看| 精品捆绑美女sm三区| 久久99国产精品久久| 日韩美女视频一区二区在线观看| 视频在线观看国产精品| 制服.丝袜.亚洲.另类.中文| 婷婷夜色潮精品综合在线| 精品久久久久久久久久久久久久久久久 | 国产一区二区免费在线| 伊人开心综合网| 免费在线观看一区| 欧美一区二区三区不卡| 美女被吸乳得到大胸91| 这里只有精品免费| 精品一区二区影视| 久久女同精品一区二区| 懂色一区二区三区免费观看| 欧美国产激情一区二区三区蜜月| www.亚洲免费av| 一区二区三区日韩欧美精品| 欧美日韩国产天堂| 免费的成人av| 国产亚洲欧美日韩日本| 不卡电影免费在线播放一区| 中文av一区二区| 欧美专区在线观看一区| 日韩在线卡一卡二| 久久免费视频一区| 成人福利视频在线看| 一区二区三区成人在线视频| 欧美日韩在线播| 精品亚洲国产成人av制服丝袜| 久久久午夜精品理论片中文字幕| 欧美日韩www| 亚洲视频综合在线| 欧美综合天天夜夜久久| 午夜欧美在线一二页| 欧美一级高清大全免费观看| 精品在线观看视频| 国产精品每日更新在线播放网址| 在线观看免费亚洲| 国产一区二区三区不卡在线观看| 亚洲免费成人av|