0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

51單片機的驅(qū)動LCD屏

汽車電子技術 ? 來源:嵌入式悅翔園 ? 作者: JamesBin ? 2023-02-17 14:47 ? 次閱讀

液晶顯示器(LiquidCrystal Display,簡稱LCD)可以顯示數(shù)字、字母、漢字、以及圖形圖像等豐富的內(nèi)容,應用非常廣泛。液晶顯示器由液晶顯示部分和控制器兩部分組成,控制器通過控制液晶顯示區(qū)的電壓,實現(xiàn)字符的顯示。LCD可分為段型、字符型和點陣型三種。其中1602字符型液晶是應用最廣泛的液晶顯示器之一。

一、LCD簡介

1602液晶的控制器是采用日立公司的HD44780集成電路,只需將待顯字符的ASCII碼放入其數(shù)據(jù)存儲器,字符就會自動在液晶顯示器上顯示。該顯示器每屏最多可顯示2行,每行16個字符,共32個字符。

1602型LCD分有背光(16個引腳)和無背光(14個引腳)兩種。14腳1602型LCD引腳共分成三類:

1、電源引腳: 引腳1和引腳2 分別是電源正極(VDD)和負極(VSS)。

2、數(shù)據(jù)引腳: 引腳7到引腳14共8個引腳是雙向數(shù)據(jù)總線的第0位到第8位。由于P0口無上拉電阻,因此如果需要接到P0口,則必須接上拉電阻。而接到其他并口,可不接上拉電阻。

圖片

二、控制介紹

控制引腳:

引腳3(VL)是反視度調(diào)整引腳,通常接地。

引腳4(RS)是寄存器選擇引腳,當RS=1時選擇數(shù)據(jù)寄存器,當RS=0時,選擇指令寄存器。

引腳5(R/W)是讀寫選擇引腳,當R/W=1時讀,當R/W=0時寫。

引腳6(E)是模塊使能信號,當E上為高電平時,可以讀出數(shù)據(jù)或指令;當E上電平正跳變時,開始寫入數(shù)據(jù)或指令;當E上電平負跳變時,開始執(zhí)行指令。

圖片

三、LCD初始化

關于這一點,LCD1602說明手冊上已經(jīng)明確告訴我們了,想都不要去想,管你這些什么意思,照做即可。

延時15ms


寫指令38H


延時5ms


寫指令38H


寫指令08H


寫指令01H


寫指令06H


寫指令0CH

以上為初始化過程,延時部分好解決,前面講過了。這里就看如何“寫指令”了。問題來了,液晶模塊怎么知道單片機給我的是命令還是數(shù)據(jù)。(叁議電子www.ppptalk.com)LCD1602看到RS為高時,就明白了,哦,你要給我傳送數(shù)據(jù)了;看到RS為低時,就知道你要給我指令了。這個只是選擇“命令”還是“數(shù)據(jù)”,還有一個問題,我們的目的是“寫指令”,那么液晶模塊怎么知道是“寫”還是“讀”呢?

再來看RW信號,當RW為低的時候,液晶模塊就知道了,單片機要給我“寫”了;當RW為高的時候,液晶模塊也知道了,單片機要“讀”了。很明顯,我們這里要把RW設置為低?!皩?讀”和“指令/數(shù)據(jù)”都知道如何告訴液晶模塊了,那么這個指令從怎么傳過去呢?

通過D0-D7這8根線(也就是P2端口)來傳輸,比如我要傳送的指令為x033,那么就把這個數(shù)據(jù)0x33放到P2端口,當LCD1602看到“寫”和“指令”的時候,就知道把P2端口上的0x33這個指令拿過來了。這樣就達到了“寫”“指令”“0x33”的目的。

但是不是這樣就能讓LCD1602正常執(zhí)行了。不是的。回到我們前面講的那個例子,這里加個條件,屋內(nèi)人聽到敲門三下后,判斷暗號正確了,但是沒有直接開門,而是通知了他的上級,得到上級的授權后,才開門。也就是兩個條件,暗號正確和上級授權。

LCD1602也一樣,收到指令沒有立即執(zhí)行,還要等另外一個信號,就是EN使能信號。此時EN給個一定寬度的脈沖,LCD1602才開始執(zhí)行。

四、驅(qū)動代碼

void Lcd_Write_Cmd(unsigned char Cmd) {  


    delayMs(5);//注意這里需要延時5ms比較保險 代替判斷忙信號  


    RW = 0; 


    P2 = Cmd;        //準備好指令  


    RS=0;         //告訴LCD1602,P0中放的是指令不是數(shù)據(jù)  


    EN=1;  


    delayUs(5); //根據(jù)時序圖,脈沖要有一定寬度  


    EN=0;           //使指令有效,開始執(zhí)行


}

同樣的道理,以上代碼中,只需改一下RS信號為1,就是寫數(shù)據(jù)的代碼了

voidLcd_Write_Data(unsignedcharmData) {


    RW = 0;


    delayMs(5);//注意這里需要延時5ms比較保險代替判斷忙信號


    P2=mData;//準備好指令


    RS=1;//告訴LCD1602,P0中放的是數(shù)據(jù)不是指令


    EN=1;


    delayUs(5);//根據(jù)時序圖,脈沖要有一定寬度


    EN=0;//使指令有效,開始執(zhí)行


}

五、代碼講解

指令1:清顯示,指令碼01H,光標復位到地址00H位置。

指令2:光標復位,光標返回到地址00H。

指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。

指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。

指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。

指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。

指令7:字符發(fā)生器RAM地址設置。

指令8:DDRAM地址設置。

指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。

指令10:寫數(shù)據(jù)。

指令11:讀數(shù)據(jù)。

這樣你需要給LCD1602什么指令,只需要傳遞給void write_com(unsigned char Cmd)函數(shù)中的Cmd參數(shù)就行了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4405

    瀏覽量

    166930
  • 字符型
    +關注

    關注

    0

    文章

    9

    瀏覽量

    6723
  • 點陣型
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5160
收藏 人收藏

    評論

    相關推薦

    C51單片機相關的LCD驅(qū)動程序源代碼

    C51單片機相關的LCD驅(qū)動程序源代碼,可供參考調(diào)試
    發(fā)表于 02-22 18:14 ?19次下載

    使用51單片機實現(xiàn)LCD滾動顯示的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)LCD滾動顯示的程序免費下載。
    發(fā)表于 07-15 17:39 ?12次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現(xiàn)<b class='flag-5'>LCD</b><b class='flag-5'>屏</b>滾動顯示的程序免費下載

    使用51單片機驅(qū)動HT1621B段碼LCD的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機驅(qū)動HT1621B段碼LCD的程序免費下載。
    發(fā)表于 07-11 17:40 ?122次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>驅(qū)動</b>HT1621B段碼<b class='flag-5'>LCD</b><b class='flag-5'>屏</b>的程序免費下載

    使用51單片機驅(qū)動動態(tài)筆段式LCD的資料和Proteus仿真詳細說明

    在分析多背極動態(tài)筆段式 LCD驅(qū)動原理及其控制邏輯的基礎上 ,使用 AT89C51單片機對 V IM - 332 - DP動態(tài)筆段式 LCD
    發(fā)表于 10-19 08:00 ?4次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>驅(qū)動</b>動態(tài)筆段式<b class='flag-5'>LCD</b>的資料和Proteus仿真詳細說明

    使用51單片機實現(xiàn)LCD12864顯示顯示的仿真文件免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)LCD12864顯示顯示的仿真文件免費下載。
    發(fā)表于 03-23 11:05 ?34次下載

    使用51單片機實現(xiàn)LCD12864顯示顯示的仿真文件免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)LCD12864顯示顯示的仿真文件免費下載。
    發(fā)表于 03-23 11:05 ?90次下載

    使用51單片機實現(xiàn)LCD1602顯示顯示的仿真文件免費下載

    本文檔的主要內(nèi)容詳細介紹的使用51單片機實現(xiàn)LCD1602顯示顯示的仿真文件免費下載。
    發(fā)表于 03-23 11:05 ?70次下載

    基于51單片機LCD1602顯示proteus實驗

    基于51單片機LCD1602顯示proteus實驗
    發(fā)表于 04-30 10:14 ?38次下載

    51單片機驅(qū)動超聲波測距模塊

    51單片機驅(qū)動超聲波測距模塊(單片機最小系統(tǒng))-使用51單片機
    發(fā)表于 07-22 10:01 ?61次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>驅(qū)動</b>超聲波測距模塊

    51單片機驅(qū)動LCD1602顯示原理及例程

    51單片機驅(qū)動LCD1602顯示原理及例程1.LCD1602A介紹2.LCD1602A中文手冊
    發(fā)表于 11-10 19:51 ?149次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>LCD</b>1602顯示原理及例程

    ARM+51單片機開發(fā)板套件試用體驗

    歡迎訪問我的個人博客:51單片機開發(fā)環(huán)境搭建+流水燈51單片機數(shù)碼管顯示51單片機DS18B20
    發(fā)表于 11-13 15:51 ?9次下載
    ARM+<b class='flag-5'>51</b><b class='flag-5'>單片機</b>開發(fā)板套件試用體驗

    51單片機怎么顯示當前時間_(記錄)51單片機——LCD1602液晶顯示模塊

    51單片機怎么顯示當前時間_(記錄)51單片機——LCD1602液晶顯示模塊
    發(fā)表于 11-16 15:06 ?29次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>怎么顯示當前時間_(記錄)<b class='flag-5'>51</b><b class='flag-5'>單片機</b>——<b class='flag-5'>LCD</b>1602液晶顯示模塊

    MSP430單片機HT1261驅(qū)動LCD段碼

    MSP430單片機HT1261驅(qū)動LCD段碼
    發(fā)表于 11-19 15:36 ?24次下載
    MSP430<b class='flag-5'>單片機</b>HT1261<b class='flag-5'>驅(qū)動</b><b class='flag-5'>LCD</b>段碼<b class='flag-5'>屏</b>

    51單片機驅(qū)動——LCD1602

    51單片機驅(qū)動——LCD16021.描述51單片機控制LCD
    發(fā)表于 11-21 09:06 ?22次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>驅(qū)動</b>——<b class='flag-5'>LCD</b>1602

    通過 I2C 驅(qū)動 LCD1602 液晶51單片機

    通過 I2C 驅(qū)動 LCD1602 液晶51單片機)硬件實物原理圖3.程序#include <reg
    發(fā)表于 11-23 17:06 ?42次下載
    通過 I2C <b class='flag-5'>驅(qū)動</b> <b class='flag-5'>LCD</b>1602 液晶<b class='flag-5'>屏</b>(<b class='flag-5'>51</b><b class='flag-5'>單片機</b>)