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

📄 8.5.c

📁 lcd 液晶显示程序 很好很实用 希望对大家有用
💻 C
字号:
#include <reg52.h>
#include <absacc.h>

#define uchar unsigned char
#define uint unsigned int

#define LcdCommand           XBYTE[0xFFFF]
#define LcdDataWrite         XBYTE[0xFFFE]

uchar code ZKWU[]=
{0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0x00,0x10,0x3F,
0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x02,0x80,0x02,0x40,0x04,0x20,0x18,0x1C,0x60,
0x08};

uchar code ZKLIN[]=
{0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70
,
0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26,0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20}
;           
                             
void Initialize(void);
void delay(uint);
void SetCursor(uchar,uchar);
void WriteOneWork(uchar,uchar,uchar *);
void WriteLine(uchar,uchar,uchar);

void main(void)
{
        SP=0x60;        
        EA=0;
        delay(0x30);
        Initialize();
        delay(0x9);
        LcdCommand=0x4f;        /* 光标地址自动向下增一 */
        
        WriteOneWork(0,0,ZKWU);

        WriteOneWork(0x2,0x80,ZKLIN);
                     
        while(1);
}

/******************************** 初始化LCD函数 
********************************/
void Initialize(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(0x9);
        
        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(0x9);
        
        LcdCommand=0x5a;       /* 水平卷动,初始化时必须清零 */
        LcdDataWrite=0x00;
        delay(0x9);
        
        LcdCommand=0x5b;       /* 各个显示区的合成方式,1个参数 */
        LcdDataWrite=0x1c;     /* 参数:显示方式为三屏图形叠加,逻辑或 */
        delay(0x9);
        
        LcdCommand=0x59;       /* 打开显示,1个参数 */
        LcdDataWrite=0x04;     /* 只显示第一个区并关闪烁 */
        delay(0x9);
        
        LcdCommand=0x4c;       /* 光标自动向右增一?*/
        delay(0x9);
        
        LcdCommand=0x46;       /* 设定光标位置命令 */
        LcdDataWrite=0;        /* 从0000位置开始 */
        LcdDataWrite=0;
        delay(0x9);
        
        LcdCommand=0x42;       /* 允许MPU连续地把显示数据写入显示区内命令 */

        for(i=0;i<32760;i++)
        {
                LcdDataWrite=0;  /* 将32K显缓全部清零,即LCD不显示任何东西 */
        }
}

/* --------------------------设定光标,允许显示------------------------- */
void SetCursor(uchar CursorHIGH,uchar CursorLOW)
{        
        delay(0x9);
        LcdCommand=0x46;       /* 设定光标位置命令 */
        LcdDataWrite=CursorLOW;        /* 从0000位置开始 */
        LcdDataWrite=CursorHIGH;
        delay(0x9);
        LcdCommand=0x42;       /* 允许MPU连续地把显示数据写入显示区内命令 */
}

/* ---------------------------在指定位置显示一个汉字--------------------------- 
*/
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;
        }

} 


/* ----------------------延时子程序----------------------------- */
void delay(uint delx)
{
        uint i=0;
        while(i<delx)
        {
                i++;
        }
}

⌨️ 快捷键说明

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