|
以前写过1602的8位显示,两天前想改成4位的。结果折腾到现在,各位见笑了。长歌当哭,我来总结一下心得。
首先给出一个1602的4位显示的很漂亮的一个帖子:
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=551580&bbs_page_no=1&sub_kind_id=2065&bbs_id=1000
按照这个帖子99.9%可以做出显示,但我想提个0.1%的不同之处:
配置完成之后要延时:
...
initLCD();
_delay_loop_2(300); //配置完成后的延时-----不同之处
writestring(0,0,"Hello world!"); //test code
...
之后的写命令/数据前面就不要加延时了:
void writecmd(uint8_t command)
{
//_delay_loop_2(4); //可以不加
uint8_t command_temp;
command_temp = command;
...
}
最后,感谢archeng504 阿成的劳动和hotpower的引荐 :P
另附源码,含proteus仿真文件:LCD1602.rar