名称:lcd1602模块驱动代码设计Verilog代码Quartus ?开发板
软件:Quartus
语言:Verilog
代码功能:
lcd1602模块驱动代码设计
1、用qartus软件
2、用verilog语言
3、输入两组16位二进制数据,使lcd1602在第一行上显示字符串consume与第一组转换成十进制输入的数据,第二行显示字符串rest与第二组转换成十进制输入的数据
本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:
部分代码展示:
//?LCD_Driver.v //功能简述:在1602液晶模块上显示字符串 module?LCD_Driver(clk_LCD,rst,LCD_EN,RS,RW,DB8,Data_First,Data_Second); input???clk_LCD,rst;????????//rst为全局复位信号 output??LCD_EN,RS,RW; input????????[111:0]?Data_First,Data_Second;? //LCD_EN为LCD模块的使能信号(下降沿触发) //RS=0时为写指令;RS=1时为写数据 //RW=0时对LCD模块执行写操作;RW=1时对LCD模块执行读操作 output??[7:0]?DB8;??????????//8位指令或数据总线 reg?????[7:0]?DB8; reg?????[111:0]?Data_First_Buf,Data_Second_Buf;?????//液晶显示的数据缓存 reg?????RS,LCD_EN_Sel; reg?????[3:0]?disp_count; reg?????[3:0]?state; parameter???Clear_Lcd?=?4'b0000,????????????????????????????//清屏并光标复位 ????????????Set_Disp_Mode?=?4'b0001,????????????????????????//设置显示模式:8位2行5x7点阵?? ????????????Disp_On?=?4'b0010,??????????????????????????????//显示器开、光标不显示、光标不允许闪烁 ????????????Shift_Down?=?4'b0011,???????????????????????????//文字不动,光标自动右移 ????????????Write_Addr?=?4'b0100,???????????????????????????//写入显示起始地址 ????????????Write_Data_First?=?4'b0101,?????????????????????//写入第一行显示的数据 ????????????Write_Data_Second?=?4'b0110,????????????????????//写入第二行显示的数据 ????????????Idel?=?4'b0111;?????????????????????????????????//空闲状态??????? assign??RW?=?1'b0;?????????????????????//RW=0时对LCD模块执行写操作 assign??LCD_EN?=?LCD_EN_Sel???clk_LCD?:?1'b0; //通过LCD_EN_Sel信号来控制LCD_EN的开启与关闭 always?@(posedge?clk_LCD?or?negedge?rst) begin ???if(!rst) ??????begin ??????????state?<=?Clear_Lcd;???????????????????????????????//复位:清屏并光标复位?? ??????????RS?<=?1'b0;???????????????????????????????????????//复位:RS=0时为写指令;?????????????????????? ??????????DB8?<=?8'b0;??????????????????????????????????????//复位:使DB8总线输出全0 ??????????LCD_EN_Sel?<=?1'b1;???????????????????????????????//复位:开启夜晶使能信号 ??????????//Data_First_Buf?<=?Data_First; ??????????//Data_Second_Buf?<=?Data_Second; ??????????disp_count?<=?4'b0; ??????end ???else ??????case(state)???????????????????????????????????????????//初始化LCD模块 ??????Clear_Lcd: ?????????????begin ????????????????state?<=?Set_Disp_Mode; ????????????????DB8?<=?8'b00000001;?????????????????????????//清屏并光标复位?? ? ?RS?<=?1'b0;???????????????????????????????????????//复位:RS=0时为写指令;?????????????????????? ?????????? ????????????????LCD_EN_Sel?<=?1'b1;???????????????????????????????//复位:开启夜晶使能信号 ????????????????disp_count?<=?4'b0; ?????????????end ??????Set_Disp_Mode:
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1534
阅读全文
929