- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
点阵字符型液晶显示器驱动控制电路设计
实验目的:熟悉Verilog状态机的一般形式,使用状态机控制LCD 1602
显示器。
实验内容:
设计LCD102显示器控制器,实现在LCD屏上实时显示ASCII字符。
显示地址、显示ASCII码分别由SW12-SW8和SW7-SW0设定。
LCD1602的硬件特性及引脚功能
LCD1602顾名思义是一种02*16,即为两行十六列的液晶显示屏,液晶两行,每行可以显示16个字符,但是CGRAM及CGROM里面一共有160个字符,包括阿拉伯数字,英文字母大小写,常用符号及日文。每个字符对应于一个ASCII码值,在液晶显示屏上显示对应的字符时候,只需要将对应的ASCII码写到DDRAM中就好,详细的步骤会在下面细说。液晶板上排列着5*8的字符点阵,8行,每行5个点位,高电平1就是该点显示,低电平0就是该点不显示。
当然有的模块是不带背光的,这时候15 和16引脚是没有意义的
程序代码源:
module lcd_1602(clk50m,lcd_en,key,sw_data,address,rst,lcd_rw,lcd_rs,lcd_data,lcd_on,lcd_blon);
input rst;
input key;
input clk50m;
input [4:0]address; //显示地址输入
input [7:0]sw_data; //显示数据输入
output lcd_en; //连在clk4hz的时钟信号上
output lcd_rw;
output lcd_rs;
output lcd_on;
output lcd_blon; // (背光) 悬空,相当于低电平
output reg[7:0]lcd_data;
reg [7:0]buf_data;
reg [7:0]buf_addr;
reg lcd_rw,lcd_rs, clk4hz,lcd_on,lcd_blon;
reg[7:0] state;
reg[23:0]cnt;
reg load;
parameter OP =8b0000_0001;
parameter CLEAR =8b0000_0010; //清屏
parameter SETFUNCTION =8b0000_0100; //设置 CGRAM
parameter SWITCHMODE=8b0000_1000; //工作方式设置1:8/ 1:4位数据接口; 两行/一行显示方式; 5x10/5x7点阵
parameter SETMODE =8b0001_0000; // 显示状态设置,显示开/关; 光标开/关;闪烁开/关
parameter JUDGE =8b0010_0000; //输入方式设置, 读写数据后RAM地址增减1,画面不动
parameter JUDGE_new =8b0011_0000;
parameter SETCGRAM =8b0100_0000; //写RAM
parameter WRITERAM =8b1000_0000;
parameter CUR_INC =1b1; //功能参数设定
parameter CUR_NOSHIFT =1b0;
parameter OPEN_DISPLAY =1b1;
parameter OPEN_CUR =1b0;
parameter BLANK_CUR =1b0;
parameter DATAWITH8 =1b1;
parameter DATAWIHT4 =1b0;
parameter TWOLINE =1b1 ;
parameter ONELINE =1b0;
parameter FONT5x10 =1b1;
parameter FONT5x7 =1b0;
always@(posedge clk50m )
begin
if (cnt==23d125000)
begin cnt=0; clk4hz=~clk4hz; end
else
cnt=cnt+1b1;
end
assign lcd_en=clk4hz;
always@(posedge clk4hz ) //clk4hz 接 lcd_en 使能引脚
begin
if(rst)
begin state=CLEAR;
lcd_on=0;
lcd_blon=0;
en
文档评论(0)