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

📄 320×240图形点阵液晶与51单片机的接口设计.txt

📁 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 + -