Verilog | HDL LCD显示(代码类)
博主github:https://github.com/MichaelBeechan
博主CSDN:https://blog.csdn.net/u011344545
module lcd(clk, rs, rw, en,dat,switch2);
input clk,switch2; output [7:0] dat; output rs,rw,en; reg e; reg [7:0] dat; reg rs; reg [16:0] counter; reg [4:0] current,next; reg clkr; reg [1:0] cnt; parameter set0=4'h0; parameter set1=4'h1; parameter set2=4'h2; parameter set3=4'h3; parameter set4=5'h11;parameter set5=5'h1E;parameter set6=5'h1F;parameter dat0=4'h4; parameter dat1=4'h5; parameter dat2=4'h6; parameter dat3=4'h7; parameter dat4=4'h8; parameter dat5=4'h9; parameter dat6=4'hA; parameter dat7=4'hB; parameter dat8=4'hC; parameter dat9=4'hD; parameter dat10=4'hE; parameter dat11=5'h10; parameter dat12=5'h12; parameter dat13=5'h13; parameter dat14=5'h14; parameter dat15=5'h15; parameter dat16=5'h16; parameter dat17=5'h17; parameter dat18=5'h18; parameter dat19=5'h19; parameter dat20=5'h1A; parameter dat21=5'h1B; parameter dat22=5'h1C; parameter dat23=5'h1D;parameter nul=4'hF;
always @(posedge clk) begin counter=counter+1; if(counter==16'h000f) clkr=~clkr;
end
always @(posedge clkr)
begin current=next; case(current) set0: begin rs<=0; dat<=8'h38; next<=set1; end set1: begin rs<=0; dat<=8'h0c; next<=set2; end set2: begin rs<=0; dat<=8'h6; next<=set3; end set3: begin rs<=0; dat<=8'h1; next<=set4; end set4: begin rs<=0; dat<=8'h1c; next<=set5; end set5: begin rs<=0; dat<=8'h80; next<=dat0; enddat0: begin rs<=1; dat<="P"; next<=dat1; end dat1: begin rs<=1; dat<="l"; next<=dat2; end dat2: begin rs<=1; dat<="a"; next<=dat3; end dat3: begin rs<=1; dat<="y"; next<=dat4; end dat4: begin rs<=1; dat<="i"; next<=dat5; end dat5: begin rs<=1; dat<="n"; next<=dat6; end dat6: begin rs<=1; dat<="g"; next<=dat7; end dat7: begin rs<=1; dat<=" "; next<=dat8; end dat8: begin rs<=1; dat<="M"; next<=dat9; end dat9: begin rs<=1; dat<="u"; next<=dat10; end dat10: begin rs<=1; dat<="s"; next<=dat11; end dat11: begin rs<=1; dat<="i"; next<=dat12; end dat12: begin rs<=1; dat<="c"; next<=dat13; end dat13: begin rs<=1; dat<="!"; next<=set6; end set6: begin rs<=0; dat<=8'hc0; next<=dat14; enddat14: begin rs<=1; dat<="F"; next<=dat15; end dat15: begin rs<=1; dat<="r"; next<=dat16; end dat16: begin rs<=1; dat<="i"; next<=dat17; end dat17: begin rs<=1; dat<="e"; next<=dat18; end dat18: begin rs<=1; dat<="n"; next<=dat19; end dat19: begin rs<=1; dat<="d"; next<=dat20; end dat20: begin rs<=1; dat<="s"; next<=dat21; end dat21: begin rs<=1; dat<="h"; next<=dat22; end dat22: begin rs<=1; dat<="i"; next<=dat23; end dat23: begin rs<=1; dat<="p"; next<=nul; end nul: begin rs<=0; dat<=8'h00; //行一遍 然后 把液晶的E 脚 拉高 if(cnt!=2'h2) begin e<=0;next<=set0;cnt<=cnt+1; end else begin next<=nul; e<=1; end end default: next=set0; endcase end
assign en=clkr|e;
assign rw=0;
endmodule
Verilog | HDL LCD显示(代码类)相关推荐
- 如何用Verilog HDL设计显示译码器
Verilog HDL 设计显示译码器 逻辑原理: 7 段数码是纯组合电路,通常的小规模专用 IC,如 74 或 4000 系列的器件只能作十进制 BCD 码译码,然而数字系统中的数据处理和运算都是 ...
- Verilog HDL 语法学习笔记
今天给大侠带来Verilog HDL 语法学习笔记,话不多说,上货. 关于详细的VHDL语法以及Verilog HDL语法可参见往期文章. 一周掌握 FPGA VHDL Day 7 暨汇总篇 一周掌握 ...
- Verilog HDL简明教程
Verilog HDL简明教程 来源: 郭红卫的日志 Verilog HDL简明教程 Verilog HDL是一种硬件描述语言,用于从算法级.门级到开关级的多种抽象设计层次的数字系统建模.被建模的数字 ...
- 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)
目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...
- Verilog hdl与VHDL混用详解
Verilog hdl ...
- I.MX6ULL之LCD显示
I.MX6ULL之LCD显示 代码放在git仓库,有需要的可以自行下载:Gitee LCD的操作原理: 在Linux系统中通过Framebuffer驱动程序来控制LCD.我们只需要知道怎么获取LCD的 ...
- 日历android实训报告,EAD万年历实训报告及Verilog HDL源码
<EDA技术及应用>实训报告1 系统设 1.1 设计要求 1.1.1 设计任务 设计并制作一台数字日历. 1.1.2 性能指标要求 ⑴用Verilog HDL语言设计一个数字日历. ⑵数 ...
- 8位伪随机序列(m序列verilog HDL源码 )
伪随机码又称伪随机序列,它是具有类似于随机序列基本特性的确定序列.通常广泛应用二进制序列,因此我们仅限于研究二进制序列.二进制独立随机序列在概率论中一般称为贝努利(Bernoulli)序列,它由 ...
- 显示译码器——Verilog HDL语言
显示译码器 任务描述 相关知识 逻辑原理 共阴数码管及其电路 编程要求 源代码 任务描述 根据所学的组合逻辑及数字电路的知识完成一个16进制7段数码显示译码器的设计,验证满足一个16进制7段数码显示译 ...
最新文章
- 来,锁个痛快(6)—— 与lock相关的视图和简单实验
- Mac下python3配置opencv3 3和Mac下单独opencv的配置以及iOS下配置opencv
- HDU 1043 Eight(双向BFS+康托展开)
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
- Python基础知识(第九天)
- 吴恩达 coursera AI 专项四第二课总结+作业答案
- DynaSLAM跑通的辛酸之路
- 椭圆中心到椭圆切线的距离
- 〖Python〗-- Django内置Admin
- oracle全角字符转半角,Oracle 表字段全角字符轉換半角字符辦法
- LeetCode 编辑距离 II(DP)
- Tensorflow学习笔记4:分布式Tensorflow
- css 宽高最大值最小值 0303
- C#中的IO流操作(FileStream)
- 鄂尔多斯打造西部云计算基地
- Inno Setup打包基本笔记
- 均方距离计算公式_均值、方差、均方值、均方差计算
- ajax poker,《使命召唤15》大逃杀模式介绍 人物解锁方法一览
- decltype和拖尾返回类型
- 大视角、大方向、大问题、大架构:(结局)解决问题的出发点
热门文章
- Linux系统云主机教程,新开的linux云主机磁盘挂载教程
- python封装c++_用pybind11封装C++实现的函数库
- matlab中欠定方程组超定方程组_七年级下册第10章:解二元一次方程组(12课时)...
- 2021-03-28 收敛性常用一阶微分方程
- Git复习(六)之标签管理
- Codeforces Round FF(Div. 2)
- redis 底层数据结构 压缩列表 ziplist
- Linux下防止文件误删方法
- 分享一些好用的 Chrome 扩展
- 函数和构造函数的区别