找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4885|回复: 7
收起左侧

51单片机+LCD12864串行显示程序

  [复制链接]
ID:891089 发表于 2021-5-24 14:07 | 显示全部楼层 |阅读模式
如题,论坛里串行显示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, 下载次数: 290)

评分

参与人数 1黑币 +80 收起 理由
admin + 80 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:58110 发表于 2021-5-24 16:04 | 显示全部楼层
感谢有你,谢谢分享!
回复

使用道具 举报

ID:953813 发表于 2021-7-20 15:13 | 显示全部楼层
这个怎么显示变量数字
回复

使用道具 举报

ID:891089 发表于 2022-2-7 09:32 | 显示全部楼层
tean 发表于 2021-7-20 15:13
这个怎么显示变量数字

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

使用道具 举报

ID:1037655 发表于 2022-6-29 21:48 来自手机 | 显示全部楼层
超级有用,感谢楼主
回复

使用道具 举报

ID:32627 发表于 2022-8-4 05:41 | 显示全部楼层
感谢有你,谢谢分享!
回复

使用道具 举报

ID:188720 发表于 2022-11-11 10:08 | 显示全部楼层
最后是不是少了把CS拉低的语句?
回复

使用道具 举报

ID:16255 发表于 2022-11-11 11:02 | 显示全部楼层
我以前也用12864的显示屏,也是用串行方式驱动。
现在我喜欢用一个19264的屏,SPI的,10块钱一个。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表