- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LCD1602
LCD1602 液晶显示实验报告
PAGE
PAGE 1
LCD1602 液晶显示实验报告
一、实验目的
了解 LCD1602 的基本原理,掌握其基本的工作流程。
学习用 Verilog HDL 语言编写 LCD1602 的控制指令程序,能够在液晶屏上显示出正确的符号。
能够自行改写程序,并实现符号的动态显示。
二、实验设备与器件
Quartus II 软件、EP2C8Q208C8 实验箱
三、实验方案设计
实验可实现的功能
可以实现在 LCD1602 液晶屏第一行左侧第一位的位置循环显示 0~9,并且可以用一个拨码开关 BM8 实现显示的复位功能。
LCD1602 基本知识
LCD1602
LCD1602 液晶能够同时显示 16x02 即 32 个字符,模块内部的字符发生
存储器 (CGROM) 已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符
都有一个固定的代码, 比如大写的英文字母 “A”的代码是(41H ), 显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母
“A”。因为 1602 识别的是 ASCII 码,试验可以用 ASCII 码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如 “A”。1602 通过 D0~D7 的
8 位数据端传输数据和指令。
3.系统工作原理
系统的状态转换流程图如图 3.1.1 所示。通过状态流程图可以看到,
LCD1602 液晶屏的状态是不断更新的,依次完成液晶的初始化和 0~9 的动态显示过程,并且过程可由开关控制。
开始IDLE
DISP_SET显示模式
设置DISP_OFF显示关闭
CLR_SCR显示清屏
CUTSOR_SET1显示
光标移动设置
CURSOR_SET2显示
开关及光标设置
ROW1_ADDR写第一行起始地址
ROW1_0字符显示位置不移动
数字0~9依次显示
N
拨码复位?
Y
结束
图 3.1.1 状态流程图
程序设计
module LCD1602(
input
clk,
// 50MHz 时钟
input
rst_n,
//开关信号
output reg [7:0] lcd_data, // 数据总线
output
lcd_e,
// 使能信号
output reg
lcd_rs,
// 指令、数据选择
output
lcd_rw,
// 读、写选择
output
SEL0,
// LCD1602 读写选择
output
SEL1,
// LCD1602 读写选择
output
SEL2
// LCD1602 读写选择
);
reg [127:120] row1_val; // 第一行字符
reg [23:0] cnt,cnt1; assign SEL0 = 1b0; assign SEL1 = 1b0; assign SEL2 = 1b1;
always @ (posedge clk, negedge rst_n)
if (!rst_n) cnt = 0;
else
cnt = cnt + 1b1;
wire lcd_clk = cnt[23]; // (2^23 / 50M)=0.168s always@(posedge lcd_clk)
if(cnt1=24d2) begin
reg lcd_clk1; lcd_clk1=1; cnt1=0;
end
else
begin
cnt1=cnt1+1; //cnt1 对 lcd_clk 二分频lcd_clk1=0;
end
always@(posedge lcd_clk1) begin
row1_val=8h30;//设初值
case(row1_val) //数字 0~9 循环显示8h30: row1_val=8h31;
8h31: row1_val=8h32; 8h32: row1_val=8h33; 8h33: row1_val=8h34; 8h34: row1_val=8h35; 8h35: row1_val=8h36; 8h36: row1_val=8h37; 8h37: row1_val=8h38; 8h38: row1_val=8h39; 8h39: row1_val=8h30; default: row1_val=8h30;
endcase end
parameter IDLE = 8h00;
parameter DISP_SET = 8h01; // 显示模式设置parameter DISP_OFF = 8h03; // 显示关闭parameter CLR_SCR = 8h02; // 显示清屏
parameter CURSOR_SET1 = 8h
您可能关注的文档
- IPO基本术语分析和总结.docx
- IPO上市有哪些好处.docx
- IPTV方案分析和总结.docx
- IPTV机顶盒设置分析和总结.docx
- IP协议分析实验报告.docx
- IQ and EQ分析和总结分析和总结.docx
- IQ智商 EQ情商分析和总结.docx
- iso9001内审员试题及答案.docx
- ISP SPI JTAG 三者区别详解.docx
- ITO导电玻璃简介以及基础知识.docx
- 模具制造业数字化转型技术路径研究及成本智能制造模式分析报告.docx
- 中国铁路用钢行业运行动态分析与投资盈利专项可行性研究报告.docx
- 中国铝碳纳米管市场深度解析及未来发展走势预测研究报告.docx
- 能源行业市场深度分析及竞争格局与投资价值研究报告.docx
- 抗生素耐药性检测技术产业化前景预测.docx
- 教育行业市场供需分析及投资发展潜力规划研究报告.docx
- 2025-2030mRNA疫苗生产设备需求激增与供应链挑战.docx
- 中国工业锆材市场供应前景与未来发展格局建议研究报告.docx
- 金融科技行业市场供需分析及投资发展前景评估规划研究报告.docx
- 教育行业标准制定与师资培训研究.docx
原创力文档


文档评论(0)