回覆列表
  • 1 # 使用者5253322899700

    1602透過D0~D7的8位資料端傳輸資料和指令。

    顯示模式設定:(初始化)

    0011 1000[0x38]設定16×2顯示,5×8點陣,8位資料介面;

    顯示開關及游標設定:(初始化)

    0000 1DCB D顯示(1有效)、C游標顯示(1有效)、B游標閃爍(1有效)

    0000 01NS N=1(讀或寫一個字元後地址指標加1 &游標加1),

    N=0(讀或寫一個字元後地址指標減1 &游標減1),

    S=1 且 N=1 (當寫一個字元後,整屏顯示左移)

    s=0 當寫一個字元後,整屏顯示不移動

    資料指標設定:

    資料首地址為80H,所以資料地址為80H+地址碼(0-27H,40-67H)

    其他設定:

    01H(顯示清屏,資料指標=0,所有顯示=0);02H(顯示回車,資料指標=0)。

    通常推薦的初始化過程:

    延時15ms

    寫指令38H

    延時5ms

    寫指令38H

    延時5ms

    寫指令38H

    延時5ms

    (以上都不檢測忙訊號)

    (以下都要檢測忙訊號)

    寫指令38H

    寫指令08H 關閉顯示

    寫指令01H 顯示清屏

    寫指令06H游標移動設定

    寫指令0cH 顯示開及游標設定

    完畢

    Proteus模擬

    使用Proteus模擬1602--即LM016L--依照資料手冊說明可能遇到困難,可以嘗試採用以下方案解決:

    1、資料手冊中可能介紹1602內部D0~D7已有上拉,可以使用P0口直接驅動。在Proteus裡LM016L內部可能沒有,應該人為

    加上拉電阻。建議不要使用排阻,使用普通電阻一個一個拉應該可以解決問題;

    2、可能碰到不能檢測忙訊號的問題,嘗試使用延時把忙訊號拖過去。

    https://iknow-pic.cdn.bcebos.com/9358d109b3de9c824dccc86e6b81800a18d843a1

  • 中秋節和大豐收的關聯?
  • 如何用簡單的幾句話激怒別人?