调LCD1602的几个关键点备忘:
1. VL对比度调节,使用10K可调电阻,我使用的是蓝白屏,VL电压大概1V是可以很好看清的。
注意,VL不必下电调,带电调也可以,一顿拧,拧不到字出现,代表程序不正确。不用怀疑VL电压了。
2. RW读写控制,L = Write,H = Read,假如不需要读LCD的话,可以直接接地,不用使用IO控制。这个是确认的。
3. 时序控制:
PDF里写的信号周期tc为400 ns,算过来是约2 Mhz,我开始是使用1 Mhz的时钟来写LCD控制模块,结果,呵呵呵!完全不能用!
这里有一点要注意:LCD出厂时是默认配置了一行的,假如上电什么都不做,显示一行黑块,那恭喜,这块LCD是好的。
然后配置初始化步骤 LCD_init, write_cmd(0x38) 等等,网上一大把。
假如在此步骤后,LCD显示两行黑块,不显示字,那也恭喜,快调通了。
错误在哪呢?错在没有sleep,怎么个sleep呢?每写一个指令,sleep 3 ms!睡少了都不干活!例如2 ms就不干了,只显示2行黑块。
最后使用2 khz来写LCD控制模块,OK了。
回想起来,很怀疑是不是PDF里的单位写错了,不是ns而是us?!
4. LCD背光我使用了100Ohm的可调电阻限流,拧到头还是比较亮,所以可以用1KOhm的可调电阻限流,拧个150ohm应该差不多了。