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

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

?? 1233.c

?? IIC總線的應用!本程序在測試實驗中應用過!有別于網上常見的IIC協議程序!
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <reg52.h>
#include <intrins.h>
#define BYTE unsigned char
#define WORD unsigned int
#define uchar unsigned char
#define uint unsigned int

typedef unsigned char INT8U;
typedef unsigned int  INT16U;


sfr P1_ADC_EN	=0x97;
sfr ADC_CONSTR	=0xC5;
sfr ADC_DATA	=0xC6;

BYTE R_ARRAY[15];

BYTE RS232;

BYTE blnRev;

BYTE RL_DO[8];

BYTE K_DO;

BYTE PT_DO[8];

unsigned char chrI2c;			// 1:BUS_1 2:BUS_2 3:BUS_3 4:BUS_4
unsigned char tmpI2c;

bit ack;
bit blnT;
bit bitS;

//==================================================================================================
//NO.1 I2C BUS 
sbit scl_1=P3^5;       
sbit sda_1=P3^4;
//==================================================================================================
//NO.2 I2C BUS 
sbit scl_2=P3^7;      
sbit sda_2=P3^6;
//==================================================================================================
//NO.3 I2C BUS 
sbit scl_3=P3^7;      
sbit sda_3=P3^6;
//==================================================================================================

//==================================================================================================
//NO.4 I2C BUS 
sbit scl_4=P3^7;      
sbit sda_4=P3^6;
//==================================================================================================

//==================================================================================================
//Sleep time Program STRAT
void nc(int n);
void delay(WORD n);
//Sleep time Program STOP
//==================================================================================================

//==================================================================================================
//MUC INI INIT START
void int_init(void);
void config_init(void);
void port_init(void);
//MUC INI INIT START
//==================================================================================================

//==================================================================================================
void incept_int(void);
void Send_String(BYTE Str_Array[],BYTE Int_Len);//MCU RS23 SEND N BYTES
void Send(BYTE chrI);//MCU RS23 SEND BYTE
//==================================================================================================
bit even(BYTE my_byte);
//==================================================================================================
void RS232_INI();
//==================================================================================================
bit Execute_Command_0x01(BYTE intOut);
bit Execute_Command_0x02(BYTE intInput);
//==================================================================================================

//==================================================================================================
//I2C FUNCTION START
void i2c_start(void);		//I2C BUS WORK START
void i2c_stop(void); 		//I2C BUS WORK STOP
void i2c_ack(bit a1);		//I2C BUS RESPONSE
void SendByte(uchar c);		//I2C BUS SEND BYTE SUB FUNCTION
uchar RcvByte();			//I2C BUS RECEIVE BYTE SUB FUNCTION
void i2c_updata(uchar bln_scl_sda,uchar chr_data);		//I2C BUS UPDATA
bit ISendByte(uchar sla,uchar c);						//I2C BUS SEND BYTE
bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no);	//I2C BUS SEND STRING
bit IRcvByte(uchar sla,uchar *c);						//I2C BUS RECEIVE BYTE
bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no);	//I2C BUS RECEIVE STRING
bit Nsend(uchar sla,uchar suba,uchar *s,uchar no);		//I2C BUS SEND N BYTES
bit NRead(uchar sla,uchar suba,uchar *s,uchar no);		//I2C BUS READ N BYTES
bit PCF8574_Write(BYTE bWrite_Data,BYTE bWrite_Address);
uchar PCF8574_Read(BYTE bWrite_Address);
//I2C FUNCTION STOP
//==================================================================================================

void delay(WORD n)
{
	unsigned int k,j;
	for(k=0;k<n;k++)
		for(j=0;j<209;j++);
}

void nc(int n)
{
	unsigned int i;
	for(i=0;i<n;i++)
		_nop_();
}

bit even(BYTE my_byte)
{
	int i;

	BYTE bT;

	BYTE bT1;

	bT1=my_byte;

	bT=0;

	for(i=0;i<8;i++)
	{
		if((bT1&0x80)==0x80)
			bT++;
		bT1<<=1;
	}

	bT1=bT % 2;

	return(bT1);

}

//***************************MCU RS23 SEND BYTE***************************
void Send(BYTE chrI)//MCU RS23 SEND BYTE
{
	bit tag;

		TI=0;
		tag=even(chrI);
		TB8=tag;

		nc(10);
		SBUF=chrI;
		while(TI==0);
		TI=0;
		nc(10);
}
//***************************MCU RS23 SEND BYTE***************************

//***************************MCU RS23 SEND N BYTES***************************
void Send_String(BYTE Str_Array[],BYTE Int_Len)//MCU RS23 SEND N BYTES
{
	BYTE i;
	for(i=0;i<Int_Len;i++)
	{
		Send(Str_Array[i]);
		nc(10);
	}
}
//***************************MCU RS23 SEND N BYTES***************************

//==================================================================================================
//MCU INI INIT START

//***************************MCU INT INIT***************************
void int_init(void)//MCU INT INIT
{
   	//IT0=1;
	//ET0=1;
	//EX0=1;
	ES=1;
	EA=1;
}
//***************************MCU INT INIT***************************

//***************************MCU RS232 INIT***************************
void config_init(void)//MCU RS232 INIT
{
	TMOD=0x20;
	TL1=250;
	TH1=250;
	SCON=0xD8;
	PCON=0x80;
	TR1=1;
}
//***************************MCU RS232 INIT***************************

//***************************MCU PROT INIT***************************
void port_init(void)//MCU PROT INIT
{
	BYTE i;	

	P0=0xFF;
	P1=0xFF;
	P2=0xFF;
	P3=0xFF;

	RS232=0;

	for(i=0;i<15;i++)
		R_ARRAY[i]=1;

	chrI2c=1;

	RL_DO[0]=0xFF;
	PCF8574_Write(RL_DO[0],0);

	RL_DO[1]=0xFF;
	PCF8574_Write(RL_DO[1],1);

	RL_DO[2]=0xFF;
	PCF8574_Write(RL_DO[2],2);


}
//***************************MCU PROT INIT***************************
//MCU INI INIT STOP
unsigned char AD_Read(unsigned char iCH)
{
	INT8U	AD_finished;

	delay(100);

	ADC_DATA=0;
	ADC_CONSTR=iCH;
	delay(3);

	ADC_CONSTR |=0x08;

	AD_finished=0;

	while(AD_finished==0)
	{
		delay(2);
		AD_finished=(ADC_CONSTR & 0x10);
	}

	ADC_CONSTR &=0xF7;

	AD_finished=ADC_DATA;

	return(AD_finished);
}
//================================================================================================== 
//***************************MCU RS23 RECEIVE BYTES***************************
void incept_int(void) interrupt 4 using 0
{

 	BYTE R_Count;

	if(TI==1) 
		return;

	if(RI==1)
	{

		while(RI==0);
		RI=0;
		R_Count=SBUF;

		if(RS232>=15)
			return;

		R_ARRAY[RS232]=R_Count;
		RS232++;

		if(R_Count==0x0D)
			blnRev=1;

	}
	return;
}
//***************************MCU RS23 RECEIVE BYTES***************************
//==================================================================================================
//I2C FUNCTION START

//***************************I2C BUS UPDATA***************************
void i2c_updata(uchar bln_scl_sda,uchar chr_data)//I2C BUS UPDATA
{
	if(bln_scl_sda==0)//updata scl
	{
		switch(chrI2c)
		{
			case 1:
				scl_1=chr_data;
				break;
			case 2:
				scl_2=chr_data;
				break;
			case 3:
				scl_3=chr_data;
				break;
			case 4:
				scl_4=chr_data;
				break;
			default:
				break;
		}
	}
	else if(bln_scl_sda==1)
	{
		switch(chrI2c)
		{
			case 1:
				sda_1=chr_data;
				break;
			case 2:
				sda_2=chr_data;
				break;
			case 3:
				sda_3=chr_data;
				break;
			case 4:
				sda_4=chr_data;
				break;
			default:
				break;
		}
	}
	return;
}
//***************************I2C BUS UPDATA***************************

//***************************I2C BUS WORK START***************************
void i2c_start(void)//I2C BUS WORK START
{
		nc(4);
		i2c_updata(0,0);

		nc(4);
		i2c_updata(1,1);

		nc(4);
		i2c_updata(0,1);
  
		nc(12);
		i2c_updata(1,0);
    
		nc(12);
		i2c_updata(0,0);
		
		nc(4);
}
//***************************I2C BUS WORK START***************************

//***************************I2C BUS WORK STOP***************************
void i2c_stop(void) //I2C BUS WORK STOP 
{
		i2c_updata(1,0);

		_nop_();
		_nop_();
		i2c_updata(0,1);

		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		i2c_updata(1,1);

		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
}
//***************************I2C BUS WORK STOP***************************

//***************************I2C BUS RESPONSE***************************
void i2c_ack(bit a1)//I2C BUS RESPONSE
{
	if (a1==0) 
		i2c_updata(1,0);
	else 
		i2c_updata(1,1);

	nc(6);
	nc(6);
	i2c_updata(0,1);

	nc(6);
	nc(6);
	i2c_updata(0,0);

	nc(6);
}
//***************************I2C BUS RESPONSE***************************

//***************************I2C BUS SEND BYTE SUB FUNCTION***************************
void SendByte(uchar c)//I2C BUS SEND BYTE SUB FUNCTION
{
	uchar BitCnt;
	for(BitCnt=0;BitCnt<8;BitCnt++)
	{
		if ((c<<BitCnt)&0x80)
			i2c_updata(1,1);
		else 
			i2c_updata(1,0);

		nc(6);
		i2c_updata(0,1);

		nc(6);
		i2c_updata(0,0);
		nc(6);
	}
	nc(6);
	i2c_updata(1,1);

	nc(15);
	i2c_updata(0,1);

	nc(5);
	switch(chrI2c)
	{
		case 1:
			{if(sda_1==1)
				ack=0;
			else
				ack=1;}
			break;
		 case 2:
			{if(sda_2==1)
				ack=0;
			else
				ack=1;}
			break;		 
		case 3:
			{if(sda_3==1)
				ack=0;
			else
				ack=1;}
			break;
		 case 4:
			{if(sda_4==1)
				ack=0;
			else
				ack=1;}
			break;
		 default:
		 	break;
	}
	i2c_updata(0,0);
	nc(6);
}
//***************************I2C BUS SEND BYTE SUB FUNCTION***************************

//***************************I2C BUS RECEIVE BYTE SUB FUNCTION***************************
uchar RcvByte()//I2C BUS RECEIVE BYTE SUB FUNCTION
{
	uchar retc;
	uchar BitCnt;
	retc=0;
	i2c_updata(1,1);

	for(BitCnt=0;BitCnt<8;BitCnt++)
	{
		nc(6);
		i2c_updata(0,0);

		nc(6);

		i2c_updata(0,1);

		nc(6);
		retc=retc<<1;
		switch(chrI2c)
		{
			case 1:
				if(sda_1==1) retc=retc+1;
				break;
			case 2:
				if(sda_2==1) retc=retc+1;
				break;
			case 3:
				if(sda_3==1) retc=retc+1;
				break;
			case 4:
				if(sda_4==1) retc=retc+1;
				break;
			default:
				break;
		}
		nc(6);
	}	
	i2c_updata(0,0);

	nc(6);
	return(retc);
}
//***************************I2C BUS RECEIVE BYTE SUB FUNCTION***************************

//***************************I2C BUS SEND BYTE***************************
bit ISendByte(uchar sla,uchar c)//I2C BUS SEND BYTE
{
	i2c_start();
	SendByte(sla);
	if(ack==0)
		return(0);
	SendByte(c);
	if(ack==0)
		return(0);
	i2c_stop();
	return(1);
}
//***************************I2C BUS SEND BYTE***************************	

//***************************I2C BUS SEND STRING***************************
bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no)//I2C BUS SEND STRING
{
	uchar i;
	i2c_start();
	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++;
	}
	i2c_stop();
	return(1);
}
//***************************I2C BUS SEND STRING***************************

//***************************I2C BUS RECEIVE BYTE***************************
bit IRcvByte(uchar sla,uchar *c)//I2C BUS RECEIVE BYTE
{
	i2c_start();
	SendByte(sla);
	if(ack==0)
		return(0);
	*c=RcvByte();
	i2c_ack(1);
	i2c_stop();
	return(1);
}
//***************************I2C BUS RECEIVE BYTE***************************

//***************************I2C BUS RECEIVE STRING***************************
bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)//I2C BUS RECEIVE STRING
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看视频一区| 欧美日韩aaaaa| 久久久99精品免费观看| 精品在线一区二区| 26uuu亚洲综合色| 国产精品911| 国产精品久久久久久亚洲毛片 | 一区二区理论电影在线观看| 精品精品国产高清一毛片一天堂| 天天综合网 天天综合色| 欧美日韩精品一区二区| 日韩中文欧美在线| 精品福利一区二区三区免费视频| 国产精品一区二区果冻传媒| 国产精品久久久久久久久动漫| 91美女片黄在线| 亚洲国产欧美在线| 精品久久久久久久一区二区蜜臀| 国产精品一区二区三区99| 亚洲视频一区二区在线| 欧美日韩精品福利| 国产成人在线视频免费播放| 亚洲天堂a在线| 亚洲综合色网站| 欧美精品久久99| 国产一区二区三区在线观看免费视频 | 国产精品一品视频| 成人免费观看av| 中文字幕av在线一区二区三区| 色婷婷综合久色| 免费亚洲电影在线| 欧美国产精品v| 欧美日韩一区二区欧美激情| 国内精品伊人久久久久av一坑 | 国产精品一区二区在线播放| 亚洲欧洲综合另类| 欧美不卡视频一区| 色综合久久久久网| 狠狠色丁香九九婷婷综合五月| 国产精品久久午夜夜伦鲁鲁| 日韩一卡二卡三卡四卡| 91网址在线看| 国产主播一区二区| 亚洲影视在线观看| 中日韩av电影| 精品少妇一区二区三区视频免付费| 91丝袜美女网| 国产成人免费在线视频| 首页国产欧美日韩丝袜| 一色屋精品亚洲香蕉网站| 这里只有精品免费| 欧美又粗又大又爽| 成人ar影院免费观看视频| 看国产成人h片视频| 亚洲午夜精品在线| 亚洲欧美另类在线| 国产精品人成在线观看免费| 欧美成人国产一区二区| 欧美日韩国产综合一区二区| 91蜜桃传媒精品久久久一区二区| 国产一区二区三区免费观看 | 蜜臀a∨国产成人精品| 亚洲最大色网站| 亚洲视频每日更新| 国产精品欧美久久久久一区二区| 精品国产一区二区三区久久影院 | 成人激情午夜影院| 国产大陆a不卡| 久久99久久久久| 美女网站在线免费欧美精品| 日韩成人av影视| 婷婷综合五月天| 无码av免费一区二区三区试看| 一区二区三区四区不卡在线 | 久久精品国产99国产精品| 性做久久久久久久免费看| 亚洲免费毛片网站| 亚洲欧美日韩在线不卡| 亚洲综合一区二区三区| 国产精品久久久久天堂| 精品免费视频.| 91麻豆精品国产91久久久| 欧美午夜影院一区| 欧美在线制服丝袜| 欧美日韩国产成人在线91| 欧洲av在线精品| 欧美性videosxxxxx| 在线观看一区二区精品视频| 欧美色爱综合网| 3d动漫精品啪啪一区二区竹菊| 欧美精品在欧美一区二区少妇| 666欧美在线视频| 日韩一级二级三级精品视频| 精品久久一二三区| 久久久国产综合精品女国产盗摄| 久久精品人人做人人爽97 | 日韩欧美成人一区| 日韩免费电影一区| 日韩精品乱码免费| 日韩精品福利网| 国产精品亚洲一区二区三区在线 | 在线观看免费亚洲| 欧美午夜在线一二页| 91精品国产色综合久久不卡电影| 欧美一区二区日韩| 久久久99久久精品欧美| 日韩码欧中文字| 午夜视频一区二区| 极品少妇xxxx偷拍精品少妇| 不卡的电影网站| 欧美人与z0zoxxxx视频| 精品国产电影一区二区| 国产精品久久久久久久久动漫| 亚洲制服欧美中文字幕中文字幕| 玖玖九九国产精品| 成人精品小蝌蚪| 欧美日韩精品一区二区三区| 久久精品一区八戒影视| 一区二区三区成人| 极品瑜伽女神91| 色诱视频网站一区| 精品国产91久久久久久久妲己 | 26uuu精品一区二区三区四区在线| 91精品国产全国免费观看| 精品成人一区二区| 亚洲男同性恋视频| 久久精品72免费观看| 99精品视频一区二区三区| 欧美精品自拍偷拍| 亚洲婷婷综合久久一本伊一区 | 国产精品你懂的在线欣赏| 亚洲高清在线精品| 国产精品一级片在线观看| 欧美三级日韩三级| 中文字幕电影一区| 免费观看成人鲁鲁鲁鲁鲁视频| av激情综合网| 久久亚洲综合色一区二区三区| 亚洲精品免费电影| 成人美女在线视频| 精品久久久久一区| 五月天国产精品| 色菇凉天天综合网| 欧美国产日韩一二三区| 看片网站欧美日韩| 欧美挠脚心视频网站| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品66部| 精品国内片67194| 日韩高清不卡一区二区三区| 美日韩一级片在线观看| 狠狠色狠狠色综合| 欧美日韩午夜在线视频| 国产精品免费网站在线观看| 久久精品久久精品| 欧美日韩成人在线| 亚洲一区在线免费观看| 色综合久久综合网欧美综合网| 国产欧美视频在线观看| 国产在线不卡一卡二卡三卡四卡| 91精品欧美一区二区三区综合在| 亚洲一区在线播放| 欧美在线一区二区| 亚洲一区二区三区四区五区中文 | 亚洲高清免费视频| 色婷婷国产精品| 亚洲女厕所小便bbb| 97se亚洲国产综合在线| 国产精品久久久久久久久快鸭| 国产高清一区日本| 久久久精品国产免大香伊 | 盗摄精品av一区二区三区| 欧美精品一区二区三区在线| 寂寞少妇一区二区三区| 欧美成人一区二区三区片免费 | 精品亚洲国产成人av制服丝袜| 欧美一级二级三级乱码| 久久精品国产第一区二区三区| 日韩欧美另类在线| 国产精品1区二区.| 中文字幕不卡一区| 色婷婷av一区二区三区之一色屋| 玉米视频成人免费看| 欧美日韩另类国产亚洲欧美一级| 午夜精品国产更新| 欧美电影免费提供在线观看| 国产曰批免费观看久久久| 欧美极品xxx| 色婷婷精品大在线视频| 亚洲高清免费视频| 欧美不卡一二三| heyzo一本久久综合| 亚洲国产成人av网| 精品国产百合女同互慰| 不卡的av电影在线观看| 亚洲高清视频在线| 久久久99久久| 在线亚洲一区二区| 美女爽到高潮91| 国产精品欧美久久久久无广告|