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

📄 pcf8591.c

📁 本程序完成对PCF8591芯片的初始化操作,并读出AD转换后的结果,程序未经测试.
💻 C
字号:
void DELAY5()
{
;
}
//******************************
void PCF8591_START()          //PCF8591 起始信号
{
PCF8591_DATA=1;
PCF8591_CLK=1;
while(PCF8591_CLK==0)
   {;}
DELAY5();
PCF8591_DATA=0;
DELAY5();
PCF8591_CLK=0;
}
//**********************************
void PCF8591_STOP()          //pcf8591停止信号
{

PCF8591_DATA=0;
PCF8591_CLK=1;
while(SCL==0)
  {;}
  DELAY5();
PCF8591_DATA=1;
 DELAY5();
PCF8591_CLK=0;
 DELAY5();
}
//****************************
void cack()
{F0=0;
 PCF8591_DATA=1;
 PCF8591_CLK=1;
 DELAY5();
  if(PCF8591_DATA==0)
  { PCF8591_CLK=0; DELAY5(); }
 else 
  {F0=1;PCF8591_CLK=0;DELAY5();}
 
}
/*
void mack() //应答子程序
{ PCF8591_DATA=0;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=1; 
}
void mnack()//非应答子程序
{ PCF8591_DATA=1;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=0;
}
*/
void wrbyt0()        //写入0这个1BIT的数据
{PCF8591_DATA=0;
PCF8591_CLK=1;
DELAY5();
PCF8591_CLK=0;
}
void wrbyt1()        //写入1这个1BIT的数据
{PCF8591_DATA=1;
PCF8591_CLK=1;
DELAY5();
PCF8591_CLK=0;
PCF8591_DATA=0;
}
//***************************
void DATA_WRITE(unsigned  j)   //写入8BIT数据.
{unsigned i=0;
  for(i=0;i<8;i++)
  {if((j&0x80)>0)
    wrbyt1();
   else 
    wrbyt0();
   j<<=1;
  }  
}
//************************************
unsigned  DATA_READ()
{unsigned  j=0xff;
 unsigned  i=0;
 for(i=0;i<8;i++)
  {PCF8591_DATA=1;PCF8591_CLK=1;
   if(PCF8591_DATA==0)
     {j<<=1;j=(j&0xfe);PCF8591_CLK=0;}
    else
     {j<<=1;j=(j|0x01);PCF8591_CLK=0;}      
  }
return(j);
}

//************************************
unsigned  READ_AD(void)
{unsigned j=0, k=0;

//duad1:
//do
      {  PCF8591_START() ;
	     DATA_WRITE(0x90);   //ad寻址字
         cack();
      }
//while (F0==1);
//{
        PCF8591_START() ;
         DATA_WRITE(0x91);   //写器件地址和读命令
         cack();
      
       j=DATA_READ();        //读出AD转换后的数据
      PCF8591_STOP(); 
      return(0xa0); 
//}
}

⌨️ 快捷键说明

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