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

📄 12864p-101.c

📁 耀宇科技有限公司的128*64LCD的驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:

/***********************************
** 函数名称: Write_Data
** 功能描述: 传送数据
** 输 入: dat
** 输 出 : 无
** 全局变量:无
** 调用模块: Busy,
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Write_Data(unsigned char dat) 
{
    RS=1;
    RW_WR=0;
	DATA_BUS=dat;
	Delay(1);
    RW_WR=1;
	return;
}

/***********************************
** 函数名称: Write_Instruction
** 功能描述: 传送命令
** 输 入: dat
** 输 出 : 无
** 全局变量:无
** 调用模块: Busy,
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Write_Instruction(unsigned char cmd)
{
    RS=0;
    RW_WR=0;
	DATA_BUS=cmd;
	Delay(1);
    RW_WR=1;
	return;
}

/***********************************
** 函数名称: Initial_Dispay_Line 
** 功能描述: Specify DDRAM line for COM0 0~63
** 输 入:  line
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Initial_Dispay_Line(unsigned char line)
{
    line|=0x40;
    Write_Instruction(line);
	return;
}

/***********************************
** 函数名称: Set_Page_Address
** 功能描述: Set page address 0~15
** 输 入:  add 
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Set_Page_Address(unsigned char add)
{
    add=0xb0|add;
    Write_Instruction(add);
	return;
}

/***********************************
** 函数名称: Set_Column_Address    0~255
** 功能描述: Set column address
** 输 入:  add
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Set_Column_Address(unsigned char add)
{
    Write_Instruction((0x10|(add>>4)));
	Write_Instruction((0x0f&add));
	return;
}

/***********************************
** 函数名称: Power_Control
** 功能描述: Power_Control   4 (internal converte ON) + 2 (internal regulor ON) + 1 (internal follower ON)
** 输 入:  vol
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Power_Control(unsigned char vol)
{
    Write_Instruction((0x28|vol));
	return;
}

/***********************************
** 函数名称: Regulor_Resistor_Select
** 功能描述:  Regulor resistor select
**            1+Rb/Ra  Vo=(1+Rb/Ra)Vev    Vev=(1-(63-a)/162)Vref   2.1v
**            0  3.0       4  5.0(default)
**            1  3.5       5  5.5
**            2  4         6  6
**            3  4.5       7  6.4
** 输 入:  r
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Regulor_Resistor_Select(unsigned char r)
{
    Write_Instruction((0x20|r));
	return;
}

/***********************************
** 函数名称: Set_Contrast_Control_Register
** 功能描述:  Set reference voltage mode
**            a(0-63) 32default   Vev=(1-(63-a)/162)Vref   2.1v
** 输 入:  mod
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Set_Contrast_Control_Register(unsigned char mod)
{
    Write_Instruction(0x81);
	Write_Instruction(mod);
	return;
}


/***********************************
** 函数名称: Initial
** 功能描述:  Initial
** 输 入:  无
** 输 出 : 无
** 全局变量:无
** 调用模块: POWER_SAVE,Delay,CLEAR_ADC,CLEAR_SHL,SET_BIAS,Power_Control,Regulor_Resistor_Select,Set_Contrast_Control_Register
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
#pragma disable
void Initial(void)
{
    RESET();
	RST=1;
	IE=0x81;
	IP=0x01;
	TCON=0x00;
	Delay(60000);
    CLEAR_ADC();
    SET_SHL();
    CLEAR_BIAS();
    Power_Control(0x07);
    Regulor_Resistor_Select(0x05);
    Set_Contrast_Control_Register(0x23);
	Initial_Dispay_Line(0x00);
	Delay(1000);
}

/***********************************
** 函数名称: Clear_Display
** 功能描述: Clear_Display
** 输 入:  无
** 输 出 : 无
** 全局变量:无
** 调用模块:
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
#pragma disable
void Clear_Display(void)
{
    register unsigned char i,j;
    for(i=0;i<0x09;i++)
	{
		Set_Page_Address(i);
        Set_Column_Address(0x00);
		for(j=0;j<0x80;j++)
		{
		    Write_Data(0x00);
		}
	}
    return;
}



/***********************************
** 函数名称: Display_Chess
** 功能描述: Display_Chess
** 输 入:  value
** 输 出 : 无
** 全局变量:无
** 调用模块:
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
#pragma disable
void Display_Chess(unsigned char value)
{
    register unsigned char i,j,k;
    for(i=0;i<0x08;i++)
	{
		Set_Page_Address(i);
        Set_Column_Address(0x00);
		value=~value;
		for(j=0;j<0x08;j++)
		{
		    for(k=0;k<0x08;k++)
		        Write_Data(value);
		    for(k=0;k<0x08;k++)
		        Write_Data(~value);
		}
	}
    return;
}


/***********************************
** 函数名称: Display_Chinese
** 功能描述: Display_Chinese
** 输 入:  value
** 输 出 : 无
** 全局变量:无
** 调用模块:
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
#pragma disable
void Display_Picture(unsigned char pc[])
{
    unsigned char i;
    unsigned int idata k,num=0;
	for(i=0;i<0x08;i++)
	{
		Set_Page_Address(i);
        Set_Column_Address(0x00);
        for(k=0;k<0x80;k++)
		{
		    Write_Data(pc[num+k]);
		}
        num+=0x80;
	}
    return;
}


void main(void)
{
	Delay(2000);
    CS1=0;
    Initial();
    DISPLAY_ON();
    REVERSE_DISPLAY_OFF();
    Clear_Display();//清屏函数
   while(1)
	{

        Clear_Display();
		Display_Chess(0xff);
	    Delay(65000);
	    Delay(65000);
	    Delay(65000);
	    Delay(15000);
    	REVERSE_DISPLAY_ON();
        Delay(65000);
        Delay(65000);
        Delay(65000);
        Delay(15000);
		REVERSE_DISPLAY_OFF();


		Display_Picture(pic2);
	    Delay(65000);
	    Delay(65000);
	    Delay(65000);
	    Delay(15000);
    	REVERSE_DISPLAY_ON();
        Delay(65000);
        Delay(65000);
        Delay(65000);
        Delay(15000);
		REVERSE_DISPLAY_OFF();

	}
}

⌨️ 快捷键说明

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