2025-11-08 06:19:58
lcd1602显示数组变量得先给屏幕发指令。先把清屏指令0x01发过去,让屏幕空白。接着发设置光标位置指令,比如0x80是行地址0,0x40是列地址0。然后逐个发送数组里的字符编码,比如数组存着"ab,cd"四个字,就分别发0x61、0x62、0x63、0x64。等屏幕稳定再发新数据,不然会花屏。
那为啥得这么操作呢?因为lcd1602是分时复用的,得先让引脚稳定住指令。比如清屏指令0x01占5个时钟周期,发送完光标位置指令0x80再发数据,中间要间隔2个时钟。数组里的每个字符占8位数据,要跟指令分开发。比如显示"ab"时,先发0x80到行0列0,再发0x61(a)和0x62(b)。数据手册里写着,同一行最多存16个字符,所以数组不能超过这个长度。要是数组太大,得换行显示,这时候就要用换行指令0xDD。发送完数据后还要发0xFE结束传输,不然新指令会打乱数据。比如之前有人把数组发成"1234,5678",结果显示错成"1234,5",发现是漏发换行指令了。
本题链接: