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

📄 1335.c

📁 MONO lcd 驱动 SED1335 IC
💻 C
字号:
#include "reg51.h"
#include "absacc.h"
#include "intrins.h"
#include "achilis.h"
#define  DATA P1
sbit CS =P3^2; 
sbit R_D =P3^1; 
sbit W_R =P3^4; 
sbit RES =P3^3; 
sbit A0 =P3^0; 

void Initialize(void);
void delay();
void LcdCommand(dat ); 
void LcdDataWrite(command) ;
void delay5ms();
void display(mm);

void display1(mm);
void display2(void);
void display3(void);
void display4(void);
void displayhz(dd,const unsigned char *h);
void displayg(dd,const unsigned char *h);
void displaygg(dd,const unsigned char *h);
void display320128(const unsigned char *h);


void main(void)
{
CS=0;
delay5ms();

 do{
Initialize();

delay5ms();delay5ms();delay5ms();delay5ms();



display1(0x0ff);delay();
display1(0x0aa);delay();
display2(); delay();//行
display3(); delay();delay();//雪花

display1(0x00);  delay5ms();delay5ms();

display4();
displayhz(1618,h);
displayhz(1620,h1);
displayhz(1622,h2);
displayhz(1624,h3);
displayhz(2578,h4);
displayhz(2580,h5);
displayhz(2582,h6);
displayhz(2584,h7);
//display(0x0ff);
delay();delay();

/*display(0x00);display1(0x00);  delay5ms();delay5ms();

//display4();display(0x0ff);
//displayg(1134,h8);delay();//cqu

display(0x00);
display1(0x00);  delay5ms();delay5ms();

display4();//display(0x0ff);
displayg(1136,h9);delay();//oo

display(0x00);
display1(0x00);  delay5ms();delay5ms();

display4();display(0x0ff);
displayg(1134,h12);delay();//moto

display(0x00);
display1(0x00);  delay5ms();delay5ms();

display4();//display(0x0ff);
displayg(1134,h11);delay();//love

display(0x00);
display1(0x00);  delay5ms();delay5ms();

display(0x0ff);
display320128(h13);delay();delay();delay();//sanguo
*/
}while(1);
}


/******************************** 初始化LCD函数 ********************************/
void Initialize(void)
{


LcdCommand(0x40); /* ---------LCD SYSTEM SET系统设置令,8个参数-------- */
LcdDataWrite(0x30);
LcdDataWrite(0x87);
LcdDataWrite(0x07);
LcdDataWrite(39); /* 显示域长度为320dot */
LcdDataWrite(100); /* 确定液晶工作频率 */
LcdDataWrite(128); /* 显示屏高度为240dot */
LcdDataWrite(40); /* 显示屏一行所占显示缓冲区字节数(L) */
LcdDataWrite(0); /* 显示屏一行所占显示缓冲区字节数(H) */
 delay5ms();

LcdCommand(0x44); /* ---------LCD SCROLL显示区设置命令,最多10个参数--------- */
LcdDataWrite(0x00); /* 显示1区对应的显示RAM起始高8位地址 */
LcdDataWrite(0x00); /* 显示1区对应的显示RAM起始低8位地址 */
LcdDataWrite(128); /* 显示1区占用240个dot行 */
LcdDataWrite(0x00); /* 显示2区对应的显示RAM起始低8位地址 */
LcdDataWrite(0x14); /* 显示2区对应的显示RAM起始高8位地址 */
LcdDataWrite(128); /* 显示3区占用240个dot行 */
LcdDataWrite(0x00); /* 显示3区对应的显示RAM起始低8位地址 */
LcdDataWrite(0x28); /* 显示3区对应的显示RAM起始高8位地址 */
delay5ms();

LcdCommand(0x5a); /* 水平卷动,初始化时必须清零 */
LcdDataWrite(0x00);
 delay5ms();

LcdCommand(0x5b); /* 各个显示区的合成方式,1个参数 */
LcdDataWrite(0x05); /* 参数:显示方式为三屏图形叠加,逻辑或 */
 delay5ms();

LcdCommand(0x59); /* 打开显示,1个参数 */
LcdDataWrite(0x04); /* 只显示第一个区并关闪烁 */
 delay5ms();

LcdCommand(0x4c); /* 光标自动向右增一?*/
 delay5ms();

LcdCommand(0x46); /* 设定光标位置命令 */
LcdDataWrite(0); /* 从0000位置开始 */
LcdDataWrite(0);
 delay5ms();
LcdCommand(0x42);

display1(0);
//display(0);

}


void display(mm)

{unsigned int i;
LcdCommand(0x46); /* 设定光标位置命令 */
LcdDataWrite(0x00); /* 显示2区对应的显示RAM起始低8位地址 */
LcdDataWrite(0x14);
 delay5ms();


LcdCommand(0x42); 
for(i=0;i<5120;i++)
{LcdDataWrite(mm);}

}

void display1(mm)

{unsigned int i;
LcdCommand(0x46); /* 设定光标位置命令 */
LcdDataWrite(0); /* 从0000位置开始 */
LcdDataWrite(0);
 delay5ms();


LcdCommand(0x42); 
for(i=0;i<5120;i++)
{LcdDataWrite(mm);}

}

/////////////////////////////////////////////////



void display2()

{unsigned int i,j,k;
LcdCommand(0x46); /* 设定光标位置命令 */
LcdDataWrite(0); /* 从0000位置开始 */
LcdDataWrite(0);
 delay5ms();

LcdCommand(0x42); 

k=64;
do{
for(i=0;i<40;i++)
{LcdDataWrite(0x0ff);};

for(j=0;j<40;j++)
{LcdDataWrite(0x00);}
}while(k--);

}


void display3()

{unsigned int i,j,k;
LcdCommand(0x46); 
LcdDataWrite(0); 
LcdDataWrite(0);
 delay5ms();

LcdCommand(0x42); 

k=64;
do{
for(i=0;i<40;i++)
{LcdDataWrite(0x0aa);};

for(j=0;j<40;j++)
{LcdDataWrite(0x55);}
}while(k--);

}

void display4()           //方框
{unsigned int i,j,k;
LcdCommand(0x46); 
LcdDataWrite(0); 
LcdDataWrite(0);
 delay5ms();
LcdCommand(0x42); 

for(i=0;i<40;i++)
{LcdDataWrite(0x0ff);};//line 1

k=127;                // ll
do{
LcdDataWrite(0x80);
for(i=0;i<38;i++)
{LcdDataWrite(0x00);};
LcdDataWrite(0x01);

}while(k--);

LcdCommand(0x46); //line128
LcdDataWrite(0x0d8); 
LcdDataWrite(0x13);
 delay5ms();
LcdCommand(0x42); 
for(j=0;j<40;j++)
{LcdDataWrite(0xff);}

}



void displayhz(dd,const unsigned char *h)     //汉字
{unsigned int i,k,l,g;

for(k=0;k<16;k++)
{

i=dd+k*40;

l=i&0x0ff;
g=((i&0xff00)>>8);

LcdCommand(0x46); 
LcdDataWrite(l); 
LcdDataWrite(g);

LcdCommand(0x42);
LcdDataWrite(h[2*k]);
LcdDataWrite(h[2*k+1]);
};

}

void displayg(dd,const unsigned char *h)     //图形
{unsigned int i,k,l,g;

for(k=0;k<72;k++)
{

i=dd+k*40;

l=i&0x0ff;
g=((i&0xff00)>>8);

LcdCommand(0x46); 
LcdDataWrite(l); 
LcdDataWrite(g);

LcdCommand(0x42);
LcdDataWrite(h[9*k]);
LcdDataWrite(h[9*k+1]);
LcdDataWrite(h[9*k+2]);
LcdDataWrite(h[9*k+3]);
LcdDataWrite(h[9*k+4]);
LcdDataWrite(h[9*k+5]);
LcdDataWrite(h[9*k+6]);
LcdDataWrite(h[9*k+7]);
LcdDataWrite(h[9*k+8]);
};
}

void displaygg(dd,const unsigned char *h)     //图形
{unsigned int i,k,l,g;

for(k=0;k<72;k++)
{

i=dd+k*40;

l=i&0x0ff;
g=((i&0xff00)>>8);

LcdCommand(0x46); 
LcdDataWrite(l); 
LcdDataWrite(g);

LcdCommand(0x42);
LcdDataWrite(h[13*k]);
LcdDataWrite(h[13*k+1]);
LcdDataWrite(h[13*k+2]);
LcdDataWrite(h[13*k+3]);
LcdDataWrite(h[13*k+4]);
LcdDataWrite(h[13*k+5]);
LcdDataWrite(h[13*k+6]);
LcdDataWrite(h[13*k+7]);
LcdDataWrite(h[13*k+8]);
LcdDataWrite(h[13*k+9]);
LcdDataWrite(h[13*k+10]);
LcdDataWrite(h[13*k+11]);
LcdDataWrite(h[13*k+12]);
};
}

void display320128(const unsigned char *h)           //320128
{unsigned int i;
LcdCommand(0x46); 
LcdDataWrite(0); 
LcdDataWrite(0);
 delay5ms();
LcdCommand(0x42); 

for(i=0;i<2000;i++)
{LcdDataWrite(h[i]);}

}



/////////////////////写数据
void LcdCommand(dat ) 
{  
A0=1;
DATA=dat ;
W_R=0;
W_R=1; }

///////////////////////写指令
void LcdDataWrite(command) 
{ 
A0=0;
DATA=command ;
W_R=0;
W_R=1; }
///////////////////////////////
void delay()
{
unsigned char i=3;
unsigned int j=5;
	while(i--){while(j--);} ;
}
////////////////////////////////
void delay5ms()
{
unsigned char i=5552;
	while(i--);
}

⌨️ 快捷键说明

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