?? 1233.c
字號(hào):
uchar i;
i2c_start();
SendByte(sla);
if(ack==0)
return(0);
SendByte(suba);
if(ack==0)
return(0);
i2c_start();
SendByte(sla+1);
if(ack==0)
return(0);
for(i=0;i<no-1;i++)
{
*s=RcvByte();
i2c_ack(0);
s++;
}
*s=RcvByte();
i2c_ack(1);
i2c_stop();
return(1);
}
//***************************I2C BUS RECEIVE STRING***************************
//***************************I2C BUS SEND N BYTES***************************
bit Nsend(uchar sla,uchar suba,uchar *s,uchar no)//I2C BUS SEND N BYTES
{
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 N BYTES***************************
//***************************I2C BUS READ N BYTES***************************
bit NRead(uchar sla,uchar suba,uchar *s,uchar no)//I2C BUS READ N BYTES
{
uchar i;
i2c_start();
SendByte(sla);
if(ack==0)
return(0);
SendByte(suba);
if(ack==0)
return(0);
i2c_start();
SendByte(sla+1);
if(ack==0)
return(0);
for(i=0;i<no-1;i++)
{
*s=RcvByte();
i2c_ack(0);
s++;
}
*s=RcvByte();
i2c_ack(1);
i2c_stop();
return(1);
}
//***************************I2C BUS READ N BYTES***************************
//I2C FUNCTION STOP
//==================================================================================================
bit PCF8574_Write(BYTE bWrite_Data,BYTE bWrite_Address)
{
BYTE sla;
sla=0x70+bWrite_Address*2;
i2c_start();
SendByte(sla);
if(ack==0)
return(0);
SendByte(bWrite_Data);
if(ack==0)
return(0);
i2c_stop();
return(1);
}
uchar PCF8574_Read(BYTE bWrite_Address)
{
BYTE sla;
sla=0x71+bWrite_Address*2;
i2c_start();
SendByte(sla);
if(ack==0)
return(0);
sla=RcvByte();
i2c_stop();
return(sla);
}
bit judge_bit(BYTE j_data,BYTE s_data)
{
BYTE byTemp;
byTemp=PCF8574_Read(2);
byTemp=byTemp & j_data;
if(byTemp==s_data)
return(0);
else
return(1);
}
bit Execute_Command_0x01(BYTE intOut)
{
BYTE byTemp;
BYTE byTemp1;
BYTE byTemp2;
bit bitResult;
byTemp2=intOut;
bitResult=0;
if((byTemp2 & 0x80)==0x80)
bitResult=1;
byTemp2=byTemp2 & 0x7F;
byTemp=(byTemp2-1) / 8;
byTemp1=(byTemp2-1) % 8;
byTemp2=0x01;
byTemp2<<=byTemp1;
if(bitResult==1)
{
byTemp1=RL_DO[byTemp] | byTemp2;
}
else
{
byTemp2=~byTemp2;
byTemp1=RL_DO[byTemp] & byTemp2;
}
RL_DO[byTemp]=byTemp1;
chrI2c=1;
/*
Send(intOut);
nc(50);
Send(byTemp1);
nc(50);
Send(byTemp);
nc(50);
*/
PCF8574_Write(byTemp1,byTemp);
delay(10);
return(0);
}
bit Execute_Command_0x02(BYTE intInput)
{
BYTE byTemp;
BYTE byTemp1;
BYTE byTemp2;
bit bitResult;
byTemp2=intInput;
bitResult=0;
if((byTemp2 & 0x80)==0x80)
bitResult=1;
byTemp=byTemp2 & 0x7F;
byTemp=(byTemp-1) / 8;
byTemp1=(byTemp2-1) % 8;
byTemp2=0x01;
byTemp2<<=byTemp1;
byTemp1=byTemp2;
chrI2c=2;
byTemp2=PCF8574_Read(byTemp);
byTemp2=byTemp2 & byTemp1;
if(bitResult==0)
{
if(byTemp1!=byTemp2)
return(1);
}
else
{
if(byTemp1==byTemp2)
return(1);
}
return(0);
}
void RS232_INI()
{
BYTE i;
for(i=0;i<15;i++)
R_ARRAY[i]=0;
RS232=0;
}
void main()
{
bit blnT;
BYTE byCommand;
BYTE byTemp;
int_init();
port_init();
config_init();
delay(5);
Send_String("Welcome to FCT",14);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
RS232_INI();
while(1)
{
while(blnRev==0);
blnRev=0;
byCommand=R_ARRAY[0];
switch(byCommand)
{
case 'W':
{
switch(R_ARRAY[1])
{
case '0':
{
byTemp=R_ARRAY[2];
P0=byTemp;
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
case '1':
{
byTemp=R_ARRAY[2];
P1=byTemp;
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
case '2':
{
byTemp=R_ARRAY[2];
P2=byTemp;
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
case '3':
{
byTemp=R_ARRAY[2];
P3=byTemp;
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
default:
break;
}
}
break;
case 'R':
{
switch(R_ARRAY[1])
{
case '0':
{
byTemp=P0;
nc(5);
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
case '1':
{
byTemp=P1;
nc(5);
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
case '2':
{
byTemp=P2;
nc(5);
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
case '3':
{
byTemp=P3;
nc(5);
Send(byTemp);
nc(50);
Send(0x0D);
nc(50);
}
break;
default:
break;
}
}
break;
case 'A':
{
byTemp=AD_Read(R_ARRAY[1]);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case 'K':
{
Execute_Command_0x01(R_ARRAY[1]);
Send_String(R_ARRAY,RS232-1);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case 'I':
{
port_init();
}
break;
case 'C':
{
chrI2c=1;
byTemp=PCF8574_Read(0x02);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case 'B': //add 2008.5.24
{
chrI2c=1;
byTemp=PCF8574_Read(0x02);
byTemp=byTemp&0x11;
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case 'D':
{
chrI2c=2;
switch(R_ARRAY[1])
{
case '0':
{
byTemp=PCF8574_Read(0x00);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '1':
{
byTemp=PCF8574_Read(0x01);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '2':
{
byTemp=PCF8574_Read(0x02);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '3':
{
byTemp=PCF8574_Read(0x03);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '4':
{
byTemp=PCF8574_Read(0x04);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
default:
break;
}
}
break;
case 'E':
{
chrI2c=1;
switch(R_ARRAY[1])
{
case '0':
{
byTemp=PCF8574_Write(R_ARRAY[2],0x00);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '1':
{
byTemp=PCF8574_Write(R_ARRAY[2],0x01);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '2':
{
byTemp=PCF8574_Write(R_ARRAY[2],0x02);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
case '3':
{
byTemp=PCF8574_Write(R_ARRAY[2],0x03);
Send(byTemp);
nc(23);
Send(0x0A);
nc(23);
Send(0x0D);
nc(23);
}
break;
default:
break;
}
}
break;
default:
break;
}
RS232_INI();
}
for(;;);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -