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

📄 uc1603_c.c

📁 单色液晶屏96X64初始化代码
💻 C
字号:

#include <AT89X52.H>
#include <intrins.h>

#define TIMING                 8080

#define RS                     P3_0
#define RW_WR                  P3_4
#define E_RD                   P3_5
#define DATA_BUS               P1
#define CS1                    P3_3

unsigned char code pic[]=
{

};

void Delay(unsigned int n)
{
    while(n--);
	return;
}

#if (TIMING==8080)

#pragma disable
void Busy()
{
    unsigned char flag=0xff;
    RS=0;E_RD=1;RW_WR=1;
	while ((flag&0x80)==0x80)
	{
		E_RD=0;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
	    flag=DATA_BUS;
    	E_RD=1;
	}
	return;
}

#else

#pragma disable
void Busy()
{
    unsigned char flag=0xff;
    RS=0;E_RD=0;RW_WR=1;
	while ((flag&0x80)==0x80)
	{
		E_RD=1;
		_nop_();
	    flag=DATA_BUS;
    	E_RD=0;
	}
	return;
}

#endif


#if (TIMING==8080)

#pragma disable
void Write_Data(unsigned char dat) 
{
  //  Busy();
    RS=1;
	DATA_BUS=dat;
    RW_WR=0;
    _nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
    RW_WR=1;
	_nop_();
	_nop_();
	_nop_();
	return;
}

#else

#pragma disable
void Write_Data(unsigned char dat) 
{
    Busy();
    RS=1;
    RW_WR=0;
	DATA_BUS=dat;
    E_RD=1;
    _nop_();
    E_RD=0;
	_nop_();
	_nop_();
	_nop_();
	return;
}

#endif


#if (TIMING==8080)

#pragma disable
void Write_Instruction(unsigned char cmd)
{
//    Busy();
    RS=0;
	DATA_BUS=cmd;
    RW_WR=0;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
    RW_WR=1;
	_nop_();
	_nop_();
	_nop_();
	return;
}

#else

#pragma disable
void Write_Instruction(unsigned char cmd)
{
    Busy();
    RS=0;
    RW_WR=0;
	DATA_BUS=cmd;
    E_RD=1;
	_nop_();
    E_RD=0;
	return;
}

#endif


void Set_Page_Address(unsigned char add)
{
    add=0xb0|add;
    Write_Instruction(add);
	return;
}


void Set_Column_Address(unsigned char add)
{
	Write_Instruction((0x0f&add));
    Write_Instruction((0x10|(add>>4)));
	return;
}


#pragma disable
void Initial(void)
{
    Write_Instruction(0x26);//Set TC
    Write_Instruction(0x2e);//Set power control
    Write_Instruction(0x81); 
     Write_Instruction(0x7f);//Set Vbias  Potentiometer
 //   Write_Instruction(0xa5);//all pixel on
      Write_Instruction(0x88);//set ram control
    Write_Instruction(0xaf);//set display enable
    Write_Instruction(0xeb);//set LCD bias ratio
}


void Display_Grid(unsigned char value_first,unsigned char value_second)
{
    unsigned char i,j;
    for(i=0;i<0x08;i++)
	{
		Set_Page_Address(i);
        Set_Column_Address(0x00);
		for(j=0;j<96;j++)
		{
		    Write_Data(value_first);
		    Write_Data(value_second);
		}
	}
    return;
}


void Display_Picture(unsigned char pic[])
{
    unsigned char i,j,num=0;
	for(i=0;i<0x08;i++)
	{
	Set_Page_Address(i);
    Set_Column_Address(0x00);
        for(j=0;j<0x60;j++)
		{
		    Write_Data(pic[i*0x60+j]);
		}
	}
    return;
}

void main(void)
{
	Delay(1000);
	CS1=0;
    Initial();
	    Display_Grid(0xaa,0xaa);
	while(1)
	{
	Display_Picture(pic);
    Delay(60000);
    Display_Grid(0x55,0x55);
    Delay(60000);
    Display_Grid(0xaa,0xaa);
    Delay(60000);
    Display_Grid(0xff,0x00);
    Delay(60000);
    Display_Grid(0x00,0xff);
    Delay(60000);

    }

}

⌨️ 快捷键说明

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