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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? i2cint.c

?? LPC214X_LCD12864點(diǎn)亮液晶程序
?? C
字號(hào):
/****************************************************************************
* 文件名:I2CINT.C
* 功能:硬件I2C軟件包,利用中斷方式操作。
* 說(shuō)明:主程序要配置好I2C總線接口(I2C引腳功能和I2C中斷,并已使能I2C主模式)
****************************************************************************/
#include  "config.h" 

/* 以下為I2C操作時(shí)所需要的變量 */
volatile  uint8  I2C_sla;           // 從機(jī)地址(即器件地址)
volatile  uint8  I2C_suba;          // 子地址
volatile  uint8  *I2C_buf;          // 數(shù)據(jù)緩沖區(qū)指針 (讀操作時(shí)會(huì)被更改)
volatile  uint8  I2C_num;           // 操作數(shù)據(jù)個(gè)數(shù) (會(huì)被更改)
volatile  uint8  I2C_end;           // 操作結(jié)束標(biāo)志,為1時(shí)表示操作結(jié)束,為0xFF時(shí)表示操作失敗 (會(huì)被設(shè)置)
volatile  uint8  I2C_suba_en;       // 子地址使能控制,讀操作時(shí)請(qǐng)?jiān)O(shè)置為1,寫(xiě)操作時(shí)請(qǐng)?jiān)O(shè)置為2 (會(huì)被更改)


/****************************************************************************
* 名稱(chēng):IRQ_I2C()
* 功能:I2C中斷,通過(guò)判斷I2C狀態(tài)字進(jìn)行相應(yīng)的操作。
* 入口參數(shù):無(wú)
* 出口參數(shù):無(wú)
****************************************************************************/
void  __irq  IRQ_I2C(void)
{  uint8  sta;

   sta = I2C0STAT;                    // 讀出I2C狀態(tài)字
   switch(sta)
   {  case  0x08:                   // 己發(fā)送起始條件
            if(1==I2C_suba_en) I2C0DAT = I2C_sla&0xFE;    // 指定子地址讀時(shí),先寫(xiě)入地址
              else I2C0DAT = I2C_sla;                     // 否則直接發(fā)送從機(jī)地址
            I2C0CONCLR = 0x28;        // SI=0
            break;
            
      case  0x10:
            I2C0DAT = I2C_sla;        // 重啟動(dòng)總線后,發(fā)送從地址
            I2C0CONCLR = 0x28;        // SI=0
            break;
   
      case  0x18:                   // 已發(fā)送SLA+W,并已接收應(yīng)答
            if(0==I2C_suba_en)      // 無(wú)子地址,則直接發(fā)送數(shù)據(jù)
            {  if(I2C_num>0)
               {  I2C0DAT = *I2C_buf++;
                  I2C0CONCLR = 0x28; 
                  I2C_num--;
               }
               else
               {  I2C0CONSET = 0x10;  // 無(wú)數(shù)據(jù)發(fā)送,結(jié)束總線
                  I2C0CONCLR = 0x28;
                  I2C_end = 1;      // 設(shè)置總線操作結(jié)束標(biāo)志
               }
               break;
            }
            if(1==I2C_suba_en)      // 發(fā)送子地址
            {  I2C0DAT = I2C_suba;
               I2C0CONCLR = 0x28;
            }
            if(2==I2C_suba_en)
            {  I2C0DAT = I2C_suba;
               I2C0CONCLR = 0x28;
               I2C_suba_en = 0;     // 子地址己處理
            }
            break;
            
      case  0x28:                   // 已發(fā)送I2C數(shù)據(jù),并接收到應(yīng)答
            if(0==I2C_suba_en)      // 無(wú)子地址,則直接發(fā)送數(shù)據(jù)
            {  if(I2C_num>0)
               {  I2C0DAT = *I2C_buf++;
                  I2C0CONCLR = 0x28; 
                  I2C_num--;
               }
               else
               {  I2C0CONSET = 0x10;  // 無(wú)數(shù)據(jù)發(fā)送,結(jié)束總線
                  I2C0CONCLR = 0x28;
                  I2C_end = 1; 
               }
               break;
            }
            if(1==I2C_suba_en)      // 若是指定地址讀,則重新啟動(dòng)總線
            {  I2C0CONSET = 0x20;
               I2C0CONCLR = 0x08;
               I2C_suba_en = 0;     // 子地址己處理
            }
            break;
   
   
      case  0x20:
      case  0x30:
      case  0x38:
            I2C0CONCLR = 0x28;        // 總線進(jìn)入不可尋址從模式
            I2C_end = 0xFF;         // 總線出錯(cuò),設(shè)置標(biāo)志
            break;
   
   
      case  0x40:                   // 己發(fā)送SLA+R,并已接收到應(yīng)答
            if(1==I2C_num)          // 最后一字節(jié),接收數(shù)據(jù)后發(fā)送非應(yīng)答信號(hào)
            {  I2C0CONCLR = 0x2C;     // AA=0,接收到數(shù)據(jù)后產(chǎn)生非應(yīng)答
            }
            else                    // 接收數(shù)據(jù)并發(fā)送應(yīng)答信號(hào)
            {  I2C0CONSET = 0x04;     // AA=1,接收到數(shù)據(jù)后產(chǎn)生應(yīng)答
               I2C0CONCLR = 0x28;
            }
            break;
            
      case  0x50:
            *I2C_buf++ = I2C0DAT;     // 讀取數(shù)據(jù)
            I2C_num--;
            if(1==I2C_num)
            {  I2C0CONCLR = 0x2C;     // AA=0,接收到數(shù)據(jù)后產(chǎn)生非應(yīng)答
            }
            else
            {  I2C0CONSET = 0x04;     // AA=1,接收到數(shù)據(jù)后產(chǎn)生應(yīng)答
               I2C0CONCLR = 0x28;
            }
            break;
      
      case  0x58:
            *I2C_buf++ = I2C0DAT;     // 讀取最后一字節(jié)數(shù)據(jù)
            I2C0CONSET = 0x10;        // 結(jié)束總線
            I2C0CONCLR = 0x28;
            I2C_end = 1; 
            break;
      
      case  0x48:
            I2C0CONCLR = 0x28;        // 總線進(jìn)入不可尋址從模式
            I2C_end = 0xFF; 
            break;
            
      default: 
            break;
   }
   

   VICVectAddr = 0x00;              // 中斷處理結(jié)束
}



/****************************************************************************
* 名稱(chēng):ISendByte()
* 功能:向無(wú)子地址器件發(fā)送一字節(jié)數(shù)據(jù)。
* 入口參數(shù):sla		器件地址
*          dat		要發(fā)送的數(shù)據(jù)
* 出口參數(shù):返回值為0時(shí)表示出錯(cuò),為1時(shí)表示操作正確。
* 說(shuō)明:使用前要初始化好I2C引腳功能和I2C中斷,并已使能I2C主模式
****************************************************************************/
uint8  ISendByte(uint8 sla, uint8 dat)
{  /* 參數(shù)設(shè)置 */
   I2C_sla = sla;		// 寫(xiě)操作的器件地址
   I2C_buf = &dat;		// 待發(fā)送的數(shù)據(jù)
   I2C_num = 1;			// 發(fā)送1字節(jié)數(shù)據(jù)
   I2C_suba_en = 0;		// 無(wú)子地址
   I2C_end = 0;
   
   I2C0CONCLR = 0x2C;
   I2C0CONSET = 0x60;             // 設(shè)置為主機(jī),并啟動(dòng)總線
   
   while(0==I2C_end);
   if(1==I2C_end) return(1);
     else return(0);
}



/****************************************************************************
* 名稱(chēng):ISendStr()
* 功能:向有子地址器件發(fā)送多字節(jié)數(shù)據(jù)。
* 入口參數(shù):sla		器件從機(jī)地址
*          suba		器件子地址
*          s		數(shù)據(jù)發(fā)送緩沖區(qū)指針
*          no		發(fā)送數(shù)據(jù)個(gè)數(shù)
* 出口參數(shù):返回值為0時(shí)表示出錯(cuò),為1時(shí)表示操作正確。
* 說(shuō)明:使用前要初始化好I2C引腳功能和I2C中斷,并已使能I2C主模式
****************************************************************************/
uint8  ISendStr(uint8 sla, uint8 suba, uint8 *s, uint8 no)
{  /* 參數(shù)設(shè)置 */
   I2C_sla = sla;		// 寫(xiě)操作的器件地址
   I2C_suba = suba;		// 子地址
   I2C_buf = s;			
   I2C_num = no;	
   I2C_suba_en = 2;		// 有子地址寫(xiě)
   I2C_end = 0;
   
   I2C0CONCLR = 0x2C;
   I2C0CONSET = 0x60;             // 設(shè)置為主機(jī),并啟動(dòng)總線
   
   while(0==I2C_end);
   if(1==I2C_end) return(1);
     else return(0);
}



/****************************************************************************
* 名稱(chēng):IRcvByte()
* 功能:向無(wú)子地址器件讀取一字節(jié)數(shù)據(jù)。
* 入口參數(shù):sla		器件地址
*          dat		接收數(shù)據(jù)的變量指針
* 出口參數(shù):返回值為0時(shí)表示操作出錯(cuò),為1時(shí)表示操作正確。
* 說(shuō)明:使用前要初始化好I2C引腳功能和I2C中斷,并已使能I2C主模式
****************************************************************************/
uint8  IRcvByte(uint8 sla, uint8 *dat)
{  /* 參數(shù)設(shè)置 */
   I2C_sla = sla+1;		// 讀操作的器件地址
   I2C_buf = dat;
   I2C_num = 1;
   I2C_suba_en = 0;		// 無(wú)子地址
   I2C_end = 0;
   
   I2C0CONCLR = 0x2C;
   I2C0CONSET = 0x60;             // 設(shè)置為主機(jī),并啟動(dòng)總線
   
   while(0==I2C_end);
   if(1==I2C_end) return(1);
     else return(0);
}



/****************************************************************************
* 名稱(chēng):IRcvStr()
* 功能:向有子地址器件讀取多字節(jié)數(shù)據(jù)。
* 入口參數(shù):sla		器件地址
*          suba		器件子地址
*          s		數(shù)據(jù)接收緩沖區(qū)指針
*	   	   no 		讀取數(shù)據(jù)個(gè)數(shù)
* 出口參數(shù):返回值為0時(shí)表示操作出錯(cuò),為1時(shí)表示操作正確。
* 說(shuō)明:使用前要初始化好I2C引腳功能和I2C中斷,并已使能I2C主模式
****************************************************************************/
uint8  IRcvStr(uint8 sla, uint8 suba, uint8 *s, uint8 no)
{  if(0==no) return(0);
   
   /* 參數(shù)設(shè)置 */
   I2C_sla = sla+1;		// 讀操作的器件地址
   I2C_suba = suba;		
   I2C_buf = s;
   I2C_num = no;
   I2C_suba_en = 1;		// 有子地址讀
   I2C_end = 0;
   
   I2C0CONCLR = 0x2C;
   I2C0CONSET = 0x60;             // 設(shè)置為主機(jī),并啟動(dòng)總線
   
   while(0==I2C_end);
   if(1==I2C_end) return(1);
     else return(0);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美韩日一区二区三区四区| 不卡电影一区二区三区| 丝袜美腿亚洲综合| 美女www一区二区| 粉嫩蜜臀av国产精品网站| 99久久国产综合精品麻豆| 欧美色图在线观看| 精品少妇一区二区| 自拍偷拍亚洲激情| 三级一区在线视频先锋| 国产成人在线免费| 欧美曰成人黄网| 精品国产第一区二区三区观看体验| 中文一区二区在线观看 | 国产精品888| 95精品视频在线| 日韩欧美一二三区| 亚洲激情av在线| 老司机精品视频在线| 91亚洲国产成人精品一区二区三| 欧美日韩一区二区三区在线| 国产清纯在线一区二区www| 亚洲一卡二卡三卡四卡无卡久久| 激情综合色播激情啊| 91福利精品视频| 精品久久国产老人久久综合| 亚洲精品欧美二区三区中文字幕| 美国十次综合导航| 色综合久久六月婷婷中文字幕| 欧美xfplay| 亚洲欧美激情一区二区| 韩国成人精品a∨在线观看| 欧美午夜电影在线播放| 国产精品久久久久久一区二区三区| 日本人妖一区二区| 91久久国产最好的精华液| 国产欧美一区二区三区鸳鸯浴| 午夜激情一区二区三区| 99国产精品久久久久久久久久| 精品免费日韩av| 午夜av区久久| 91理论电影在线观看| 欧美国产视频在线| 久久不见久久见免费视频1| 欧美视频一区二区三区四区 | 国产98色在线|日韩| 欧美一区二区三区免费视频| 亚洲欧美日韩综合aⅴ视频| 国产美女娇喘av呻吟久久| 在线不卡中文字幕播放| 亚洲激情图片一区| 99久久精品国产一区二区三区 | 国产精品一级二级三级| 3d成人h动漫网站入口| 亚洲综合色成人| 99久久精品国产毛片| 国产精品乱人伦| 国产成人精品一区二区三区四区 | 日本视频一区二区三区| 欧美三级韩国三级日本一级| 亚洲精品成a人| 色综合亚洲欧洲| 亚洲色图色小说| 成人综合在线视频| 久久久久久毛片| 激情欧美一区二区三区在线观看| 欧美一区二区黄色| 天堂影院一区二区| 欧美日韩和欧美的一区二区| 亚洲最色的网站| 欧美性videosxxxxx| 亚洲成人精品在线观看| 欧美日韩国产经典色站一区二区三区| 亚洲嫩草精品久久| 色噜噜狠狠色综合中国| 亚洲一区在线电影| 91成人看片片| 亚洲成人7777| 欧美二区在线观看| 人人精品人人爱| 精品久久五月天| 狠狠色丁香婷婷综合| 久久久久久亚洲综合影院红桃| 国产成人亚洲综合色影视| 国产亚洲va综合人人澡精品 | 国产精品成人午夜| 99综合影院在线| 亚洲免费看黄网站| 在线视频观看一区| 香蕉久久夜色精品国产使用方法| 欧美日韩国产综合一区二区| 青青青爽久久午夜综合久久午夜| 日韩三级av在线播放| 韩国av一区二区三区四区| 国产女同互慰高潮91漫画| 成人国产精品视频| 亚洲精品综合在线| 欧美日韩精品一区二区三区| 青娱乐精品视频| 国产午夜精品在线观看| 97久久人人超碰| 午夜激情久久久| 2023国产精品| 91欧美激情一区二区三区成人| 亚洲综合av网| 日韩免费在线观看| 成人丝袜视频网| 亚洲国产色一区| 日韩欧美精品在线视频| 国产成人8x视频一区二区| 亚洲图片欧美激情| 91精品一区二区三区久久久久久| 精品一区二区三区av| 中文字幕一区在线观看视频| 欧美午夜不卡在线观看免费| 久久99国产精品尤物| 亚洲欧美另类综合偷拍| 欧美一级黄色大片| 成人高清av在线| 五月激情六月综合| 国产三区在线成人av| 欧美亚日韩国产aⅴ精品中极品| 麻豆精品一区二区av白丝在线| 欧美国产精品一区二区三区| 在线精品视频一区二区三四| 看电影不卡的网站| 亚洲视频在线一区| 欧美一区二区三区公司| 成人美女视频在线观看18| 日韩中文欧美在线| 国产精品视频第一区| 欧美一区国产二区| 91一区二区三区在线观看| 蜜桃久久久久久久| 亚洲欧美另类综合偷拍| 久久伊99综合婷婷久久伊| 欧美午夜精品免费| 成人18视频日本| 奇米精品一区二区三区在线观看一| 国产精品网曝门| 欧美一区二区在线播放| 91麻豆成人久久精品二区三区| 国产剧情一区二区| 亚洲va天堂va国产va久| 国产精品白丝在线| 欧美不卡激情三级在线观看| 欧美日韩一区二区在线视频| 成人av影院在线| 激情国产一区二区| 爽好多水快深点欧美视频| 综合分类小说区另类春色亚洲小说欧美| 精品国产污污免费网站入口| 欧美伊人久久久久久久久影院| 国产69精品久久久久毛片| 乱中年女人伦av一区二区| 亚洲狠狠爱一区二区三区| 国产精品二三区| 久久久www成人免费毛片麻豆| 欧美日韩性生活| 色婷婷精品久久二区二区蜜臀av| 国产精品一区二区三区网站| 男人操女人的视频在线观看欧美| 亚洲精品高清视频在线观看| 欧美国产禁国产网站cc| 精品日韩欧美在线| 日韩欧美中文字幕公布| 欧美日韩在线播放三区四区| 色老综合老女人久久久| 91亚洲精华国产精华精华液| www.日韩在线| 成人精品亚洲人成在线| 国产精品77777竹菊影视小说| 精品在线你懂的| 久久精品国产99国产| 日本亚洲天堂网| 日韩高清在线电影| 午夜精品一区在线观看| 五月激情丁香一区二区三区| 午夜精品久久久久久久| 午夜av一区二区三区| 婷婷六月综合网| 日韩**一区毛片| 蜜臀久久久久久久| 麻豆精品久久精品色综合| 青青草97国产精品免费观看| 日韩不卡一区二区三区| 免费人成网站在线观看欧美高清| 轻轻草成人在线| 久久99精品国产麻豆不卡| 精品一区在线看| 国模大尺度一区二区三区| 国产成人免费在线| 成人av网站免费观看| 99久久久无码国产精品| 在线观看免费视频综合| 欧美日韩成人综合天天影院 | 蜜芽一区二区三区| 精品一区二区三区免费播放 | 国产精品国产三级国产aⅴ中文| 国产精品久99|