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

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

?? i2c.c

?? 工業i2c總線通訊協議,是用c編輯的,可以用于單片機控制的i2c通訊
?? C
字號:
	#include <reg51.h>
	#include <intrins.h>
	#define uchar unsigned char
	#define uint unsigned int
	//常變量定義區,端口位定義
	sbit SDA=P3^4;
	sbit SCL=P3^5;
	//狀態標志
	bit ack;
	/***************************************************************
	啟動總線函數
	函數原型:void Start_I2C();
	功能:啟動I2C總線,即發送I2C起始條件
	***************************************************************/
	void Start_I2C()
	{
		SDA=1;
		_nop_();
		SCL=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SDA=0;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SCL=0;
		_nop_();
		_nop_();
	}
	/***************************************************************
	結束總線函數
	函數原型:void Stop_I2c();
	功能:結束I2C總線,即發送I2C結束條件
	****************************************************************/
	void Stop_I2C()
	{
		SDA=0;
		_nop_();
		SCL=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SDA=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
    }

	/****************************************************************
	字節數據傳送函數
	函數原型:void SendByte(uchar c)
	功能:將數據c發送出去,可以時地址,也可以時數據,發完后等待應答,并對
	此狀態位進行操作(不應答或非應答都使ack=0,表示應答失敗)。發送數據正常,ack=1;ack=0
	表示被控器無應答或損壞
	*******************************************************************/
	void SendByte(uchar c)
	{
		uchar BitCnt;
		for(BitCnt=0;BitCnt<8;BitCnt++)
		{
			if((c<<BitCnt)&0x80)
				SDA=1;
			else SDA=0;
			_nop_();
			SCL=1;
			_nop_();
			_nop_();
			_nop_();
			_nop_();
			_nop_();
			SCL=0;
		}
		_nop_();
		_nop_();
		SDA=1;		//8位發送完后釋放數據線,準備接收應答位
		_nop_();
		_nop_();
		SCL=1;
		_nop_();
		_nop_();
		_nop_();
		if(SDA==1)		//應答時接收器必須把SDA線拉低
			ack=0;
		else ack=1;		//判斷是否接收到應答信號
		SCL=0;
		_nop_();
		_nop_();
	}
	/*************************************************************************
	字節數據接受函數
	函數原型:uchar RcvByte();
	功能:用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號)
    *************************************************************************/
	uchar RcvByte()
	{
		uchar retc;
		uchar BitCnt;
		retc=0;
		for(BitCnt=0;BitCnt<8;BitCnt++)
		{
			SDA=1;		//置數據線為輸入方式
			SCL=0;		//置時鐘線低,準備接受數據位
			_nop_();
			_nop_();
			_nop_();
			_nop_();
			_nop_();
			SCL=1;		//置時鐘線為高,使數據線上數據有效
			_nop_();
			_nop_();
			retc=retc<<1;
			if(SDA==1)
				retc=retc+1;
			_nop_();			
			_nop_();
		}
		SCL=0;
		_nop_();
		_nop_();
		return(retc);
    }

	/***************************************************************
	應答子函數
	函數原型:void Ack_I2c(bit a);
	功能:主控制器進行應答信號(可以是應答或非應答信號)
	***************************************************************/
	void Ack_I2C(bit a)
	{
		if(a)
			SDA=1;
		else
			SDA=0;
		_nop_();
		_nop_();
		_nop_();
		SCL=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SCL=0;
		_nop_();
		_nop_();
	}

	/****************************************************************
	向無子地址器件發送字節數據函數
	函數原型:bit ISendByte(uchar sla,uchar c);
	功能:從啟動總線到發送地址,數據,直至結束總線的全過程;從器件地址sla,c為發送內容。
	如果返回1,表示操作成功,否則失敗
	*********************************************************************/
	bit ISendByte(uchar sla,uchar c)
	{
		Start_I2C();
		SendByte(sla);
		if(ack==0)
			return(0);
		SendByte(c);
		if(ack==0)
			return(0);
		Stop_I2C();
		return(1);
	}
	/***************************************************************
   向有子地址器件發送多字節數據函數
   函數原型:bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no);
   功能:從啟動總線到發送地址,子地址,數據直到結束總線的全過程;從器件地址sla,子地址suba,發送的內容是s指向的內容,
   發送no個字節。如果返回是1,表示成功,否則失敗。
   ****************************************************************/
	bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no)
	{
		uchar i;
		Start_I2C();
		SendByte(sla);
		if(ack==0)
			return(0);
		SendByte(suba);
		if(ack==0)
			return(0);
		for(i=0;i<no;i++)
		{
			SendByte(*s);
			if(ack==0)
				return(0);
			s++;
		}
		Stop_I2C();
		return(1);
	}

	/********************************************************************
	向無子地址器件讀取字節數據函數
	函數原型:bit IRcvByte(uchar sla,uchar *c);
	功能:從啟動總線到發送地址,直至結束總線的全過程;從器件地址sla,
	讀取數據返回值c.如果返回是1表示成功,否則失敗
	**************************************************************************/
	bit IRcvByte(uchar sla,uchar *c)
	{									//立即地址讀取
		Start_I2C();
		SendByte(sla+1);
		if(ack==0)
			return(0);
		*c=RcvByte();
		Ack_I2C(1);
		Stop_I2C();
		return(1);
	}
	/******************************************************************************
	向有子地址器件讀取多字節數據函數
   函數原型:bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no);
   功能:從啟動總線到發送地址,子地址,數據直到結束總線的全過程;從器件地址sla,子地址suba,到讀出內容放到s指向的存儲區,
   讀no個字節。如果返回是1,表示成功,否則失敗。
   ****************************************************************/
   bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
    {
		uchar i;
		Start_I2C();
		SendByte(sla);		//偽寫操作
		if(ack==0)
			return(0);
		SendByte(suba);
		if(ack==0)
			return(0);
		Start_I2C();
		SendByte(sla+1);		//讀操作命令
		if(ack==0)
			return(0);
		for(i=0;i<no-1;i++)
		{
			*s=RcvByte();
			Ack_I2C(0);			//發送應答信號
			s++;
		}
		*s=RcvByte();
		Ack_I2C(1);				//發送非應答信號并停止讀操作
		Stop_I2C();
		return(1);
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜亚洲色图| 秋霞影院一区二区| 久久综合狠狠综合久久综合88| 欧美三级日韩三级| 日本久久一区二区| 91成人免费在线视频| 色婷婷亚洲婷婷| 欧美三级在线视频| 这里只有精品免费| www日韩大片| 国产日产亚洲精品系列| 国产精品色哟哟网站| 成人免费在线观看入口| 一区二区三区毛片| 日韩精品电影在线| 国产乱理伦片在线观看夜一区| 国产成人av一区二区三区在线| 成人app下载| 欧美视频日韩视频在线观看| 日韩欧美色电影| 国产精品视频免费看| 一区二区国产盗摄色噜噜| 视频一区视频二区在线观看| 国产麻豆日韩欧美久久| 91在线码无精品| 欧美人妖巨大在线| 中文字幕欧美日本乱码一线二线| 亚洲摸摸操操av| 婷婷国产v国产偷v亚洲高清| 国产乱码精品一区二区三区五月婷| 99视频在线观看一区三区| 欧美日韩三级一区二区| 欧美极品少妇xxxxⅹ高跟鞋 | 国产网站一区二区| 亚洲图片欧美激情| 免费精品视频在线| aaa欧美大片| 日韩欧美电影一区| 亚洲黄色性网站| 激情综合色综合久久综合| 一本久久精品一区二区| 精品日韩欧美一区二区| 一区二区三区四区亚洲| 国产一区在线视频| 欧美精品日日鲁夜夜添| 中文一区二区在线观看| 日本va欧美va精品发布| 91免费看片在线观看| 26uuu亚洲| 日韩 欧美一区二区三区| 色婷婷综合五月| 国产日韩精品一区二区三区| 奇米在线7777在线精品| 欧美三级资源在线| 亚洲色图.com| youjizz久久| 欧美激情一二三区| 国产精品一卡二卡在线观看| 欧美精品一级二级三级| 亚洲综合另类小说| 97se亚洲国产综合自在线| 久久久久高清精品| 国产一区激情在线| 日韩精品一区二区在线观看| 日韩电影在线一区二区| 欧美喷潮久久久xxxxx| 亚洲一区免费在线观看| 在线日韩一区二区| 一区二区在线观看免费视频播放| 99久久久国产精品| 亚洲日韩欧美一区二区在线| 9色porny自拍视频一区二区| 中文字幕av不卡| 成人网页在线观看| 国产欧美日韩一区二区三区在线观看| 麻豆精品在线播放| 欧美第一区第二区| 国产乱子伦一区二区三区国色天香 | 久久国产尿小便嘘嘘| 欧美一区二区三区播放老司机| 午夜精品一区在线观看| 在线综合+亚洲+欧美中文字幕| 日韩中文字幕91| 日韩亚洲欧美成人一区| 国产综合色产在线精品| 国产精品三级在线观看| 北条麻妃一区二区三区| 亚洲激情图片小说视频| 欧美三级欧美一级| 蜜臀国产一区二区三区在线播放| 欧美xxxx老人做受| 国产福利一区二区三区在线视频| 欧美国产日韩一二三区| 在线免费av一区| 美脚の诱脚舐め脚责91| 国产亚洲欧美一级| 色婷婷国产精品| 日韩专区一卡二卡| 欧美精品一区二区三区蜜臀| av亚洲精华国产精华精| 午夜av一区二区三区| 亚洲精品在线三区| 91视频一区二区三区| 日韩国产精品久久久久久亚洲| 2022国产精品视频| 欧美最新大片在线看| 激情欧美一区二区三区在线观看| 国产精品精品国产色婷婷| 91精品国产高清一区二区三区蜜臀| 精品在线亚洲视频| 亚洲欧美日韩在线| 精品国产髙清在线看国产毛片| 成人永久aaa| 美女脱光内衣内裤视频久久网站| 国产亲近乱来精品视频| 欧美日韩免费视频| 不卡电影免费在线播放一区| 日韩精品高清不卡| 亚洲免费电影在线| 久久久91精品国产一区二区精品| 在线观看一区不卡| 国内成人自拍视频| 水蜜桃久久夜色精品一区的特点| 国产亚洲精品资源在线26u| 欧美伦理视频网站| 一本色道亚洲精品aⅴ| 国产福利一区二区三区在线视频| 日韩av中文在线观看| 亚洲精品成人a在线观看| 国产精品美女久久久久久久久 | 3751色影院一区二区三区| av福利精品导航| 国产一区二区三区免费在线观看| 亚洲一区二区不卡免费| 国产精品激情偷乱一区二区∴| 精品久久人人做人人爱| 正在播放一区二区| 欧美三级乱人伦电影| 91蝌蚪国产九色| 成人av网站在线| 国产精品66部| 国内精品伊人久久久久av影院| 奇米精品一区二区三区四区| 亚洲成av人影院| 洋洋成人永久网站入口| 亚洲精品视频自拍| 亚洲欧美日韩精品久久久久| 亚洲国产精品成人综合色在线婷婷| 精品国产成人系列| 久久奇米777| 久久品道一品道久久精品| 久久一区二区视频| 久久嫩草精品久久久精品一| 久久久精品影视| 国产亚洲精品超碰| 亚洲国产精品ⅴa在线观看| 久久久亚洲精品一区二区三区| 欧美va日韩va| 国产日韩欧美亚洲| 国产精品久久久久久久岛一牛影视| 中文字幕在线不卡一区| 最新不卡av在线| 亚洲一卡二卡三卡四卡五卡| 亚洲成国产人片在线观看| 日韩精品一二三| 在线观看日韩电影| 在线精品视频免费观看| 欧美猛男gaygay网站| 91精品一区二区三区久久久久久 | 91精品福利在线一区二区三区| 日韩一区国产二区欧美三区| 久久综合狠狠综合久久综合88| 久久精品免费在线观看| 亚洲欧美在线aaa| 亚洲午夜免费福利视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产一区二区在线观看免费| 国产精品影音先锋| 色琪琪一区二区三区亚洲区| 欧美精品一二三| 久久综合一区二区| 亚洲人成在线播放网站岛国| 亚洲妇女屁股眼交7| 精品在线免费视频| 色婷婷激情综合| www亚洲一区| 亚洲成人免费观看| 粉嫩av亚洲一区二区图片| 欧美色偷偷大香| 久久蜜桃一区二区| 午夜欧美视频在线观看| 风流少妇一区二区| 欧美精品精品一区| 日本一区二区三区四区在线视频| 亚洲大片免费看| 丰满放荡岳乱妇91ww| 在线播放一区二区三区| 国产精品久久精品日日| 精品在线播放免费| 欧美无砖专区一中文字|