研究1602驱动是因为老师要求写一个DDS的程序。之前没写过这类驱动,他们说跟1602驱动程序差不多,就是以状态机的形式写驱动。那我就先从熟悉的1602入手接触这种驱动的写法。这可绝不是简单的把单片机程序翻译成verilog程序这么简单。
1602的一般原理就不说了,在网上参考了好多驱动程序,也不知道能不能用,不过我贴的这个感觉还比较靠谱,但也没实测过,改了改注释,仅当学习用。
注意:
1、LCD时钟需要自己分频得到,一般100Hz级别的吧,反正很慢。
2、实际不能直接用双引号把字符输入进去,应该用ascII码,我这只是为了方便表示。
3、如果用12864显示中文,那就要去找相应的字符代码,也不能直接双引号输入。
总之,用fpga来驱动液晶简直就是蛋疼!
verilog写的LCD1602显示
*******************************************************************************/
//省去分频部分
// LCD_Driver.v
//功能简述:在1602液晶模块上显示字符串,其中第一行显示“Welcome to lhy"
// 在第二行显示“www.lhy.com"
module LCD_Driver(clk_LCD,rst,LCD_EN,RS,RW,DB8);
input clk_LCD,rst; //rst为全局复位信号(高电平有效)
output LCD_EN,RS,RW;
//LCD_EN为LCD模块的使能信号(下降沿触发)
//RS=0时为写指令;RS=1时为写数据