找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6080|回復(fù): 7
收起左側(cè)

51單片機(jī)+LCD12864串行顯示程序

  [復(fù)制鏈接]
ID:891089 發(fā)表于 2021-5-24 14:07 | 顯示全部樓層 |閱讀模式
如題,論壇里串行顯示LCD12864的例程,要不就是不清晰,甚至有錯(cuò)誤,網(wǎng)上一些資料或者要會(huì)員(我不說是哪家),要不就是有誤。我的這個(gè)程序是我親測(cè)可用的,接線也很明確。供壇友們下載。
附圖,實(shí)際操作圖

實(shí)際操作圖

實(shí)際操作圖

單片機(jī)程序節(jié)選
/********************************************************************
* 名稱 : delay()
* 功能 : 延時(shí),延時(shí)時(shí)間為 100us * t。這是通過軟件延時(shí),有一定誤差。
* 輸入 : t
* 輸出 : 無
***********************************************************************/
void delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0; i<t;  i++)
    for(j=0; j<10; j++);
}

/********************************************************************
* 名稱 : sendbyte()
* 功能 : 按照液晶的串口通信協(xié)議,發(fā)送數(shù)據(jù)
* 輸入 : 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()
* 功能 : 初始化函數(shù)
* 輸入 : 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, 下載次數(shù): 301)

評(píng)分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:58110 發(fā)表于 2021-5-24 16:04 | 顯示全部樓層
感謝有你,謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:953813 發(fā)表于 2021-7-20 15:13 | 顯示全部樓層
這個(gè)怎么顯示變量數(shù)字
回復(fù)

使用道具 舉報(bào)

ID:891089 發(fā)表于 2022-2-7 09:32 | 顯示全部樓層
tean 發(fā)表于 2021-7-20 15:13
這個(gè)怎么顯示變量數(shù)字

把數(shù)字拆開放到數(shù)組里試試
回復(fù)

使用道具 舉報(bào)

ID:1037655 發(fā)表于 2022-6-29 21:48 來自觸屏版 | 顯示全部樓層
超級(jí)有用,感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:32627 發(fā)表于 2022-8-4 05:41 | 顯示全部樓層
感謝有你,謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:188720 發(fā)表于 2022-11-11 10:08 | 顯示全部樓層
最后是不是少了把CS拉低的語句?
回復(fù)

使用道具 舉報(bào)

ID:16255 發(fā)表于 2022-11-11 11:02 | 顯示全部樓層
我以前也用12864的顯示屏,也是用串行方式驅(qū)動(dòng)。
現(xiàn)在我喜歡用一個(gè)19264的屏,SPI的,10塊錢一個(gè)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表