• 方案介绍
  • 相关推荐
申请入驻 产业图谱

lcd1602模块驱动代码设计Verilog代码Quartus ?开发板

09/08 09:01
929
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:lcd1602模块驱动代码设计Verilog代码Quartus ?开发板

软件:Quartus

语言:Verilog

代码功能:

lcd1602模块驱动代码设计

1、用qartus软件

2、用verilog语言

3、输入两组16位二进制数据,使lcd1602在第一行上显示字符串consume与第一组转换成十进制输入的数据,第二行显示字符串rest与第二组转换成十进制输入的数据

本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:

开发板.jpg

部分代码展示:

//?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

相关推荐