lcd12864單行反白顯示

2021-01-04 電子發燒友
  反白顯示

  1.指在論壇內對於劇情透露之類的內容使用白色字體書寫,由讀者自行決定是否觀看。2.反白顯示還出現在AVG(即解密類遊戲的攻略中)因為人眼總有餘光,容易看到本不想看的答案(可能會喪失遊戲性)所以反白顯示。3.在12864液晶顯示屏中,指像素點黑變白,白變黑,剛好相反,顯示相同圖形。

  lcd12864單行反白顯示

  //在顯示漢字的時候要注意不要在偶數的位置

  //在偶數的位置是亂碼

  //希望大家多交流

  #include 《reg52.h》

  #include 《intrins.h》

  #define uchar unsigned char

  #define uint unsigned int

  #define LCD_data P1 //數據口

  sbit LCD_RS = P2^0; //寄存器選擇輸入

  sbit LCD_RW = P2^1; //液晶讀/寫控制

  sbit LCD_EN = P2^2; //液晶使能控制

  #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

  uchar code DIS1[] = {「 123 」};

  uchar code DIS2[] = {「 電子 」};

  uchar code DIS3[] = {「 加油 」};

  uchar code DIS4[] = {「 奮鬥就能成功 」};

  void delay(int ms)

  {

  uchar i;

  while(ms--)

  {

  for(i = 0; i《 250; i++)

  delayNOP();

  }

  }

  bit lcd_busy() //判斷是否忙

  {

  bit result;

  LCD_RS = 0;

  LCD_RW = 1;

  LCD_EN = 1;

  delayNOP();

  result = (bit)(LCD_data&0x80);

  LCD_EN = 0;

  return(result);

  }

  void lcd_wcmd(uchar cmd) //寫命令

  {

  while(lcd_busy());

  LCD_RS = 0;

  LCD_RW = 0;

  LCD_data = cmd;

  LCD_EN = 1;

  delayNOP();

  LCD_EN = 0;

  }

  void lcd_wdat(uchar dat) //寫數據

  {

  while(lcd_busy());

  LCD_RS = 1;

  LCD_RW = 0;

  LCD_data = dat;

  LCD_EN = 1;

  delayNOP();

  LCD_EN = 0;

  }

  void lcd_wstr(uchar *p)

  {

  while(*p)

  lcd_wdat(*p++);

  }

  void lcd_init() //液晶初始化

  {

  delay(40);

  lcd_wcmd(0x30); //基本指令操作

  delay(5);

  lcd_wcmd(0x30); //基本指令操作

  delay(1);

  lcd_wcmd(0x0C); //顯示開,關光標

  delay(5);

  lcd_wcmd(0x01); //清除LCD的顯示內容

  delay(5);

  lcd_wcmd(0x06); //遊標自動右移,整體畫面不移動

  }

  void lcd_pos(uchar X,uchar Y) //X為行,Y為列

  {

  switch(X)

  {

  case 1: Y|=0x80; break;

  case 2: Y|=0x90; break;

  case 3: Y|=0x88; break;

  case 4: Y|=0x98; break;

  default : break;

  }

  lcd_wcmd(Y); //顯示地址

  }

  void clr_screen()

  {

  lcd_wcmd(0x01); //清屏

  delay(5);

  }

  void display() //為反白做準備,目地是在圖形顯示時防止有噪點

  {

  uchar i,j;

  lcd_wcmd(0x34); //寫數據時,關閉圖形顯示

  for(i=0;i《32;i++)

  {

  lcd_wcmd(0x80+i); //先寫入水平坐標值

  lcd_wcmd(0x80); //寫入垂直坐標值

  for(j=0;j《16;j++) //再寫入兩個8位元的數據

  lcd_wdat(0x00);

  delay(1);

  }

  for(i=0;i《32;i++)

  {

  lcd_wcmd(0x80+i);

  lcd_wcmd(0x88);

  for(j=0;j《16;j++)

  lcd_wdat(0x00);

  delay(1);

  }

  lcd_wcmd(0x36); //寫完數據,開圖形顯示

  }

  void photodisplay(uchar x,uchar y,uchar width) //反白,X值為0-7,Y值為0-3,width為行反白格數

  {

  uchar i,j,flag=0x00;

  display();

  if(y》1)

  {

  flag=0x08;

  y

  =y-2;

  }

  lcd_wcmd(0x34); //寫數據時,關閉圖形顯示,且打開擴展指令集

  for(i=0;i《16;i++)

  {

  lcd_wcmd(0x80+(y《《4)+i);

  lcd_wcmd(0x80+flag+x);

  for(j=0;j《width;j++)

  {

  lcd_wdat(0xff);

  lcd_wdat(0xff);

  }

  delay(1);

  }

  lcd_wcmd(0x36); //寫完數據,開圖形顯示

  // lcd_wcmd(0x30); //從擴展指令到基本指令

  }

  void main()

  {

  lcd_init(); //初始化LCD

  clr_screen(); //清屏

  while(1)

  {

  clr_screen();

  lcd_pos(1,0); //設置顯示位置為第一行

  lcd_wstr(DIS1);

  delay(30);

  lcd_pos(2,0); //設置顯示位置為第二行

  lcd_wstr(DIS2);

  lcd_pos(3,0); //設置顯示位置為第三行

  lcd_wstr(DIS3);

  lcd_pos(4,0); //設置顯示位置為第四行

  lcd_wstr(DIS4);

  delay(1000);

  delay(1000);

  photodisplay(3,2,3);

  delay(1000);

  delay(1000);

  lcd_wcmd(0x30); //基本指令集

  delay(1000);

  delay(1000);

  }

  }

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 看了他,LCD12864一樣輕輕鬆鬆
    12864LCD同樣見名知意,顯示內容為128*64的,屬於點陣圖形液晶顯示模塊,不但能顯示字符,還能顯示漢字和圖形,分帶漢字庫和不帶那字庫兩種
  • 12864液晶深入學習筆記_2——基於msp430g2553
    wr_lcd(comm,0x04);//同時反白1、3行//wr_lcd(comm,0x05>//再次反白1、3行,相當於關閉1、3行反白//wr_lcd(comm,0x05);>//再次反白2、4行,相當於關閉2、4行反白//wr_lcd(comm,0x36);//delay_ms(1000);Draw_PM(qq1);//
  • 基於51單片機運用LCD12864液晶顯示
    void write_dat(uchar dat){lcdrs=1;lcdrw=0;delay_50us(1);P0=dat;lcden=1;delay_50us(10);lcden=0;delay_50us(2);}void init12864lcd
  • 51單片機+帶字庫液晶12864+DS1302數字時鐘C源程序
    >lcd_wcmd(0x0C); //顯示開,關光標 delay(100); lcd_wcmd(0x01); //清除LCD的顯示內容 delay(100);lcd_wcmd(0x06);delay(100);}void main(){uchar i;InitTIMER0(); Set_RTC
  • 青海省lcd顯示模塊選哪家_顯之研流行時尚
    青海省lcd顯示模塊選哪家,顯之研流行時尚,深圳辦事處:0755-83523595/83523195 上海辦事處:021-51035020。青海省lcd顯示模塊選哪家, 不要隨意更換包裝或丟掉原包裝。操作用的電動改錐都不要漏電。較需要注意的就是焊接使用的烙鐵一定要有良好的接地性,沒有漏電。
  • LabVIEW+Arduino之LCD顯示
    今天的內容是LCD顯示,稍微有點複雜,所以拖更研究的時間有一丟丟久。接下來,一起來看實現的效果吧!請看視頻實物接線圖12864系列LCD的接線如下(背光引腳接電源正負極,PSB引腳接地,表示選擇串行通信):LabVIEW程序框圖LabVIEW程序依舊是使用串口通信與Arduino「對話」,但是這次沒有用LINX工具包,而是用自己編寫的簡單串口通信程序:第1部分 For循環初始化得到一個不斷遞增1字符的字符串數組;
  • 單片機的OLED顯示系統設計與實現
    為了提高圖形信息的顯示速度,並得到更多的顯示效果,文章基於FG_V1.2單片機開發板,依據OLED12864顯示屏的操作時序要求,用51單片機實現了基於0.96英寸OLED屏的顯示系統設計。
  • 單片機驅動DS1302時間DS18B20溫度12864液晶顯示完整程序設計
    程序說明:這是一個用51單片機驅動DS1302時間模塊+DS18B20溫度傳感器模塊+12864液晶顯示完整程序設計實例,有四個鍵盤KEY0 到KEY3,key0是修改時間的 首先是秒到分到時到年到月到日到星期 key1是加1 key2是減一 在修改時間狀態再按一下key3的時候就出去並修改時間日期,在平時狀態按著key3再按著key2 就會打開lcd 的燈 單單是只按key3那就是把燈關了
  • 【工藝】皮革反白怎麼處理?皮革反白原因分析及處理方案
    皮革反白怎麼處理?1.收到深棕色的PVC皮革樣品狀況及原因分析:①狀況:皮革上出現白色物質,經顯微鑑定不屬於黴菌,因其不具有黴菌的菌落特點、黴菌的結構特點,而是一種皮革「反白」現象。案例:冬季時,一批銷往東北地區的PVC人造革,表面滲油,有白色的一層,或帶點其它顏色,經分析:由於低溫,增塑劑析出導致此「反白」現象。資料表明:增塑劑會滲出並能擴散的現象,由製品內部向外表移出或滲出,俗稱「冒汗」。
  • lcd1602隻亮不顯示_lcd1602簡單顯示程序
    lcd1602隻亮不顯示_lcd1602簡單顯示程序 網絡整理 發表於 2020-04-23 09:13:10   lcd1602隻亮不顯示
  • 12232F用串口的顯示程序
    這是12232F用串口的顯示程序,該程序可以通過調用函數可在任意位置顯示任意字符,供大家參考。dat,datt[i]);}//在指定位置顯示漢字串,其中x為行坐標,y為列坐標,k為所要顯示的漢字個數void Write_Chinese (uchar x,uchar y,uchar k,uchar *p){uchar addr,i;if(x==0) addr=0x80+y;else addr=0x90+y;Write
  • 12864點陣液晶的基本原理與使用方法
    圖2 「你」字模圖  12864點陣型LCD簡介  12864是一種圖形點陣液晶顯示器,它主要由行驅動器/列驅動器及128的引腳說明  在使用12864LCD前先必須了解以下功能器件才能進行編程。
  • LCD1602液晶顯示屏應用
    lcd-12864應用一、實驗目的液晶顯示屏顯示字樣。二、實驗內容12864LCD:帶中文字庫的128X64是一種具有4位/8位並行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示解析度為128*64,內置8192個16*16點漢字,和128個16*8點ASCII
  • 【arduino】童芯派彩屏顯示圖片,圖片取模後在TFT液晶顯示
    原理:無論是12864的液晶還是1602的液晶,還是彩色的TFT的液晶,原理上是差不多的,只不過一般的黑白液晶是用0和1來顯示一個點,比如0代表不現實,1代表顯示,這樣一堆的點就能夠組合出圖案了。彩屏的原理也一樣,只不過因為要表示彩色,所以不能只用「黑」和「白」來表示,需要用更多的數字區分不同的顏色總結:將每個點的顏色信息發送到屏幕模塊上,就能顯示圖像了針對童芯派,童芯派上是128×128個點組成的,即128行,128列,一共128×128個點,如果是用01表示黑白,那麼這些點理論上需要128×128×1b的存儲空間(b是小寫的,即bit,位,8b=1B),如果我們要顯示
  • 沈反白院長從商科步岐黃
    沈反白(1895年~1971年),原名沈宏緒,字仲遠,祖籍浙江紹興,因父親沈繼德在運城鹽務為官,故出生於運城。他九歲入高小,十五歲參加徵蒙學生軍至雁門關,不久返回太原考入山西商業專門學校。1934年王堯青電召沈反白來陝,初在市政工程處做秘書。1936年「國醫條例」頒布,反白正式執行中醫師業務,被選為西京國醫公會理事長。抗戰爆發,他與朱子橋將軍成立中醫救護醫院,為前線轉送下來的傷病員免費治療並深切關懷慰問。
  • lcd顯示屏幕一定要購買品牌的嗎?
    隨著顯示屏應用不斷的普及,人們無論在生活或工作中也離不開它,很多人在購買智能終端產品時都想問問lcd顯示屏幕品牌,因此很多終端製造商也很關注lcd顯示屏幕品牌,以便將其做成賣點和噱頭佔領更多的市場份額,吸引消費者,因此今天海飛智顯的小編想來和大家聊聊lcd顯示屏幕品牌重要嗎?
  • 地面反白原因及解決辦法
    混凝土密封固化劑地坪在施工時不注意會使地面做好後有反白現象,使地面不好看且影響驗收效果。
  • 全方位解析LCD1602特性及單片機顯示應用
    指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。  指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。  指令7:字符發生器RAM地址設置。  指令8:DDRAM地址設置。
  • LCD1602液晶顯示DS1302實時時鐘Proteus仿真
    (ucharcom){LCDRS=0; //RS為0時,寫指令,RS為1時,寫數據P0=com;delay(5);LCDEN=1;delay(5);LCDEN=0;}//LCD寫數據voidlcd_write_data(uchardat){
  • ASCII 字符的點陣顯示
    所以要顯示某個字符時,根據它的 ASCII 碼在 fontdata_8x16 數組中找到它的點陣,然後取出這 16 個字節去描畫 16 行像素。比如字符 A 的 ASCII 值是 0x41,那麼從 fontdata_8x16[0x41*16]開始取其點陣數據。