日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

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

出處:liudewei 發(fā)布于:2011-09-19 10:56:01

  本刊上期介紹單片機(jī)捕獲紅外遙控器解碼方法電路原路和程序設(shè)計(jì)方法,并給出了實(shí)例。這一講將介紹單片機(jī)驅(qū)動LCD1602 液晶顯示模塊。通過該講,讀者可以掌握LCD1602 液晶的工作原理和如何通過單片機(jī)來驅(qū)動LCD1602 液晶。

  一、原理簡介

  液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),在嵌入式應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用,這講中向大家介紹的LCD1602 液晶顯示模塊(其內(nèi)部控制器為HD44780 芯片),它可以顯示兩行,每行16 個(gè)字符,因此可相當(dāng)于32 個(gè)LED 數(shù)碼管,而且比數(shù)碼管顯示的信息還多。采用單+5V 電源供電,外圍電路配置簡單,價(jià)格便宜,具有很高的性價(jià)比。

  LCD1602 外觀如圖1(a) 所示。1602 字符型LCD 模塊的管腳分布如圖1(b) 所示, 其管腳各功能如表1 所示。

圖1 (a) LCD1602外觀圖 (b) LCD1602管腳分布圖

  值得提出的是,各種液晶廠家均有提供幾乎都是同樣規(guī)格的1602 模塊或兼容模塊,盡管各廠家的對其各自的產(chǎn)品命名不盡相同;但其初采用的LCD 控制器采用的是HD44780,在各廠家生產(chǎn)的1602 模塊當(dāng)中,基本上也都采用了與之兼容的控制IC,所以從特性上基本上是一樣的;當(dāng)然,很多廠商提供了不同的字符顏色、背光色之類的顯示模塊。

  LCD1602 有11 個(gè)控制指令, 見表2。其中,DDRAM :顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼;CGROM :字符發(fā)生存儲器;CGRAM :用戶自定義的字符圖形RAM。限于篇幅原因在此不做詳細(xì)敘述,讀者可以上網(wǎng)查看HD44780 芯片資料和LCD1602 數(shù)據(jù)手冊。

  這里介紹幾個(gè)LCD1602 編程時(shí)經(jīng)常用到的幾個(gè)指令,見表3。

  二、電路詳解

  如圖2 所示,1602 液晶的控制管腳都接到了單片機(jī)管腳上,前文提到,在功能設(shè)置指令中可以將液晶設(shè)為8 位數(shù)據(jù)接口和4 位數(shù)據(jù)接口,圖中采用的是8位的數(shù)據(jù)接口,當(dāng)然也可以當(dāng)四位數(shù)據(jù)接口來用。液晶電源正端接5V,負(fù)端接地,背光正端接5V,負(fù)端接地。此外,液晶的偏壓管腳(VO)接到一個(gè)電位器的中間抽頭,電位器的兩端分別接5V 和地,這樣就可通過調(diào)節(jié)電位器來實(shí)現(xiàn)對1602 液晶對比度的調(diào)節(jié)。經(jīng)實(shí)驗(yàn)測試,筆者手里的1602 液晶的偏壓管腳的電壓調(diào)節(jié)到0.3~0.4V 時(shí)對比度效果,也可以將該管腳通過一個(gè)1k 的電阻下拉到地。讀者可以自己實(shí)踐測試。

圖2 1602液晶與單片機(jī)的連接圖

圖2 1602液晶與單片機(jī)的連接圖

  三、程序設(shè)計(jì)

  在對1602 液晶設(shè)計(jì)程序前,我們先看下其讀寫時(shí)序圖,從圖3 和圖4 可以看出,1602 液晶的讀寫操作時(shí)序可總結(jié)成表4 所示。

圖3 1602液晶讀操作的時(shí)序圖

圖3 1602液晶讀操作的時(shí)序圖

圖4 1602液晶寫操作的時(shí)序圖

圖4 1602液晶寫操作的時(shí)序圖

  對照時(shí)序,我們可以很容易的寫出驅(qū)動液晶的各個(gè)子函數(shù),如下所示。

  寫命令函數(shù):向寄存器寫入控制字

  參數(shù):command - 控制字

  void LCD_en_command(unsigned char command)

  {

  LCD_delay(); // 延時(shí)一段時(shí)間

  LCD1602_RW=LOW; // 寫命令時(shí),R/W 為低電平

  LCD1602_RS=LOW; // 寫入指令,RS 為低電平

  LCD1602_EN=HIGH; // 置高使能線

  LCDIO=command; // 接收命令字并送到數(shù)據(jù)總線上

  LCD1602_EN=LOW; // 在使能線的下降沿寫入數(shù)據(jù)

  }

  寫數(shù)據(jù)函數(shù):向寄存器寫入數(shù)據(jù)

  參數(shù):dat - 待要顯示數(shù)據(jù)

  void LCD_en_dat(unsigned char dat)

  {

  LCD_delay(); // 延時(shí)一段時(shí)間

  LCD1602_RW=LOW; // 寫指令時(shí),R/W 為低電平

  LCD1602_RS=LOW; // 寫入數(shù)據(jù),RS 為高電平

  LCD1602_EN=HIGH; // 置高使能線

  LCDIO=dat; // 接收數(shù)據(jù)并送到數(shù)據(jù)總線上

  LCD1602_EN=LOW; // 在使能線的下降沿寫入數(shù)據(jù)

  }

  要使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, 寫指令,不檢測忙信號

  delaylcd_nms(5);

  LCD_en_com_nobusy(DATA_MODE);

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

  delaylcd_nms(5);

  LCD_en_com_nobusy(DATA_MODE);

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

  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 液晶),通過冷啟動方式將程序所生成的。hex 文件到單片機(jī)運(yùn)行后,復(fù)位單片機(jī),然后可在學(xué)習(xí)板上看到液晶的顯示的字符(如圖5 所示)。

圖5 1602液晶顯示界面

圖5 1602液晶顯示界面

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

  五、總結(jié)

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

關(guān)鍵詞:跟我學(xué)51單片機(jī)(七)——LCD1602液晶顯示模塊51單片機(jī)液晶顯示

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

51單片機(jī)-密碼鎖音樂播放盒
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!