verilog 写的1602动态计数器(完善过)
来源:互联网 发布:python游戏服务器开发 编辑:程序博客网 时间:2024/04/30 13:07
由于前面一个帖子的代码有点瑕疵,这个完善了一点,我吧第二行的第一个作为个位数,第一行的第一位作为十位数,按照01--99进行计数。哈哈,动态刷新哦!!网上太难找到这样的例子了!本人刚学会就贡献给大家,作为初学。请抛砖
module LCD
(
rst,
key1,
clk,
rw,
rs,
en,
data,
);
input clk,rst,key1;
output rs,en,rw;
output [7:0] data;
reg rs,en_sel;
reg [7:0] data;
reg [15:0] add;
reg [15:0]count,count1,jishu,cnt; //LCD CLK 分频计数器
reg lcd_clk;
reg [7:0] next,xianshi,two;
parameter state0 =6'h00, //设置8位格式,2行,5*7 8'h38;
state1 =6'h01, //整体显示,关光标,不闪烁 8'h0C 闪烁 8'h0e
state2 =6'h02, //设定输入方式,增量不移位 8'h06
state3 =6'h03, //清除显示 8'h01
state4 =6'h04, //显示第一行的指令 80H
state5 =6'h05, //显示第二行的指令 80H+40H
scan =6'h06,
nul =6'h07;
parameter data0 =6'h10,
data1 =6'h11;
always @(posedge clk ) //获得LCD时钟
begin
count<=count+1;
if(count==25000)
begin
count<=0;
lcd_clk<=~lcd_clk;
end
end
initial begin xianshi<=8'b00110001;two<=8'b00110000; en_sel<=1; end
always @(posedge lcd_clk or negedge rst )
begin
if(!rst)
begin
next<=state0;
xianshi<=8'b00110001;
two<=8'b00110000;
end
else
begin
case(next)
state0 :
begin rs<=0; data<=8'h38; next<=state1; end
state1 :
begin rs<=0; data<=8'h0e; next<=state2; end
state2 :
begin rs<=0; data<=8'h06; next<=state3; end
state3 :
begin rs<=0; data<=8'h01; next<=state4; end
state4 :
begin rs<=0; data<=8'h80; next<=data0; end
data0 :
begin rs<=1; data<=two; next<=state5 ; end
state5:
begin rs<=0;data<=8'hC0; next<=data1; end //显示第二行
data1 :
begin rs<=1; data<=xianshi; next<=scan ; end
scan :
begin
if(add==500)
begin
en_sel<=1;
add<=0;
xianshi<=xianshi+8'b00000001;
if(xianshi==8'b00111001)
begin
xianshi<=8'b00110001;
two<=two+8'b00000001;
if(two==8'b00111001)
begin
two<=8'b00110001;
end
end
next<=state0;
end
else
begin
add<=add+1;
en_sel<=0;
next<=data0;
end
end
default: next<=state0;
endcase
end
end
assign en=lcd_clk && en_sel;
assign rw=0;
endmodule
- verilog 写的1602动态计数器(完善过)
- FPGA verilog 实现的1602 时钟计数器
- 定时/计数器的verilog代码
- verilog的1602动态显示
- [转]格雷码计数器的Verilog描述
- 模N计数器的Verilog HDL代码
- Verilog HDL语言的计数器程序
- 以前写过的动态sql例子
- verilog实现计数器
- 使用verilog实现计数器
- Verilog设计译码器、计数器
- verilog写的三分频
- .net写的字符计数器
- verilog做十进制计数器的时候。一定要用阻塞赋值
- EDA的Verilog语言编写16进制计数器
- Verilog中计数器的2中写法对比
- 虚拟项目——计数器的verilog实现
- 基于Verilog HDL的模60BCD码计数器设计
- Windows API 贪吃蛇代码
- Exercises 3-3
- 流行视频格式讲解
- shell命令 2>&1
- python-模块
- verilog 写的1602动态计数器(完善过)
- windows API 俄罗斯方块
- 原百度员工去世 TechWeb报道引家属要求删帖
- 六大原则之“依赖倒置原则(DIP)“笔记
- flush tables with read lock的一个潜在问题
- 第八周实验报告1
- http-equiv是什么意思(转载)
- 表达式语言===jsp表达式
- 右键添加UltraEdit选项