找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2598|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

請教大佬關(guān)于LCD12864反白顯示程序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 wanli2018 于 2022-3-6 17:25 編輯

請問一下這個(gè)程序怎樣讓  write_com(0x82); lcm_w_word("—名稱設(shè)置");  名稱設(shè)置  反白就是字是空白的 空白區(qū)添沖  顯示成圖三

51hei圖片20220306114454.png (85.64 KB, 下載次數(shù): 61)

51hei圖片20220306114454.png

51hei圖片20220306114441.png (20.06 KB, 下載次數(shù): 63)

51hei圖片20220306114441.png

51hei圖片_20220306172527.png (447.59 KB, 下載次數(shù): 56)

51hei圖片_20220306172527.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

11#
ID:824490 發(fā)表于 2022-3-10 00:44 | 只看該作者
wanli2018 發(fā)表于 2022-3-9 23:27
請問一下這個(gè)反白里 R1 和R0代表是什么意思這個(gè)有點(diǎn)看不懂  功能設(shè)定里的X 是代表0 還是多少?求大佬指教 ...

R1/R0,就是1到4行的行號。00,表示第一行,11表示第4行。
反白指令是雙穩(wěn)態(tài),第一次使用對應(yīng)行反白,再一次使用,又不反白了。
回復(fù)

使用道具 舉報(bào)

10#
ID:265485 發(fā)表于 2022-3-9 23:27 | 只看該作者
glinfei 發(fā)表于 2022-3-9 16:44
write_com(0x04)——write_com(0x07) 分別代表1——4行的反顯。你查擴(kuò)展命令就知道了。

請問一下這個(gè)反白里 R1 和R0代表是什么意思這個(gè)有點(diǎn)看不懂  功能設(shè)定里的X 是代表0 還是多少?求大佬指教

51hei截圖20220309232353.jpg (18.79 KB, 下載次數(shù): 49)

51hei截圖20220309232353.jpg
回復(fù)

使用道具 舉報(bào)

9#
ID:844772 發(fā)表于 2022-3-9 16:44 | 只看該作者
write_com(0x04)——write_com(0x07) 分別代表1——4行的反顯。你查擴(kuò)展命令就知道了。
回復(fù)

使用道具 舉報(bào)

8#
ID:824490 發(fā)表于 2022-3-9 16:06 | 只看該作者
wanli2018 發(fā)表于 2022-3-9 13:36
具體程序怎樣更改呢困擾很久了
#ifndef __LCD12864_H__
#define __LCD12864_H__

應(yīng)該 是要先設(shè)定為擴(kuò)展指令,然后再使用反白指令。至于是先顯示再反白,還是先反白再顯示要試一下。





回復(fù)

使用道具 舉報(bào)

7#
ID:265485 發(fā)表于 2022-3-9 13:37 | 只看該作者
具體這個(gè)程序怎樣更改呢?比喻這個(gè)程序最后顯示 lcm_w_word("您好!");  把您好 顯示取反


#ifndef __LCD12864_H__
#define __LCD12864_H__
#include "zk.h"
#include <delay.h>

#define uchar unsigned char
#define uint  unsigned int

/*-----------------------------定義12864液晶屏數(shù)據(jù)線---------------------------------*/
sbit LCM_RS  = P5^0;   //模式位,為0輸入指令,為1輸入數(shù)據(jù)
sbit LCM_RW  = P5^1;   //讀寫位,為0讀,為1寫
sbit LCM_EN  = P5^2;   //使能位,高脈沖   
sbit LCD12864_PSB_PORT = P5^4;
#define Lcd_Bus P4     //LCM12864數(shù)據(jù)總線,P0.0--P0.7對應(yīng)連接DB0--DB7
/*------------------------------------------------------------------------------------*/
/*12864液晶顯示屏并口驅(qū)動(dòng)程序--------------------------------------------------------*/
//檢查忙位
void chk_busy()
{
   LCM_RS=0; LCM_RW=1; LCM_EN=1;
   Lcd_Bus=0xff;
   while(Lcd_Bus&0x80);
   LCM_EN=0;
}
/*寫指令到LCD------------------------------------------------------------------------*/
void write_com(uchar cmdcode)
{
        chk_busy();
        LCM_RS=0; LCM_RW=0; LCM_EN=1;
        Lcd_Bus=cmdcode;
        DelayUs2x(5);
        LCM_EN=0;
        DelayUs2x(5);
}
/*寫數(shù)據(jù)到LCD------------------------------------------------------------------------*/
void write_data(uchar Dispdata)
{         
        chk_busy();
        LCM_RS=1; LCM_RW=0; LCM_EN=1;
        Lcd_Bus=Dispdata;
        DelayUs2x(5);
        LCM_EN=0;
        DelayUs2x(5);
}
/*向LCM發(fā)送一個(gè)字符串,長度64字符之內(nèi)-------------------------------------------------*/
void lcm_w_word(uchar *s)
{
        while(*s>0) { write_data(*s); s++; }  //應(yīng)用:lcm_w_word("您好!");
}
回復(fù)

使用道具 舉報(bào)

6#
ID:265485 發(fā)表于 2022-3-9 13:36 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-3-7 00:22
7920有個(gè)反白顯示的指令,你查一下手冊

具體程序怎樣更改呢困擾很久了
#ifndef __LCD12864_H__
#define __LCD12864_H__
#include "zk.h"
#include <delay.h>

#define uchar unsigned char
#define uint  unsigned int

/*-----------------------------定義12864液晶屏數(shù)據(jù)線---------------------------------*/
sbit LCM_RS  = P5^0;   //模式位,為0輸入指令,為1輸入數(shù)據(jù)
sbit LCM_RW  = P5^1;   //讀寫位,為0讀,為1寫
sbit LCM_EN  = P5^2;   //使能位,高脈沖   
sbit LCD12864_PSB_PORT = P5^4;
#define Lcd_Bus P4     //LCM12864數(shù)據(jù)總線,P0.0--P0.7對應(yīng)連接DB0--DB7
/*------------------------------------------------------------------------------------*/
/*12864液晶顯示屏并口驅(qū)動(dòng)程序--------------------------------------------------------*/
//檢查忙位
void chk_busy()
{
   LCM_RS=0; LCM_RW=1; LCM_EN=1;
   Lcd_Bus=0xff;
   while(Lcd_Bus&0x80);
   LCM_EN=0;
}
/*寫指令到LCD------------------------------------------------------------------------*/
void write_com(uchar cmdcode)
{
        chk_busy();
        LCM_RS=0; LCM_RW=0; LCM_EN=1;
        Lcd_Bus=cmdcode;
        DelayUs2x(5);
        LCM_EN=0;
        DelayUs2x(5);
}
/*寫數(shù)據(jù)到LCD------------------------------------------------------------------------*/
void write_data(uchar Dispdata)
{         
        chk_busy();
        LCM_RS=1; LCM_RW=0; LCM_EN=1;
        Lcd_Bus=Dispdata;
        DelayUs2x(5);
        LCM_EN=0;
        DelayUs2x(5);
}
/*向LCM發(fā)送一個(gè)字符串,長度64字符之內(nèi)-------------------------------------------------*/
void lcm_w_word(uchar *s)
{
        while(*s>0) { write_data(*s); s++; }  //應(yīng)用:lcm_w_word("您好!");
}
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2022-3-7 16:32 | 只看該作者
顯示取漢字字模的時(shí)候,將字模的0、1反向一下即可。
或者再建一個(gè)反向字模庫,此庫與原字庫0、1相反。
方法很多。
我在寫程序時(shí),會(huì)設(shè)立以下標(biāo)記:
1、閃標(biāo)記:B_FLASH,=0/1 = 正常顯示/閃動(dòng)顯示
2、反白標(biāo)記:B_INV,=0/1 = 正常顯示/反白顯示
這樣,在顯示時(shí)只要改變對應(yīng)位置的標(biāo)記,就可以決定顯示的反白與閃動(dòng)。(當(dāng)然,標(biāo)記不止兩個(gè))
此時(shí),輸出字模的方案是: (字模 XOR B_INV) AND (B_FLASH * B_300MS OR  /B_FLASH )
其中: B_300MS 在定時(shí)中斷服務(wù)程序中,每0.3秒反轉(zhuǎn)一次0/1。顯示切換也是,每0.3秒一次

大多數(shù)人采用的方式是:輸出字模 = 字模,樓主也是這樣的方式。
各有各的好處,供樓主參考。
回復(fù)

使用道具 舉報(bào)

地板
ID:824490 發(fā)表于 2022-3-7 00:22 | 只看該作者
7920有個(gè)反白顯示的指令,你查一下手冊
回復(fù)

使用道具 舉報(bào)

板凳
ID:265485 發(fā)表于 2022-3-6 17:24 | 只看該作者
aidianzi 發(fā)表于 2022-3-6 13:40
看看是否有專門指令 若沒有可以把要寫入LCD的數(shù)據(jù)部分0和1取反就行了

就是指令沒有看懂這個(gè)程序是別人的 我移植過來的  能詳細(xì)說說嗎 加Q 364470601
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:41656 發(fā)表于 2022-3-6 13:40 | 只看該作者
看看是否有專門指令 若沒有可以把要寫入LCD的數(shù)據(jù)部分0和1取反就行了
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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