⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msp430sgtz.c

📁 tiMSP430F147体能监测设备源码
💻 C
📖 第 1 页 / 共 5 页
字号:
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        P3OUT&=~SDA430;         //SDA=0;
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        P3OUT&=~SCL430;         //SCL=0
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
}
/*void stop()
{
   	sda=0; 
   	nop(); 
   	scl=1; 
   	nop(); 
   	sda=1; 
   	nop();
}*/
void stop430()
{
       P3OUT&=~SDA430;       //SDA=0
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
       P3OUT|=SCL430;        //SCL=1
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
       P3OUT|=SDA430;        //SDA=1
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
}
/*void writex(uchar j)
{
   	uchar i,temp;
   	temp=j;
   	for (i=0;i<8;i++)
   	{
      		temp=temp<<1; 
      		scl=0; 
      		nop(); 
      		sda=CY; 
      		nop(); 
      		scl=1; 
      		nop();
   	}
   	scl=0; 
   	nop(); 
   	sda=1; 
   	nop();
}*/
void writex430(uchar j)
{      
        uchar i,temp,temp1;
   	temp=j;
   	for (i=0;i<8;i++)
   	{
   	     P3OUT&=~SCL430;    //SCL=0;
   	     nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
   	     //P3OUT&=~SDA430;
   	     nop();
   	     nop();
   	     temp1=(temp&0x80);
   	     if(temp1==0) P3OUT&=~SDA430;
   	     else P3OUT|=SDA430;  
   	     /*P3OUT|=((temp&0x80)/32); //sda=temp的最高位*/
   	     temp=temp<<1;
   	     nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
   	     P3OUT|=SCL430;    //SCL=1;
   	     nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
   	     
   	  }
   	P3OUT&=~SCL430;       //SCL=0
   	nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
   	P3OUT|=SDA430;      //SDA=1
   	nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
}
   	  
/*uchar readx()
{
   	uchar i,j,k=0;
   	scl=0; 
   	nop(); 
   	sda=1;
   	for (i=0;i<8;i++)
   	{
      		nop(); 
      		scl=1; 
      		nop();
      		if (sda==1) j=1;
      		else j=0;
      		k=(k<<1)|j; 
      		scl=0;
   	}
   	nop(); 
   	return(k);
}*/

uchar readx430()
{
     uchar i,j,k=0;
     P3OUT&=~SCL430;   ///SCL=0;
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
     P3DIR&=~SDA430;   //SDA为输入状态
     for (i=0;i<8;i++)
     {
        
        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();
        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();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -