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

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

?? main.c

?? 沒有ARM開發板如何搞開發,有了PROTEUS就可以搞定!快來學習PROTEUS哦! 此為proteus-ARM2100-I2C仿真文件及原碼,趕快下載學習哦!收益非淺啊!
?? C
字號:
/*******************************************************************************
*File: Main.C
*功能: 使用硬件I2C對EEPROM進行操作,利用中斷方式操作
*******************************************************************************/
#include   "config.h"
#define CAT24WC02 0xA0         /*定義器件地址*/
#define LED1CON 0x00000400     /*P0.10引腳控制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


/*******************************************************************************
*名稱: IRQ_I2C()
*功能: I2C中斷,通過判斷I2C狀態字進行相應的操作
*******************************************************************************/
void __irq 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)
 { IO0SET=LED1CON;
  DelayNS(50);
  IO0CLR=LED1CON;
  DelayNS(50);
 }
}
/*******************************************************************************
*名稱: main()
*功能: 向E2PROM寫入10字節數據,然后讀出判斷是否正確寫入
*******************************************************************************/
int main(void)
{  uint8  i;
   uint8  data_buf[30];
   PINSEL0=0x00000050;              //設置I/O口工作模式,使用I2C
   PINSEL1=0x00000000;
   IO0DIR=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();
   }
   IO0CLR=LED1CON;    //點亮LED1
   while(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久伊人| 国产精品毛片无遮挡高清| 久久亚洲免费视频| 亚洲午夜精品网| 成人午夜av在线| 欧美一区二区三区免费视频| 综合久久综合久久| 国产真实乱对白精彩久久| 欧美日韩一区二区三区在线看| 久久伊人蜜桃av一区二区| 亚洲一区二区三区四区五区中文| 国产经典欧美精品| 精品入口麻豆88视频| 五月激情综合色| 91久久久免费一区二区| 国产精品私人影院| 国产另类ts人妖一区二区| 欧美日韩黄色影视| 午夜在线成人av| 欧美日韩一区国产| 亚洲成人一区在线| 欧美日韩一区不卡| 亚洲一区二区视频| 欧美视频自拍偷拍| 亚洲一区二区五区| 欧美日韩在线观看一区二区 | 国产最新精品免费| 欧美一级在线观看| 全国精品久久少妇| 欧美v亚洲v综合ⅴ国产v| 免费在线观看视频一区| 日韩欧美不卡一区| 久久精品免费观看| 日韩精品一区二区三区三区免费| 日本中文字幕不卡| 日韩一区二区视频在线观看| 日韩电影在线观看一区| 日韩欧美一级二级三级| 国产麻豆91精品| 国产精品日产欧美久久久久| 粉嫩aⅴ一区二区三区四区五区| 国产无一区二区| 成人午夜免费电影| 夜夜精品视频一区二区| 欧美日韩国产免费一区二区 | 555夜色666亚洲国产免| 全部av―极品视觉盛宴亚洲| 日韩一区二区电影| 国产精品自产自拍| 国产精品二区一区二区aⅴ污介绍| 91在线观看免费视频| 亚洲一本大道在线| 久久综合九色综合97婷婷女人| 国产在线播放一区三区四| 国产欧美精品区一区二区三区| 97久久精品人人做人人爽50路 | 中文子幕无线码一区tr| 一本大道综合伊人精品热热| 香蕉久久夜色精品国产使用方法| 欧美顶级少妇做爰| 国产乱码一区二区三区| 亚洲精品国产无套在线观| 欧美精品第一页| 韩国精品久久久| 一区二区三区日本| 精品久久人人做人人爰| 91网站在线观看视频| 日韩高清国产一区在线| 亚洲国产精品成人综合| 欧美日韩一级视频| 国产成人高清视频| 亚洲成国产人片在线观看| 26uuu精品一区二区三区四区在线| av亚洲精华国产精华精| 蜜桃视频在线观看一区二区| 中文成人av在线| 日韩视频国产视频| 91一区二区三区在线观看| 乱中年女人伦av一区二区| 亚洲欧美日韩在线不卡| 精品国产伦一区二区三区免费| 成人av电影在线观看| 日本不卡的三区四区五区| 国产精品久久久久久久久果冻传媒 | av网站一区二区三区| 日韩国产欧美在线观看| 亚洲免费大片在线观看| 久久久电影一区二区三区| 3d成人动漫网站| 欧美性欧美巨大黑白大战| 粉嫩欧美一区二区三区高清影视| 日本一不卡视频| 亚洲成a人v欧美综合天堂下载 | 国产亚洲一本大道中文在线| 欧美三级资源在线| 99久久伊人精品| 国产毛片一区二区| 久久国产精品无码网站| 亚洲一级不卡视频| 一区二区三区在线观看动漫| 中文字幕国产一区| 国产欧美日韩一区二区三区在线观看| 91精品欧美一区二区三区综合在| 色偷偷久久一区二区三区| 成人av在线播放网址| 国产精品一二三| 国产一区二区导航在线播放| 久久爱另类一区二区小说| 日本va欧美va精品| 日本欧美韩国一区三区| 天天操天天色综合| 五月天视频一区| 首页国产欧美久久| 人禽交欧美网站| 国内精品伊人久久久久av一坑| 日韩电影在线观看电影| 青青国产91久久久久久 | 91一区二区在线观看| 不卡av免费在线观看| 国产不卡高清在线观看视频| 国产成人一区二区精品非洲| 高清成人免费视频| 99在线热播精品免费| 99这里只有久久精品视频| 91丝袜国产在线播放| 欧美日韩在线综合| 日韩一区二区在线观看视频| 精品少妇一区二区三区| 久久久久高清精品| 亚洲视频在线一区| 亚洲成人激情社区| 韩国欧美一区二区| av成人免费在线观看| 欧美自拍偷拍午夜视频| 日韩一区二区三区四区| 久久久国产综合精品女国产盗摄| 国产日韩欧美精品电影三级在线| 国产拍欧美日韩视频二区| 国产精品久久久久影院亚瑟| 亚洲国产中文字幕| 麻豆成人av在线| 国产激情91久久精品导航 | 国产精品进线69影院| 一卡二卡欧美日韩| 美女爽到高潮91| 波多野洁衣一区| 5月丁香婷婷综合| 国产日韩欧美综合在线| 亚洲一区二区三区三| 裸体健美xxxx欧美裸体表演| 岛国精品一区二区| 欧美三级视频在线播放| 26uuu另类欧美亚洲曰本| 一区二区在线免费| 国产一区二区三区久久久| 91亚洲永久精品| 3d动漫精品啪啪一区二区竹菊| 中文无字幕一区二区三区| 石原莉奈在线亚洲二区| 成人伦理片在线| 欧美电视剧免费观看| 亚洲视频图片小说| 激情久久五月天| 在线视频你懂得一区| 久久―日本道色综合久久| 亚洲图片有声小说| 成人精品电影在线观看| 日韩精品中文字幕一区| 一区二区三区国产豹纹内裤在线| 国产精品自拍网站| 日韩一区二区三区在线| 一区二区三区在线视频播放| 国产精品1区二区.| 欧美成人video| 视频一区二区不卡| 色久优优欧美色久优优| 国产精品不卡在线| 国产麻豆精品久久一二三| 欧美老肥妇做.爰bbww视频| 亚洲丝袜精品丝袜在线| 成人av在线看| 国产亚洲精久久久久久| 久久国产尿小便嘘嘘尿| 777色狠狠一区二区三区| 亚洲综合免费观看高清完整版在线 | 综合自拍亚洲综合图不卡区| 国产剧情一区二区| 精品欧美一区二区三区精品久久| 亚洲韩国精品一区| 欧美日韩一二区| 午夜精品久久久久久| 欧美日韩另类国产亚洲欧美一级| 一区二区三区四区在线免费观看| jvid福利写真一区二区三区| 国产免费久久精品| 成人黄页在线观看| 中文成人av在线| av在线不卡电影| 亚洲欧美激情插| 色婷婷精品久久二区二区蜜臀av|