日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

详解LCD1602液晶显示屏的使用

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详解LCD1602液晶显示屏的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.簡介

作為各類單片機實物設計的常用顯示屏,LCD1602是一種專門用于顯示字母、數字、符號等點陣式LCD,其1602是指LCD顯示的內容為16X2,即可以顯示兩行,每行16個字符(1個漢字占用2個字符)。

2.硬件參數

(1) LCD1602主要技術參數
a.顯示容量:16×2個字符
b.芯片工作電壓:4.5—5.5V
c.工作電流:2.0mA(5.0V)
d.模塊最佳工作電壓:5.0V
e.字符尺寸:2.95×4.35(W×H)mm
(2) 引腳定義

LCD1602引腳主要有邏輯電源引腳VDD,VSS;背光帶電源引腳BLA,BLK;數據引腳D0-D7、RS、R/W、EN;偏壓信號引腳VL;其中:

  • VL引腳:為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度;
  • RS引腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器
  • R/W引腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。
  • EN引腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。
  • (3)電路圖

    其中可調電阻P用于調整顯示器的對比度。電阻R作為限流電阻,防止過流燒壞顯示屏背光燈。

    3.控制程序

    LCD1602顯示屏控制程序簡化下來,也相對簡單,只需要實現寫數據寫指令初始化三個控制函數即可實現對LCD1602的控制。(寫操作一般不用,這里就省略不說)
    (1)寫操作時序

    要實現下面的寫數據和寫指令函數,都是以寫操作時序來進行編程,實現有效的控制;其中,可以通過寫時序和RS引腳的定義,寫數據和寫指令的區別在于RS引腳的電平;RS為高電平時,寫數據;RS為低電平時,寫指令。
    (2)寫數據函數

    //寫數據 void write_data(uchar date) {LCDRS=1;P0=date;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0; }

    (3)寫指令函數

    //寫命令 void write_com(uchar com) {LCDRS=0;P0=com;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0; }

    (4)初始化函數
    LCD1602初始化需要做以下設置:
    a.設置寫操作:R/W設為低電平;
    b.屏幕設置模式:寫指令38H;
    c.打開顯示,關閉光標:寫指令0CH;
    d.設置顯示光標移動位置:寫指令06H;
    e.設置字符顯示位置:寫指令(字符顯示的起始位置);

    void Init1602() {uchar i=0; LCDRW = 0;write_com(0x38);//屏幕初始化write_com(0x0c);//打開顯示 無光標 無光標閃爍write_com(0x06);//當讀或寫一個字符是指針后一一位write_com(0x01);//清屏write_com(0x80);//設置位置 }

    注:由于對LCD1602進行控制時不需要實現讀操作,所以R/W在初始化后恒為低電平(或者此引腳直接對地短路)。

    4.顯示字符

    要在LCD1602上顯示特定的字符,實際上就是對LCD1602的DDRAM上寫入對應的數據,顯示屏便顯示你想要的字符。
    (1)DDRAM地址映射圖
    從RAM可以看出來,是讀的意思,地址與顯示位置如下,每行40個地址,1602只用到前16個,共兩行,對應關系如圖:

    根據寫指令格式,由于地址為7位,在寫入地址是,第8位恒為1,如圖:

    當我們想在指定位置寫入內容時,要先指定地址,如在第一行第一位寫入,地址位是00H,再加上DB7的1,即80H(0010000000),第二行第一位是40H,再加上DB7的1,即C0H(0011000000),依次類推。
    比如要在第1行第3位寫入“HELLO WOLRD”,即先寫入地址,再寫入數據:

    write_com(0x40+0); //第1行第3位 write_com(‘H’); write_com(‘O’); ..... write_com(‘D’);

    如果是寫在第2行第2位:

    write_com(0x40+0x80+2); //第2行第2位 //寫數據與上面一樣

    (2)顯示函數
    為了程序的簡潔與方便,我們將顯示程序整合成一個顯示函數:

    void Display_1602(uchar x,uchar y,uchar *str) {unsigned char addr;if (y == 0){addr = 0x00 + x; //第一行的x位置顯示}else{addr = 0x40 + x; //第二行x的位置顯示}write_com(addr + 0x80);while (*str != '\0'){write_data(*str++);}}

    要實現上面顯示就比較簡單:
    第1行第3位顯示“HELLO WOLRD”:

    Display_1602(3,1,”HELLO WOLRD”);

    第2行第2位顯示“HELLO WOLRD”:

    Display_1602(2,2,”HELLO WOLRD”);

    更多LCD1602設計資料及例程 請關注公眾號,首頁回復“1602”獲取資料

    總結

    以上是生活随笔為你收集整理的详解LCD1602液晶显示屏的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。