📄 msp430fwc.c
字号:
nop();
nop();
P3DIR&=~SDA430; //SDA为输入状态
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
if((P3IN&SDA430)==0) j=0;
else j=1;
k=(k<<1)|j;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P3OUT&=~SCL430; //SCL=0;
}
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P3DIR|=SDA430; //SDA为输出状态
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
return(k);
}
/*void clock()
{
IC_error=0;
scl=1;
nop();
while ((sda==1)&&(IC_error<255))IC_error++;
scl=0;
nop();
}*/
////////////////////////////////////////////////////////////////////////////////
void clock430()
{
P3DIR&=~SDA430; //SDA为输入状态
IC_error=0x00;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P3DIR|=SDA430; //****************************************
P3OUT|=SCL430+SDA430; //SCL=1;
nop();
nop();
P3DIR&=~SDA430; //SDA为输入状态
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
while(((P3IN&SDA430)!=0)&&(IC_error<255)) IC_error++;
P3OUT&=~SCL430; //SCL=0
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P3DIR|=SDA430; //SDA为输出状态
P3OUT|=SDA430; //SDA=1
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
////////////////////////////////////////////////////////////////////////////////
uchar IC_read(uchar address)
{
uchar i;
start430();
writex430(ICID_W);
clock430();
writex430(address);
clock430();
start430();
writex430(ICID_R);
clock430();
i=readx430();
stop430();
delay1(10);
return(i);
}
void IC_write(uchar address,uchar info)
{
//EA=0;
_DINT();
start430();
writex430(ICID_W);
clock430();
writex430(address);
clock430();
writex430(info);
clock430();
stop430();
//EA=1;
_EINT();
delay1(50);
}
uchar IC_R(uchar address)
{
uchar i;
start430();
writex430(IC_ID_W);
clock430();
writex430(address);
clock430();
start430();
writex430(IC_ID_R);
clock430();
i=readx430();
stop430();
delay1(10);
return(i);
}
void IC_W(uchar address,uchar info)
{
//EA=0;
_DINT();
start430();
writex430(IC_ID_W);
clock430();
writex430(address);
clock430();
writex430(info);
clock430();
stop430();
//EA=1;
_EINT();
delay1(50);
}
void startb64(void)
{
P4OUT|=(SDA64+SCL64);
P4DIR|=(SDA64+SCL64);
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT|=SCL64; //SCL=1
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT&=~SDA64; //SDA=0;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT&=~SCL64; //SCL=0
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
void stopb64(void)
{
P4OUT&=~SDA64; //SDA=0
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT|=SCL64; //SCL=1
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT|=SDA64; //SDA=1
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
void byte_tx(uchar shu) /* 发送一个字节 */
{
uchar i,temp,temp1;
temp=shu;
for (i=0;i<8;i++)
{
P4OUT&=~SCL64; //SCL=0;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
//P3OUT&=~SDA430;
nop();
nop();
temp1=(temp&0x80);
if(temp1==0) P4OUT&=~SDA64;
else P4OUT|=SDA64;
/*P3OUT|=((temp&0x80)/32); //sda=temp的最高位*/
temp=temp<<1;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT|=SCL64; //SCL=1;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
P4OUT&=~SCL64; //SCL=0
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT|=SDA64; //SDA=1
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
uchar byte_rx(void) /* 接收一个字节 */
{
uchar i,j,k=0;
P4OUT&=~SCL64; ///SCL=0;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4DIR&=~SDA64; //SDA为输入状态
for (i=0;i<8;i++)
{
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT|=SCL64; //SCL=1;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
if((P4IN&SDA64)==0) j=0;
else j=1;
k=(k<<1)|j;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
P4OUT&=~SCL64; //SCL=0
}
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -