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
(以上都不檢測忙訊號)
(以下都要檢測忙訊號)
寫指令08H 關閉顯示
寫指令01H 顯示清屏
寫指令06H游標移動設定
寫指令0cH 顯示開及游標設定
完畢
Proteus模擬
使用Proteus模擬1602--即LM016L--依照資料手冊說明可能遇到困難,可以嘗試採用以下方案解決:
1、資料手冊中可能介紹1602內部D0~D7已有上拉,可以使用P0口直接驅動。在Proteus裡LM016L內部可能沒有,應該人為
加上拉電阻。建議不要使用排阻,使用普通電阻一個一個拉應該可以解決問題;
2、可能碰到不能檢測忙訊號的問題,嘗試使用延時把忙訊號拖過去。
https://iknow-pic.cdn.bcebos.com/9358d109b3de9c824dccc86e6b81800a18d843a1
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