VerilogLED数码管驱动电路设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实训2 LED数码管驱动电路设计与实现
一、实训设备、工具与要求
1.实训设备、工具
PC电脑、FPGA开发系统、Quartus II应用软件。

2.实训要求
⑴每位学生独立完成项目的制作并撰写实训报告;
⑵项目制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并登记成绩;
⑶项目经指导教师验收后,由学生将全部实验设备整理后交指导教师验收并登记;
⑷实训结束后1周内交实训报告。

二、实训涉及的基本知识
1.请画出七段LED数码管显示电路的输入输出结构
2.列表描述共阴七段数码显示电路的输入输出关系和显示结果?
三、实训综合电路(七段译码器电路框图)
动态显示电路框图:
模10计数单个数码管显示电路框图:
四、实训步骤
1. 阅读Altera CyclongII 开发系统用户手册,画出七段数码管的电路图和连接引脚。

2.设计应用工程,将十进制的0-9的BCD码转换成七段数码管的显示码(组合逻辑电路)
七段LED数码管显示电路的Verilog代码:
module qiduan_0(cnt,led);
input [3:0] cnt;
output [6:0] led;
reg [6:0] led;
always@(cnt)
begin
case(cnt)
4'b0001:led=7'b0000110;
4'b0010:led=7'b1011011;
4'b0011:led=7'b1001111;
4'b0100:led=7'b1100110;
4'b0101:led=7'b1101101;
4'b0110:led=7'b1111100;
4'b0111:led=7'b0000111;
4'b1000:led=7'b1111111;
4'b1001:led=7'b1101111;
4'b1010:led=7'b1110111;
default:led=7'b0111111;
endcase
end
endmodule
七段LED数码管显示电路仿真波形图:
3. 设计应用工程,四个数码管依次静态显示“1”、“2”、“3”、“4”;
module led_1(a,led);
input [1:0] a;
output [10:0] led;
reg [10:0] led;
always@(a)
if(a==2'b00)
led<=11'b00010000110;
else if(a==2'b01)
led<=11'b00101011011;
else if(a==2'b10)
led<=11'b010********;
else
led<=11'b10001100110;
end
endmodule
4. 设计应用工程,单个数码管完成从模10计数功能;
分频器:
module fenpin25(clk,rst,clk_1hz);
input clk;
input rst;
output clk_1hz;
reg clk_1hz;
reg [23:0] cnt;
always@(posedge clk or posedge rst)
begin
if(rst==1'b1)
cnt<=24'd0;
else if(cnt==13107119)begin
cnt<=24'd0;
clk_1hz<=~clk_1hz;
end
else
cnt<=cnt+1;
endmodule
十进制计数器:
module cnt10(rst,clk,cnt);
input rst,clk;
output [3:0] cnt;
reg [3:0] cnt;
always@(posedge clk)
begin
if(rst==1'b0)
cnt<=4'b000;
else if(cnt==4'd9)
cnt<=4'b000;
else
cnt<=cnt+1;
end
endmodule
十进制计数器仿真波形图:
LED译码器:
module qiduan(cnt,led,scan); input [3:0] cnt;
output [6:0] led;
output [3:0] scan;
reg [6:0] led;
wire [3:0] scan;
assign scan=4'b0001; always@(cnt)
begin
case(cnt)
4'b0001:led=7'b0000110;
4'b0010:led=7'b1011011;
4'b0011:led=7'b1001111;
4'b0100:led=7'b1100110;
4'b0110:led=7'b1111100;
4'b0111:led=7'b0000111;
4'b1000:led=7'b1111111;
4'b1001:led=7'b1101111;
4'b1010:led=7'b1110111;
default:led=7'b0111111;
endcase
end
endmodule
LED译码器仿真波形图:
顶层电路Verilog HDL代码:
module cnt10led(rst,clk,led,scan);
input rst;
input clk;
output [6:0] led;
output [3:0] scan;
wire [3:0] cnt;
wire [6:0] led;
wire [3:0] scan;
fenpin25 u0(.clk(clk),.rst(rst),.clk_1hz(clk_1hz));
cnt10 u1(.clk(clk_1hz),.rst(rst),.cnt(cnt));
qiduan u2(.cnt(cnt),.led(led),.scan(scan));
endmodule
框图:
5. 设计应用工程,LED数码管动态显示“1,2,3,4”,完成Verilog HDL设计;分频器:
module div24(clk,rst,sclk);
input rst;
input clk;
output sclk;
wire sclk;
reg [23:0] cnt;
always@(posedge clk)
begin
if(rst==1'b0)
cnt<=24'd0;
else
cnt<=cnt+1;
end
assign sclk=cnt[23];
endmodule
二位计数器:
module cnt2(sclk,rst,cnt);
input sclk;
input rst;
output [1:0] cnt;
reg [1:0] cnt;
always@(posedge sclk)
begin
if (rst==1'b0)
cnt<=2'b00;
else
cnt<=cnt+1;
end
endmodule
二位计数器仿真波形图:
LED译码器:
module ledyima(cnt,led);
input [1:0] cnt;
output [10:0] led;
reg [10:0] led;
always@(cnt)
begin
case(cnt)
2'b00:led=11'b00010000110;
2'b01:led=11'b00101011011;
2'b10:led=11'b010********;
2'b11:led=11'b10001100110;
endcase
end
endmodule
LED译码器仿真波形图:
顶层电路Verilog HDL代码:
module led_0(clk,rst,led);
input clk;
input rst;
output [10:0] led;
wire sclk;
wire [1:0] cnt;
div24 u0(.clk(clk),.rst(rst),.sclk(sclk));
cnt2 u1(.sclk(sclk),.rst(rst),.cnt(cnt));
ledyima u2(.cnt(cnt),.led(led));
endmodule
框图:
五、验收标准
1) 程序运行正常;
2)仿真功能和下载功能正常;
六、扩展与改进。

相关文档
最新文档