久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2507|回復: 10
收起左側

請教大佬關于LCD12864反白顯示程序問題

[復制鏈接]
ID:265485 發表于 2022-3-6 11:45 | 顯示全部樓層 |閱讀模式
本帖最后由 wanli2018 于 2022-3-6 17:25 編輯

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

51hei圖片20220306114454.png
51hei圖片20220306114441.png
51hei圖片_20220306172527.png
回復

使用道具 舉報

ID:41656 發表于 2022-3-6 13:40 | 顯示全部樓層
看看是否有專門指令 若沒有可以把要寫入LCD的數據部分0和1取反就行了
回復

使用道具 舉報

ID:265485 發表于 2022-3-6 17:24 | 顯示全部樓層
aidianzi 發表于 2022-3-6 13:40
看看是否有專門指令 若沒有可以把要寫入LCD的數據部分0和1取反就行了

就是指令沒有看懂這個程序是別人的 我移植過來的  能詳細說說嗎 加Q 364470601
回復

使用道具 舉報

ID:824490 發表于 2022-3-7 00:22 | 顯示全部樓層
7920有個反白顯示的指令,你查一下手冊
回復

使用道具 舉報

ID:123289 發表于 2022-3-7 16:32 | 顯示全部樓層
顯示取漢字字模的時候,將字模的0、1反向一下即可。
或者再建一個反向字模庫,此庫與原字庫0、1相反。
方法很多。
我在寫程序時,會設立以下標記:
1、閃標記:B_FLASH,=0/1 = 正常顯示/閃動顯示
2、反白標記:B_INV,=0/1 = 正常顯示/反白顯示
這樣,在顯示時只要改變對應位置的標記,就可以決定顯示的反白與閃動。(當然,標記不止兩個)
此時,輸出字模的方案是: (字模 XOR B_INV) AND (B_FLASH * B_300MS OR  /B_FLASH )
其中: B_300MS 在定時中斷服務程序中,每0.3秒反轉一次0/1。顯示切換也是,每0.3秒一次

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

使用道具 舉報

ID:265485 發表于 2022-3-9 13:36 | 顯示全部樓層
名字不是重點 發表于 2022-3-7 00:22
7920有個反白顯示的指令,你查一下手冊

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

#define uchar unsigned char
#define uint  unsigned int

/*-----------------------------定義12864液晶屏數據線---------------------------------*/
sbit LCM_RS  = P5^0;   //模式位,為0輸入指令,為1輸入數據
sbit LCM_RW  = P5^1;   //讀寫位,為0讀,為1寫
sbit LCM_EN  = P5^2;   //使能位,高脈沖   
sbit LCD12864_PSB_PORT = P5^4;
#define Lcd_Bus P4     //LCM12864數據總線,P0.0--P0.7對應連接DB0--DB7
/*------------------------------------------------------------------------------------*/
/*12864液晶顯示屏并口驅動程序--------------------------------------------------------*/
//檢查忙位
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);
}
/*寫數據到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發送一個字符串,長度64字符之內-------------------------------------------------*/
void lcm_w_word(uchar *s)
{
        while(*s>0) { write_data(*s); s++; }  //應用:lcm_w_word("您好!");
}
回復

使用道具 舉報

ID:265485 發表于 2022-3-9 13:37 | 顯示全部樓層
具體這個程序怎樣更改呢?比喻這個程序最后顯示 lcm_w_word("您好!");  把您好 顯示取反


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

#define uchar unsigned char
#define uint  unsigned int

/*-----------------------------定義12864液晶屏數據線---------------------------------*/
sbit LCM_RS  = P5^0;   //模式位,為0輸入指令,為1輸入數據
sbit LCM_RW  = P5^1;   //讀寫位,為0讀,為1寫
sbit LCM_EN  = P5^2;   //使能位,高脈沖   
sbit LCD12864_PSB_PORT = P5^4;
#define Lcd_Bus P4     //LCM12864數據總線,P0.0--P0.7對應連接DB0--DB7
/*------------------------------------------------------------------------------------*/
/*12864液晶顯示屏并口驅動程序--------------------------------------------------------*/
//檢查忙位
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);
}
/*寫數據到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發送一個字符串,長度64字符之內-------------------------------------------------*/
void lcm_w_word(uchar *s)
{
        while(*s>0) { write_data(*s); s++; }  //應用:lcm_w_word("您好!");
}
回復

使用道具 舉報

ID:824490 發表于 2022-3-9 16:06 | 顯示全部樓層
wanli2018 發表于 2022-3-9 13:36
具體程序怎樣更改呢困擾很久了
#ifndef __LCD12864_H__
#define __LCD12864_H__

應該 是要先設定為擴展指令,然后再使用反白指令。至于是先顯示再反白,還是先反白再顯示要試一下。
1646813109(1).png

1646813133(1).png


回復

使用道具 舉報

ID:844772 發表于 2022-3-9 16:44 | 顯示全部樓層
write_com(0x04)——write_com(0x07) 分別代表1——4行的反顯。你查擴展命令就知道了。
回復

使用道具 舉報

ID:265485 發表于 2022-3-9 23:27 | 顯示全部樓層
glinfei 發表于 2022-3-9 16:44
write_com(0x04)——write_com(0x07) 分別代表1——4行的反顯。你查擴展命令就知道了。

請問一下這個反白里 R1 和R0代表是什么意思這個有點看不懂  功能設定里的X 是代表0 還是多少?求大佬指教
51hei截圖20220309232353.jpg
回復

使用道具 舉報

ID:824490 發表于 2022-3-10 00:44 | 顯示全部樓層
wanli2018 發表于 2022-3-9 23:27
請問一下這個反白里 R1 和R0代表是什么意思這個有點看不懂  功能設定里的X 是代表0 還是多少?求大佬指教 ...

R1/R0,就是1到4行的行號。00,表示第一行,11表示第4行。
反白指令是雙穩態,第一次使用對應行反白,再一次使用,又不反白了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美综合精品久久成人 | 亚洲精品一二三 | 视频在线h | 久草网在线视频 | 国产小视频在线观看 | 午夜精品一区二区三区三上悠亚 | 国产精品成人国产乱 | 国产真实精品久久二三区 | 色精品视频 | 国产精品99久久久久久动医院 | 亚洲欧美日韩成人在线 | 99精品久久 | 亚洲欧美成人影院 | 成人欧美一区二区三区在线播放 | 97超在线视频 | 亚洲国产成人精品女人久久久 | 免费看啪啪网站 | 亚洲精品国产一区 | 国产精品海角社区在线观看 | 紧缚调教一区二区三区视频 | 在线播放中文 | 国产做a爱片久久毛片 | 国产午夜影院 | 天天躁日日躁狠狠的躁天龙影院 | 亚洲日本乱码在线观看 | 成人在线不卡 | 日本中文字幕在线视频 | 一级在线 | 亚洲欧美综合精品久久成人 | 网站国产 | 超碰人人插 | 国产成人精品网站 | 欧美性生活一区二区三区 | 在线伊人 | 国产精品国产三级国产aⅴ入口 | 亚洲国产精品日韩av不卡在线 | 欧美一级在线观看 | 蜜桃av鲁一鲁一鲁一鲁 | www.久久久| 国产精品久久久久久久久免费丝袜 | 成人国产精品免费观看视频 |