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相关推荐

  1. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】

    文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...

  2. 1602实现计算机实验报告,LCD1602液晶显示实验报告

    LCD1602液晶显示实验报告 一.实验目的 (1)了解LCD1602的基本原理,掌握其基本的工作流程. (2)学习用Verilog HDL语言编写LCD1602的控制指令程序,能够在液晶屏 上显示出 ...

  3. LCD1602 液晶显示实验

    LCD1602 简介 LCD1602是一种用来显示字母.数字.符号的点阵型液晶模块,可显示 2 行字符信息,每行又能显示 16 个字符,每个字符由若干个( 5x7 或 5x10) 的点阵字符位组成, ...

  4. 51单片机学习:LCD1602液晶显示实验

    实验名称:LCD1602液晶显示实验 接线说明:     实验现象:下载程序后,LCD1602上显示字符信息 注意事项:                                         ...

  5. 高温报警c语言程序,51单片机实验程序:LCD1602显示温度报警

    /************************************************************************************** *            ...

  6. 从51开始的单片机之旅(二)----LCD1602液晶、ADC0809、DAC0832

    说在前面 上篇已经把流水灯.矩形键盘.电子时钟已经总结完了,今天来总结89E51的LCD1602液晶.ADC0809.DAC0832的相关内容 说在前面 一.基本原理介绍 二.原器件介绍 三.设计及接 ...

  7. 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  8. 【常用传感器】LCD1602液晶工作原理详解及例程代码

    本文带你详细的了解下LCD1602液晶的工作原理以及代码编写 LCD1602液晶显示屏 LCD1602主要参数 LCD发光原理 LCD屏幕的组成: LCD和OLED区别: LCD1602引脚接线: L ...

  9. 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏

    偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...

最新文章

  1. Linq 集合处理(Union)
  2. 在ubuntu系统荣品开发配套JDK安装
  3. python3 设置默认编码_Python3的字符编码乱码问题解决思路
  4. python isinstance和issubclass区别
  5. 天翼云从业认证(4.6)高并发场景上云实践
  6. 【Android开发】用户界面设计-开发自定义的View
  7. mysql在cmd命令行下的相关操作
  8. SNMP学习之结构体snmp_secmod_def
  9. Madagascar的自定义浮点型函数--三角函数和反三角函数
  10. Number()、parseInt() 和 parseFloat() 的区别
  11. java 集合中对象的排序 和去重
  12. LeetCode 147. Insertion Sort List
  13. java修改request的paramMap
  14. java uuid生成器_Java UUID生成器– Java GUID
  15. maven setting文件存放位置
  16. CAD批量输入坐标生成红线
  17. windows安装yarn 详细教程
  18. 树莓派4B配置远程桌面软件 Teamviewer(解决报错)
  19. 南阳oj入门题-阶乘因式分解(一)
  20. P1538 迎春舞会之数字舞蹈

热门文章

  1. linux发行版中的i386/i686/x86-64/有什么区别?
  2. 入职腾讯第九年,我辞职了!
  3. 个人博客园样式、背景及细节美化过程
  4. Keras Tuner 超参数优化
  5. 联想用u盘重装系统步骤_详解联想如何使用u盘重装win10系统
  6. 达内培训python百度云下载
  7. 杭电计算机考试科目,杭电计算机考研经验
  8. poi 读取word 遍历表格和单元格中的图片
  9. 2018互联网实习秋招回顾(BATM+MS+Intel+NE+DJI)
  10. 如何使U盘实现在苹果电脑mac和windows上实现无障碍读写——不需要下载第三方软件