标题: 51单片机+LCD12864串行显示程序 [打印本页]

作者: 美琴的备胎    时间: 2021-5-24 14:07
标题: 51单片机+LCD12864串行显示程序
如题,论坛里串行显示LCD12864的例程,要不就是不清晰,甚至有错误,网上一些资料或者要会员(我不说是哪家),要不就是有误。我的这个程序是我亲测可用的,接线也很明确。供坛友们下载。
附图,实际操作图

单片机程序节选
/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。
* 输入 : t
* 输出 : 无
***********************************************************************/
void delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0; i<t;  i++)
    for(j=0; j<10; j++);
}

/********************************************************************
* 名称 : sendbyte()
* 功能 : 按照液晶的串口通信协议,发送数据
* 输入 : zdata
* 输出 : 无
***********************************************************************/
void sendbyte(unsigned char zdata)
{
    unsigned int i;
    for(i=0; i<8; i++)
    {
        if((zdata << i) & 0x80)
        {
            SID = 1;
        }
        else
        {
            SID = 0;
        }
        SCLK = 0;
        SCLK = 1;
    }
}

/********************************************************************
* 名称 : write_com()
* 功能 : 写串口指令
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void write_com(unsigned char cmdcode)
{
    CS = 1;
    sendbyte(0xf8);
    sendbyte(cmdcode & 0xf0);
    sendbyte((cmdcode << 4) & 0xf0);
    delay(2);
}

/********************************************************************
* 名称 : write_data()
* 功能 : 写串口指令
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void write_data(unsigned char Dispdata)
{
    CS = 1;
    sendbyte(0xfa);
    sendbyte(Dispdata & 0xf0);
    sendbyte((Dispdata << 4) & 0xf0);
    delay(2);
}

/********************************************************************
* 名称 : lcdinit()
* 功能 : 初始化函数
* 输入 : cmdcode
* 输出 : 无
***********************************************************************/
void lcdinit()
{  
//    RST = 0;
//    delay(100);
//    RST = 1;
//    delay(20000);
    write_com(0x30);
    delay(50);
    write_com(0x0c);
    delay(50);
}


代码下载: 串行12864.zip (26 KB, 下载次数: 301)

作者: lyMarvin    时间: 2021-5-24 16:04
感谢有你,谢谢分享!
作者: tean    时间: 2021-7-20 15:13
这个怎么显示变量数字
作者: 美琴的备胎    时间: 2022-2-7 09:32
tean 发表于 2021-7-20 15:13
这个怎么显示变量数字

把数字拆开放到数组里试试

作者: zzzllq    时间: 2022-6-29 21:48
超级有用,感谢楼主
作者: ywd683    时间: 2022-8-4 05:41
感谢有你,谢谢分享!
作者: 红烧鱼头    时间: 2022-11-11 10:08
最后是不是少了把CS拉低的语句?
作者: mengsiu    时间: 2022-11-11 11:02
我以前也用12864的显示屏,也是用串行方式驱动。
现在我喜欢用一个19264的屏,SPI的,10块钱一个。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1