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

📄 pcf8576.c

📁 PHILIP驱动器PCF8576驱动程序
💻 C
字号:

/***********************PCF8576驱动程序***************************/

/*
方式设定
*  |  C  |   1    |    0   |   LP   |   E   |    B    |   M1   |   M2   | 
*   -----------------------------------------------------------------------  
   C=1表示后面传送的仍是命令,C=0表示其后传送的是最
   后一个命令,接下来是数据。
   LP 为功耗控制位 0--正常  1--节电方式
   E--显示使能  0--禁止显示 1--允许显示
   B--偏置电压  0-- 1/3偏置     1--1/4偏置
   M0 M1--驱动方式  01--静态 10--1:2多级 11--1:3多级 00--1:4多级
*/

#define SCL     PDR5_P55
#define SDA     PDR5_P54



void Display_Frame(char *ptr2Frm,int Len)
{ 
 	I2C_start();   //I2C起始
 	I2C_send(0x70);  //发送PCF8576器件地址  其器件地址为0x70 	
 	I2C_send(0xc9);  //方式设定
 	I2C_send(0xE0); //发送子地址 A0,A1,A2均接地,故子地址为0x0
	 //I2C_send(0x73);  //子地址
    I2C_send(0x00);  //发送数据指针 
 do
 {
  I2C_send((char)(*ptr2Frm));
  ptr2Frm++;
 }
 while(--Len>0);
 
  I2C_stop();  //I2C关闭
 delayms(10);   //延迟10ms
}

void clearlcd(void)
{
 I2C_start();   //I2C起始
 I2C_send(0x70);  //发送PCF8576器件地址
 //I2C_send(0x88);
 I2C_send(0x51);  //子地址
 //I2C_send(0x73);  //子地址
 //I2C_send(0x00);  //发送数据指针 
 I2C_stop();  //I2C关闭
 delayms(10);   //延迟10ms

}



void init_I2C(void)
{
    SCL = 0;
    SDA = 0;
    SCL_1;
    SDA_1;
}

void I2C_start(void)
{
	SCL_1;
	delay(1);
	SDA_0;
	delay(1);
	SCL_0;
	delay(1);
}


void I2C_stop(void)	
{
	SDA_0;
	delay(1);
	SCL_1;
	delay(1);
	SDA_1;
	delay(1);
	SCL_0;
	delay(1);
}


uchar I2C_clock(void)
{
	uchar bits;

	SCL_1;
	delay(1);
	bits = SDA;
	SCL_0;
	delay(1);

	return(bits);
}


uchar I2C_send(uchar buf)
{
	uchar	i;
	for(i = 0; i < 8; i++)
	{
		if ((buf & 0x80) == 0) {SDA_0;}
		else {SDA_1;}
        buf <<= 1;
		I2C_clock();
	}
	SDA_1;
	return(~I2C_clock());
}



uchar I2C_recv(void)
{
    uchar buf,i;
    
    buf = 0;
	
	for(i = 0; i < 8; i++)
	{
		buf <<= 1;
		if (I2C_clock()) buf++;
	}
	return(buf);
}



void I2C_ack(void)
{
	SDA_0;
	I2C_clock();
	SDA_1;
}

void I2C_nak(void)
{
	SDA_1;
	I2C_clock();
}




⌨️ 快捷键说明

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