- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非常详细的verilog写的LCD1602驱动
最近在网上找了很多用verilog驱动LCD1602的程序,但基本没有一个是完美运行,很多论坛所谓大神的代码综合时候一样很多缺陷,要知道每一个warning都有可能是导致最终失败的原因。于是乎只能自己下功夫,找到一个稍微靠谱的开发板配套例程,但是分频器模块编的叫一塌糊涂,主时钟分频后继续分频而且组合时序乱用,通过分频模块重新编写后基本无warning完美运行,仿真功能实现并且下载显示成功,后面附上了我的testbench,本人用的软件为ISE12.2,不过个人感觉quartus应该一样跑,下面是代码 ,需要在1602显示什么字符自己改显示函数就行,希望对大家有帮助。 module lcd1602(clk,rst,LCD_E,LCD_RW,LCD_RS,LCD_D);input clk,rst;output LCD_E,LCD_RW,LCD_RS;output [7:0] LCD_D;reg LCD_E,LCD_RW,LCD_RS;reg [7:0] LCD_D;reg [9:0] state;reg [5:0] address;parameter IDLE=10b0000000000;parameter CLEAR=10b0000000001;//清屏parameter RETURNCURSOR=10b0000000010;//归home位parameter SETMODE=10b0000000111;//输入方式设置,读写数据后ram地址增/减1;画面动/不动parameter SWITCHMODE=10b0000001111;//显示状态设置,显示开/关;光标开/关;闪烁开/关parameter SHIFT=10b0000011100;//光标画面滚动 画面/光标平移一位;左/右平移一位parameter SETFUNCTION=10b0000111100;//工作方式设置 1:8/1:4位数据接口;两行/一行显示;5x10/5x7点阵parameter SETCGRAM=10b0001000000;//设置CGRAMparameter SETDDRAM1=10b0010000001;//设置DDRAMparameter SETDDRAM2=10b0010000010;//设置DDRAMparameter READFLAG=10b0100000000;//读状态parameter WRITERAM1=10b1000000001;//写RAMparameter WRITERAM2=10b1000000010;//写RAMparameter READRAM=10b1100000000;//读RAMparameter cur_inc=1;parameter cur_dec=0;parameter cur_shift=1;parameter cur_noshift =0;parameter open_display =1;parameter open_cur=0;parameter blank_cur=0;parameter shift_display=1;parameter shift_cur=0;parameter right_shift =1;parameter left_shift=0;parameter LCD_Dwidth8=1;parameter LCD_Dwidth4=0;parameter twoline=1;parameter oneline=0;parameter font5x10=1;parameter font5x7=0;/******************************************************************/function [7:0] ddram; //写入需要的字符数据input [5:0] n;begincase(n)0:ddram=8h48;//H1:ddram=8h65;//e2:ddram=8h6c;//l3:ddram=8h6c;//l4:ddram=8h6f;//o5:ddram=8h21;//!6:ddram=8h21;//!7:ddram=8hA0;//space8:ddram=8h7E;//-9:ddram=8hA0;//space10:ddram=8h5A;//Z11:ddram=8h52;//R12:ddram=8h74;//t13:ddram=8h65;//e14:ddram=8h63;//c15:ddram=8h68;//h16:ddram=8h77;//w17:ddram=8h77;//w18:ddram=8h77;//w19:ddram=8h2E;//.20:ddram=8h5A;//
文档评论(0)