lcd_1602驱动模板.docx_第1页
lcd_1602驱动模板.docx_第2页
lcd_1602驱动模板.docx_第3页
lcd_1602驱动模板.docx_第4页
lcd_1602驱动模板.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/模块功能说明 :本模块为LCD_1602液晶屏的简单驱动模块,/实现的功能为 : 第一行显示字符Welcom you come ,/第二行显示字符Fpga learn,当第一行打印完以后开始/打印第二行,打印结束后,马上开始整体向左进行移位显示,/实现滚屏效果 /本模块已通过综合验证,并已经在开发板上调试通过/作者: 王建飞/*/模块端口定义module lcd(clk,rst,r_s,r_w,e,d);/*/端口类型说明input clk;input rst;output r_s;output r_w;output e;output 7:0 d;reg r_s;reg r_w;reg e;reg 3:0 cnt1; /字符打印计数器reg 8:0 state; /状态机主状态reg 7:0 d;reg 23:0cnt; /分频计数器reg 16*8-1:0 final_data1; /第一行显示数据寄存器reg 10*8-1:0 final_data2; /第二行显示数据寄存器/*/状态机参数定义parameterIDLE = 9b000000000;parameterSETFUNCTION_6 =9b000000001;parameterSWITCHMODE_4 =9b000000010;parameterCLEAR_1 = 9b000000100;parameterSETMODE_3 = 9b000001000;parameterSETDDRAM_8 = 9b000010000;parameterWRITERAM_1 = 9b000100000;parameterSETDDRAM_8_2 = 9b001000000;parameter WRITERAM_2 = 9b010000000;parameterSHIFT_5 = 9b100000000;/*/系统时钟分频always (posedge clk) if(!rst) begin cnt = 0;e = 0; endelse begincnt = cnt+1;e = cnt23;end/*/always (posedge e)if(!rst) /系统复位begin r_s = 0; r_w = 0; d = 0; end/*/LCD指令表示elsebegincase(state)/*空闲状态*/IDLE : begin state = SETFUNCTION_6; final_data1 = Welcom you come ; final_data2 = Fpga learn; end/*置功能*/SETFUNCTION_6 : beginr_s = 0;r_w = 0;d = 8b00111000; state = SWITCHMODE_4;end/*显示开关控制*/SWITCHMODE_4 : beginr_s = 0; r_w = 0; d = 8b00001100;state = CLEAR_1; end/*清屏*/CLEAR_1 : beginr_s = 0; r_w = 0;d = 8b00000001;state = SETMODE_3; end/*置输入模式*/SETMODE_3 : beginr_s = 0;r_w = 0;d = 8b00000110;state = SETDDRAM_8;end/*置第一行地址*/SETDDRAM_8 : beginr_s = 0;r_w = 0;d = 8b10000000;state = WRITERAM_1;end/*置第一行数据*/WRITERAM_1 : beginr_s = 1;r_w = 0;if(cnt1=15) begin state = SETDDRAM_8_2;cnt1 = 0;end d = final_data1127:120; / final_data=final_data8; (这种循环移位方式也是可以实现的,但是不支持重复打印,否则会出现数据错误) final_data1 = final_data1119:0,final_data1127:120; cnt1 = cnt1+1; end/*置第二行地址*/SETDDRAM_8_2 : beginr_s = 0;r_w = 0;d = 8b11000100;state = WRITERAM_2;end/*置第二行数据*/WRITERAM_2 : beginr_s = 1;r_w = 0;final_data2 = final_data271:0,final_data279:72;d = final_data279:72;cnt1 = cnt1+1;if(cnt1=9)begin cnt1 = 0; state = SHIFT_5;endend/*移位指令(左移)*/SHIFT_5 : beginr_s = 0;r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论