C语言LCD1602液晶实验报告,LCD1602液晶显示实验报告.doc
LCD1602液晶显示实验报告
LCD1602液晶显示实验报告
实验目的
(1)了解LCD1602的基本原理,掌握其基本的工作流程。
学习用Verilog HDL语言编写LCD1602的控制指令程序,能够在液晶屏上显示出正确的符号。
能够自行改写程序,并实现符号的动态显示。
Quartus II 软件、EP2C8Q208C8实验箱
可以实现在LCD1602液晶屏第一行左侧第一位的位置循环显示0~9,并且可以用一个拨码开关BM8实现显示的复位功能。
LCD1602液晶能够同时显示16x02即32个字符,模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。1602通过D0~D7的8位数据端传输数据和指令。
系统的状态转换流程图如图3.1.1所示。通过状态流程图可以看到,LCD1602液晶屏的状态是不断更新的,依次完成液晶的初始化和0~9的动态显示过程,并且过程可由开关控制。
图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 = 1'b0;
assign SEL1 = 1'b0;
assign SEL2 = 1'b1;
always @ (posedge clk, negedge rst_n)
if (!rst_n)
cnt <= 0;
else
cnt <= cnt + 1'b1;
wire lcd_clk = cnt[23]; // (2^23 / 50M)=0.168s
always@(posedge lcd_clk)
if(cnt1>=24'd2)
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<=8'h30;//设初值
case(row1_val) //数字0~9循环显示
8'h30:row1_val<=8'h31;
8'h31:row1_val<=8'h32;
8'h32:row1_val<=8'h33;
8'h33:row1_val<=8'h34;
8'h34:row1_val<=8'h35;
8'h35:row1_val<=8'h36;
8'h36:row1_val<=8'h37;
8'h37:row1_val<=8'h38;
8'h38:row1_val<=8'h39;
8'h39:row1_val<=8'h30;
default: row1_val<=8'h30;
endcase
end
parameter IDLE = 8'h00;
parameter DISP_SET = 8'h
C语言LCD1602液晶实验报告,LCD1602液晶显示实验报告.doc相关推荐
- 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】
文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...
- 1602实现计算机实验报告,LCD1602液晶显示实验报告
LCD1602液晶显示实验报告 一.实验目的 (1)了解LCD1602的基本原理,掌握其基本的工作流程. (2)学习用Verilog HDL语言编写LCD1602的控制指令程序,能够在液晶屏 上显示出 ...
- LCD1602 液晶显示实验
LCD1602 简介 LCD1602是一种用来显示字母.数字.符号的点阵型液晶模块,可显示 2 行字符信息,每行又能显示 16 个字符,每个字符由若干个( 5x7 或 5x10) 的点阵字符位组成, ...
- 51单片机学习:LCD1602液晶显示实验
实验名称:LCD1602液晶显示实验 接线说明: 实验现象:下载程序后,LCD1602上显示字符信息 注意事项: ...
- 高温报警c语言程序,51单片机实验程序:LCD1602显示温度报警
/************************************************************************************** * ...
- 从51开始的单片机之旅(二)----LCD1602液晶、ADC0809、DAC0832
说在前面 上篇已经把流水灯.矩形键盘.电子时钟已经总结完了,今天来总结89E51的LCD1602液晶.ADC0809.DAC0832的相关内容 说在前面 一.基本原理介绍 二.原器件介绍 三.设计及接 ...
- 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 【常用传感器】LCD1602液晶工作原理详解及例程代码
本文带你详细的了解下LCD1602液晶的工作原理以及代码编写 LCD1602液晶显示屏 LCD1602主要参数 LCD发光原理 LCD屏幕的组成: LCD和OLED区别: LCD1602引脚接线: L ...
- 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...
最新文章
- Linq 集合处理(Union)
- 在ubuntu系统荣品开发配套JDK安装
- python3 设置默认编码_Python3的字符编码乱码问题解决思路
- python isinstance和issubclass区别
- 天翼云从业认证(4.6)高并发场景上云实践
- 【Android开发】用户界面设计-开发自定义的View
- mysql在cmd命令行下的相关操作
- SNMP学习之结构体snmp_secmod_def
- Madagascar的自定义浮点型函数--三角函数和反三角函数
- Number()、parseInt() 和 parseFloat() 的区别
- java 集合中对象的排序 和去重
- LeetCode 147. Insertion Sort List
- java修改request的paramMap
- java uuid生成器_Java UUID生成器– Java GUID
- maven setting文件存放位置
- CAD批量输入坐标生成红线
- windows安装yarn 详细教程
- 树莓派4B配置远程桌面软件 Teamviewer(解决报错)
- 南阳oj入门题-阶乘因式分解(一)
- P1538 迎春舞会之数字舞蹈
热门文章
- linux发行版中的i386/i686/x86-64/有什么区别?
- 入职腾讯第九年,我辞职了!
- 个人博客园样式、背景及细节美化过程
- Keras Tuner 超参数优化
- 联想用u盘重装系统步骤_详解联想如何使用u盘重装win10系统
- 达内培训python百度云下载
- 杭电计算机考试科目,杭电计算机考研经验
- poi 读取word 遍历表格和单元格中的图片
- 2018互联网实习秋招回顾(BATM+MS+Intel+NE+DJI)
- 如何使U盘实现在苹果电脑mac和windows上实现无障碍读写——不需要下载第三方软件