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

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

?? main.c

?? I2C總線的實例程序
?? C
字號:
/*******************************************************************************
*File: Main.C
*功能: 使用硬件I2C對EEPROM進行操作,利用中斷方式操作

*******************************************************************************/
#include   "config.h"
#define CAT24WC02 	0xA0         	/*	定義器件地址 */
#define LED1CON 	1<<22     		/*	P0.22引腳控制LED1,低電平點亮 */
/*以下為I2C操作時所需要的變量,在調用I2C子程序前要設置好這些變量 */
volatile uint8 I2C_sla;        //從機地址
volatile uint8 I2C_suba;       //子地址
volatile uint8 *I2C_buf;       //數據緩沖區指針(讀操作時會被更改)
volatile uint8 I2C_num;        //操作數據個數
volatile uint8 I2C_end;        //操作結束標志,為1時表示操作結束,0xFF表示操作失敗
volatile uint8 I2C_suba_en;    //子地址使能控制,讀操作設置為1,寫操作設置為2

void IRQ_I2C(void) __attribute__ ((interrupt));    // Generate Interrupt 

/*******************************************************************************
*名稱: IRQ_I2C()
*功能: I2C中斷,通過判斷I2C狀態字進行相應的操作
*******************************************************************************/
void  IRQ_I2C(void)
{ uint8 sta;
  sta=I2STAT;         //讀出I2C狀態字
  switch(sta)
  { case 0x08:     //已發送起始條件
    if(1==I2C_suba_en)I2DAT=I2C_sla&0xFE; //指定子地址讀時,先寫入地址
    else I2DAT=I2C_sla;   //否則直接發送從機地址
    I2CONCLR=0x28;        //SI=0
    break;
    
    case 0x10:
    I2DAT=I2C_sla;        //重新啟動總線后,發送從機地址
    I2CONCLR=0x28;      //SI=0
    break;
    case 0x18:          //已發送SLA+W,并已接收應答
    if(0==I2C_suba_en)  // 無子地址,則直接發送數據
    { if(I2C_num>0)
    { I2DAT=*I2C_buf++;
      I2CONCLR=0x28;
      I2C_num--;
    }
    else
    { I2CONSET=0x10;  //無數據發送,結束總線
      I2CONCLR=0x28;
      I2C_end=1;       //設置總線操作結束標志
    }
    break;
    }
    if(1==I2C_suba_en)   //發送子地址
    { I2DAT=I2C_suba;
      I2CONCLR=0x28;
    }
    if(2==I2C_suba_en)   //發送子地址
    { I2DAT=I2C_suba;
      I2CONCLR=0x28;
      I2C_suba_en=0;    //子地址已處理
    }
    break;
  case 0x28:              //已發送I2C數據,并接收到應答
    if(0==I2C_suba_en)    //無子地址,則直接發送數據
    { if(I2C_num>0)
    { I2DAT=*I2C_buf++;
    I2CONCLR=0x28;
    I2C_num--;
    }
    else
    { I2CONSET=0x10;   //無數據發送,結束總線
      I2CONCLR=0x28;
      I2C_end=1;
     }
    break;
    }
    if(1==I2C_suba_en)   //若是指定地址讀,則重新啟動總線
    { I2CONSET=0x20;
      I2CONCLR=0x18;
      I2C_suba_en=0;    //子地址已處理
    }
    break; 
case 0x20:
case 0x30:
case 0x38:
  I2CONCLR=0x28;         //總線進入不可尋址從模式
  I2C_end=0xFF;          //總線出錯,設置標志
  break;
case 0x40:               //已發送SLA+R,并已接收到應答
  if(1==I2C_num)         //最后一字節,接收數據后發送非應答信號
  { I2CONCLR=0x2C;        //AA=0,接收到數據后產生非應答
  }
  else                   //接收數據并發送應答信號
  { I2CONSET=0x04;       //AA=1,接收到數據后產生應答
    I2CONCLR=0x28;
  }
  break;
case 0x50:
  *I2C_buf++=I2DAT;  //讀取數據
  I2C_num--;
  if(1==I2C_num)
  { I2CONCLR=0x2C;  
  }
  else
  {I2CONSET=0x04;
   I2CONCLR=0x28;
  }
  break;
case 0x58:
  *I2C_buf++=I2DAT;     //讀取最后一字節數據
  I2CONSET=0x10;        //結束總線
  I2CONCLR=0x28;
  I2C_end=1;
  break;
case 0x48:
  I2CONCLR=0x28;        //總線進入不可尋址從模式
  I2C_end=0xFF;
  break;
}
VICVectAddr=0x00;        //中斷處理結束
}   

/*******************************************************************************
*名稱: ISendStr()
*功能: 使用硬件I2C發送數據
*******************************************************************************/
uint8 ISendStr(void)
{ I2C_end=0;

  I2CONCLR=0x2C;
  I2CONSET=0x40;              //使能I2C
  I2CONSET=0x64;              //設置為主機,并啟動總線
  
  while(0==I2C_end);
  if(1==I2C_end)return(1);
  else return(0);
}
/*******************************************************************************
*名稱: IRcvStr()
*功能: 使用硬件I2C讀取數據
*******************************************************************************/
uint8 IRcvStr(void)
{ if(0==I2C_num)return(0);
  I2C_end=0;
  I2CONCLR=0x2C;
  I2CONSET=0x40; //使能I2C
  I2CONSET=0x64;   //設置為主機,并啟動總線
  while(0==I2C_end);
  if(1==I2C_end)return(1);
  else return(0);
}
/*******************************************************************************
*名稱:I2C_Init()
*功能:I2C初始化,包括初始化其中斷為向量IRQ中斷
*******************************************************************************/
void I2C_Init(void)
{ /*設置I2C時鐘為100kHz*/
  I2SCLH=I2SCLL=14;          //晶振為11.0592MHz,Fpclk=2.7648MHz
  /*設置I2C中斷允許*/
  VICIntSelect=0x00000000;     //設置所有通道為IRQ中斷
  VICVectCntl0=0x29;          //I2C通道分配到IRQ Slot0,即優先級最高
  VICVectAddr0=(int)IRQ_I2C;  //設置I2C中斷向量地址
  VICIntEnable=0x0200;            //使能I2C中斷
}
/*******************************************************************************
*名稱: DelayNS()
*功能: 長軟件延時
*******************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
  for(;dly>0;dly--)
    for(i=0;i<50000;i++);
}
/*******************************************************************************
*名稱: WrEepromErr()
*功能: 讀寫E2PROM出錯報警,即閃動LED1
*******************************************************************************/
void WrEepromErr(void)
{ while(1)
{ IOSET=LED1CON;
  DelayNS(10);
  IOCLR=LED1CON;
  DelayNS(10);
}
}
/*******************************************************************************
*名稱: main()
*功能: 向E2PROM寫入10字節數據,然后讀出判斷是否正確寫入
*******************************************************************************/
int main(void)
{  uint8  i;
   uint8  data_buf[30];
   PINSEL0=0x00000050;              //設置I/O口工作模式,使用I2C
   PINSEL1=0x00000000;
   IODIR=LED1CON;                  //設置LED1控制口為輸出,其它I/O為輸入
   I2C_Init();                    //I2C初始化
   for (i=0;i<10;i++)data_buf[i]=i+'0';
   I2C_sla=CAT24WC02;
   I2C_suba=0x00;
   I2C_suba_en=2;
   I2C_buf=data_buf;
   I2C_num=10;
   ISendStr();             //在0x00地址處寫入10字節數據
   DelayNS(1);             //等待寫周期結束
   for(i=0;i<10;i++)data_buf[i]=0;
   I2C_sla=CAT24WC02+1;
   I2C_suba=0x00;
   I2C_suba_en=1;
   I2C_buf=data_buf;
   I2C_num=10;
   IRcvStr();             //在0x00地址處讀出10字節數據
   /*校驗讀出的數據,若不正確則閃爍LED報警*/
   for(i=0;i<10;i++)
   { if(data_buf[i]!=(i+'0'))WrEepromErr();
   }
   IOCLR=LED1CON;    //點亮LED1
   while(1);
   //return(0);
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区三区| 欧美一级片免费看| 7777精品久久久大香线蕉| 欧美日韩视频在线第一区| 欧美色区777第一页| 欧美日韩在线不卡| 欧美日韩免费视频| 精品国产凹凸成av人网站| 精品处破学生在线二十三| 色综合久久久久久久久| 捆绑变态av一区二区三区| 久久国产三级精品| jlzzjlzz亚洲日本少妇| 色先锋久久av资源部| 538在线一区二区精品国产| 久久综合九色综合久久久精品综合| 日本一区二区三区dvd视频在线| 亚洲另类在线视频| 精品一区在线看| 欧美中文字幕一二三区视频| 精品日韩av一区二区| 国产精品久久久久久久久搜平片 | 国产亚洲福利社区一区| 亚洲午夜视频在线观看| 国产毛片精品国产一区二区三区| 激情综合色综合久久综合| 欧美性高清videossexo| 欧美精品一区男女天堂| 亚洲免费三区一区二区| 激情综合一区二区三区| 欧美高清性hdvideosex| 伊人色综合久久天天| 国产成人自拍高清视频在线免费播放| 欧美亚洲动漫精品| ...av二区三区久久精品| 午夜激情综合网| 日本道免费精品一区二区三区| 国产欧美日韩在线| 久久精品久久综合| 欧洲亚洲精品在线| 午夜一区二区三区在线观看| 波波电影院一区二区三区| 日韩欧美一级精品久久| 午夜视频在线观看一区| 91福利在线免费观看| 亚洲五码中文字幕| 欧美影视一区二区三区| 亚洲免费色视频| 成人性生交大片免费| 国产日韩欧美不卡在线| 成人三级伦理片| 国产精品天美传媒沈樵| 国产乱子轮精品视频| 久久综合狠狠综合| av一区二区久久| 亚洲欧洲综合另类| 欧美性大战久久久| 午夜精品视频一区| 欧美精品一区男女天堂| 97久久超碰国产精品电影| 亚洲精品免费在线| 欧美顶级少妇做爰| 免费高清视频精品| 欧美一级精品在线| 成人av小说网| 亚洲一区在线免费观看| 日韩欧美www| 国产成人综合精品三级| 日韩精品五月天| 日韩午夜激情免费电影| a4yy欧美一区二区三区| 亚洲一区二区欧美| 午夜亚洲福利老司机| 国产成人小视频| 亚洲视频每日更新| 26uuuu精品一区二区| 色av成人天堂桃色av| 国产在线精品一区二区三区不卡 | 在线欧美日韩国产| 免费高清在线视频一区·| 久久久久久久久蜜桃| 欧美一级在线观看| 日本道色综合久久| 国产69精品久久99不卡| 午夜激情久久久| 亚洲精品免费播放| 国产欧美日产一区| 欧美mv日韩mv国产网站app| 欧美精选在线播放| 国产主播一区二区三区| 亚洲国产中文字幕在线视频综合| 久久人人爽人人爽| 制服丝袜亚洲色图| 91丨porny丨蝌蚪视频| 国内成人免费视频| 欧美aaa在线| 日本免费新一区视频| 奇米亚洲午夜久久精品| 亚洲综合成人网| 亚洲精品视频在线| 综合欧美一区二区三区| 日韩av网站在线观看| 最新热久久免费视频| 国产精品亲子伦对白| 国产精品视频yy9299一区| 日本一区二区成人在线| 中文字幕制服丝袜成人av| 国产精品久久久久影院| 亚洲欧美日韩在线| 亚洲影院久久精品| 视频一区视频二区中文| 婷婷一区二区三区| 美女久久久精品| 成人免费av在线| 色噜噜狠狠色综合欧洲selulu| 欧美三级蜜桃2在线观看| 91麻豆精品在线观看| av在线不卡电影| 欧美色图12p| 久久久91精品国产一区二区精品| 中文字幕va一区二区三区| 亚洲福利国产精品| 高清不卡一区二区| 欧美一区二区三区日韩| 日本一区二区免费在线观看视频| 一区二区三区精品在线| 精油按摩中文字幕久久| 亚洲免费在线观看视频| 精品国产三级a在线观看| 自拍偷拍亚洲欧美日韩| 日韩电影在线免费看| 不卡av在线免费观看| www成人在线观看| 美女免费视频一区二区| 91丨porny丨国产入口| 欧美色老头old∨ideo| 欧美精品乱码久久久久久按摩 | 日韩欧美一区二区免费| 一区二区三区久久| 精品亚洲国产成人av制服丝袜| 一本一道波多野结衣一区二区| 久久久久国产精品麻豆ai换脸| 视频一区中文字幕| 91啪九色porn原创视频在线观看| 精品成人一区二区三区| 久久爱另类一区二区小说| 7878成人国产在线观看| 一区二区三区波多野结衣在线观看| 国产一本一道久久香蕉| 精品国产亚洲在线| 国产精品一二二区| 国产精品美女久久久久aⅴ| 成人精品gif动图一区| 国产三级精品视频| 波多野结衣亚洲一区| 国产精品久久影院| 日本国产一区二区| 亚洲成av人**亚洲成av**| 5月丁香婷婷综合| 狠狠色丁香婷婷综合久久片| 久久免费偷拍视频| 国产精品一区在线观看你懂的| 久久综合九色综合久久久精品综合 | 夜色激情一区二区| 欧美一级专区免费大片| 国产成人久久精品77777最新版本| 久久青草欧美一区二区三区| 99视频在线观看一区三区| 怡红院av一区二区三区| 欧洲中文字幕精品| 蜜臀久久99精品久久久久久9| 久久综合国产精品| 91在线视频18| 日本午夜精品一区二区三区电影| 91精品国产综合久久婷婷香蕉| 精品无人码麻豆乱码1区2区| 国产亚洲一区字幕| 欧美性受极品xxxx喷水| 国产自产2019最新不卡| 免费在线看成人av| 欧美激情在线观看视频免费| 欧美天堂亚洲电影院在线播放| 国产精品一区二区无线| 亚洲成人黄色小说| 中文字幕一区二区三区四区| 日韩亚洲欧美一区| 91首页免费视频| 丁香另类激情小说| 精品在线免费视频| 日日摸夜夜添夜夜添国产精品| 国产精品看片你懂得| 国产午夜精品久久| 日韩精品一区二区三区老鸭窝 | 中文字幕一区在线| 国产亚洲午夜高清国产拍精品| 欧美日韩国产综合视频在线观看| 风间由美一区二区三区在线观看| 丝袜亚洲另类欧美综合| 亚洲成av人在线观看| 一区二区三区久久久|