📄 1335.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 + -