📄 320×240图形点阵液晶与51单片机的接口设计.txt
字号:
LCD初始化函数
#define LcdCommand XBYTE[0x7f01] //1335CS--->P2.7, A0=1
#define LcdDataWrite XBYTE[0x7f00] //1335A0--->ADDR0 A0=0
////////////////初始化LCD函数/////////////////////
void Initialize1335(void)
{
uint i;
LcdCommand=0x40; //LCD SYSTEM SET系统设置令,8个参数
LcdDataWrite=0x30;
LcdDataWrite=0x87;
LcdDataWrite=0x07;
LcdDataWrite=39; //显示域长度为320dot
LcdDataWrite=0x36; //确定液晶工作频率
LcdDataWrite=239; //显示屏高度为240dot
LcdDataWrite=40; //显示屏一行所占显示缓冲区字节数(L)
LcdDataWrite=0; //显示屏一行所占显示缓冲区字节数(H)
delay(0x09);
LcdCommand=0x44; //LCD SCROLL显示区设置命令,最多10个参数
LcdDataWrite=0x00; //显示1区对应的显示RAM起始高8位地址
LcdDataWrite=0x00; //显示1区对应的显示RAM起始低8位地址
LcdDataWrite=240; //显示1区占用240个dot行
LcdDataWrite=0x80; //显示2区对应的显示RAM起始低8位地址
LcdDataWrite=0x25; //显示2区对应的显示RAM起始高8位地址
LcdDataWrite=240; //显示3区占用240个dot行
LcdDataWrite=0x00; //显示3区对应的显示RAM起始低8位地址
LcdDataWrite=0x4b; //显示3区对应的显示RAM起始高8位地址
delay(0x09);
LcdCommand=0x5a; //水平卷动,初始化时必须清零
LcdDataWrite=0x00;
delay(0x09);
LcdCommand=0x5b; //各个显示区的合成方式,1个参数
LcdDataWrite=0x1c; //参数:显示方式为三屏图形叠加,逻辑或
delay(0x09);
LcdCommand=0x59; //打开显示,1个参数
LcdDataWrite=0x40; //只显示第3个区并关闪烁
delay(0x09);
LcdCommand=0x4c; //光标自动向右增一
delay(0x09);
LcdCommand=0x46; //设定光标位置命令
LcdDataWrite=0; //从0000位置开始
LcdDataWrite=0;
delay(0x09);
LcdCommand=0x42; //允许MPU连续地把显示数据写入显示区内命令
for(i=0;i<32760;i++)
{
LcdDataWrite=0; //将32K显缓全部清零,即LCD不显示任何东西
}
}
在对LCD进行初始化之后,即可在任意指定位置显示任意图形或字符,下面是一段在指定位置显示汉字的程序:
////////设定光标,允许显示///////
void SetCursor(uchar CursorHIGH,uchar CursorLOW)
{
delay(0x09);
LcdCommand=0x46; // 设定光标位置命令
LcdDataWrite=CursorLOW; //从0000位置开始
LcdDataWrite=CursorHIGH;
delay(0x09);
LcdCommand=0x42; //允许MPU连续地把显示数据写入显示区内命令
}
//////在指定位置显示一个16*16汉字/////////
void WriteOneWork(uchar CurHIGH,uchar CurLOW,uchar * ZiKu)
{
uchar i;
SetCursor(CurHIGH,CurLOW); //设定光标,允许显示
i=0;
do
{
LcdDataWrite=ZiKu[i];
i=i+2;
}
while(i<0x1e);
SetCursor(CurHIGH,CurLOW+1);
i=1;
while(i<0x1f)
{
LcdDataWrite=ZiKu[i];
i=i+2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -