新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 跟我學(xué)51單片機(jī)(七)——LCD1602液晶顯示模塊

跟我學(xué)51單片機(jī)(七)——LCD1602液晶顯示模塊

作者: 時(shí)間:2013-01-26 來源:網(wǎng)絡(luò) 收藏
要使1602 液晶能正常工作和操作方便,除了寫數(shù)據(jù)和命令函數(shù)外,還需要進(jìn)行初始化等操作,先將本講中所用到的操作1602 液晶的主要函數(shù)設(shè)計(jì)如下。

  液晶初始化函數(shù):設(shè)置液晶的工作方式

  void LCD_init(void)

  {

  delaylcd_nms(5);

  LCD_en_com_nobusy(DATA_MODE);

  // 延時(shí)5ms, 寫指令,不檢測忙信號(hào)

  delaylcd_nms(5);

  LCD_en_com_nobusy(DATA_MODE);

  // 延時(shí)5ms, 寫指令,不檢測忙信號(hào)

  delaylcd_nms(5);

  LCD_en_com_nobusy(DATA_MODE);

  // 延時(shí)5ms, 寫指令,不檢測忙信號(hào)

  LCD_en_com(DATA_MODE);

  // 設(shè)置為8位數(shù)據(jù)傳送模式

  delaylcd_nms(5);

  LCD_en_com(OPEN_SCREEN); // 開顯示

  LCD_en_com(DISPLAY_ADDRESS); // 設(shè)置顯示地址

  CLEARSCREEN; // 清屏

  }

  設(shè)置顯示坐標(biāo)函數(shù):設(shè)置字符的顯示位置,行、列坐標(biāo)

  參數(shù): x -列坐標(biāo),y -行坐標(biāo)

  void LCD_set_xy( unsigned char x, unsigned char y )

  {

  unsigned char address;

  if (y == LINE1) // 判斷行

  address = LINE1_HEAD + x; // 設(shè)置列坐標(biāo)

  else

  address = LINE2_HEAD + x;

  LCD_en_command(address); // 將地址寫入寄存器

  }

  寫字符函數(shù):向液晶寫一個(gè)字符

  參數(shù):x -列坐標(biāo),y -行坐標(biāo),dat -將要顯示的字符數(shù)據(jù)

  void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)

  {

  LCD_set_xy( x, y ); // 首先設(shè)置顯示坐標(biāo)

  LCD_en_dat(dat); // 寫數(shù)據(jù)

  }

  寫字符串函數(shù):向液晶寫入字符串

  參數(shù):x -列坐標(biāo),y -行坐標(biāo),*s -將要顯示的字符串?dāng)?shù)據(jù)

  void LCD_write_string(unsigned char x,unsigned char y,unsigned

  char *s)

  {

  LCD_set_xy( x, y ); // 首先設(shè)置顯示坐標(biāo)

  while (*s) // 判斷是否結(jié)束

  {

  LCDIO=*s;// 循環(huán)調(diào)用寫數(shù)據(jù)函數(shù)

  LCD_en_dat(*s);

  s ++;

  }

  }

  四、調(diào)試要點(diǎn)與實(shí)驗(yàn)現(xiàn)象

  接好硬件(特別是連接好1602 液晶),通過冷啟動(dòng)方式將程序所生成的。hex 文件下載到單片機(jī)運(yùn)行后,復(fù)位單片機(jī),然后可在學(xué)習(xí)板上看到液晶的顯示的字符(如圖5 所示)。

跟我學(xué)51單片機(jī)(七)——LCD1602液晶顯示模塊

圖5 1602界面

  調(diào)試時(shí)應(yīng)注意的是,因?yàn)橐壕У膬?nèi)部顯示操作需要一定的時(shí)間,因此如果單片機(jī)在對(duì)1602 液晶寫操作時(shí)不進(jìn)行讀忙操作,就應(yīng)該延時(shí)足夠的時(shí)間(可用延時(shí)函數(shù))以讓液晶內(nèi)部能夠接收命令或數(shù)據(jù),否則會(huì)讓液晶無法工作或者工作不正常。此外對(duì)于V0 管腳,作為器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,因此可通過一個(gè)電位器實(shí)現(xiàn)對(duì)其的電壓調(diào)整,前文提到,將其調(diào)節(jié)到0.3~0.4V 時(shí)對(duì)比度效果最好。

  五、總結(jié)

  本講介紹了字符型液晶1602 的工作原理并給出了實(shí)例,通過該講,讀者可以了解和掌握51 單片機(jī)驅(qū)動(dòng)1602 液晶的方法。下講將講述單片機(jī)驅(qū)動(dòng)帶字庫的128X64 液晶,敬請(qǐng)期待。

紅外遙控器相關(guān)文章:紅外遙控器原理

上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉