LED数码管驱动电路设计
时间:2026-01-20
时间:2026-01-20
LED数码管驱动电路设计
深圳职业技术学院
Shenzhen Polytechnic
实训(验)报告
Training Item
实训2 LED数码管驱动电路设计与实现
一、实训设备、工具与要求
1.实训设备、工具
PC电脑、FPGA开发系统、Quartus II应用软件。 2.实训要求
⑴ 每位学生独立完成项目的制作并撰写实训报告;
⑵ 项目制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并登记成绩;
⑶ 项目经指导教师验收后,由学生将全部实验设备整理后交指导教师验收并登记; ⑷ 实训结束后1周内交实训报告。 二、实训涉及的基本知识 1.请画出七段LED数码管显示电路的输入输出结构
2.列表描述共阴七段数码显示电路的输入输出关系和显示结果?
LED数码管驱动电路设计
三、实训综合电路(七段译码器电路框图)
LED数码管驱动电路设计
四、实训步骤
1. 阅读Altera CyclongII 开发系统用户手册,画出七段数码管的电路图和连接引脚。
module qiduan(data_in,data_out); input [3:0] data_in;
output [6:0] data_out; reg [6:0] data_out; always@(data_in) begin
case(cnt)
4'b0000:data_out<=7'b0111111; 4'b0001:data_out<=7'b0000110; 4'b0010:data_out<=7'b1011011; 4'b0011:data_out<=7'b1001111;
4'b0100:data_out<=7'b1100110; 4'b0101:data_out<=7'b1101101; 4'b0110:data_out<=7'b1111100; 4'b0111:data_out<=7'b0000111; 4'b1000:data_out<=7'b1111111; 4'b1001:data_out<=7'b1100111;
LED数码管驱动电路设计
default:data_out<=7'b0000000; endcase end
endmodule
3. 设计应用工程,四个数码管依次静态显示“1”、“2”、“3”、“4”;
module ledjt(rst,scan,led); input rst;
output [3:0] scan; output[6:0] led;
reg [3:0] scan;reg[6:0] led; reg state; always@(rst) begin
if(rst==1'b0) state<=2'b00; else state<=state+1;
end
always@(state) begin case(state)
2'b00:scan=4'b0001; 2'b01:scan=4'b0010; 2'b10:scan=4'b0100; 2'b11:scan=4'b1000; endcase
end
always@(scan) begin case(scan)
4'b0001:led=7'b0000110; 4'b0010:led=7'b1011011; 4'b0100:led=7'b1001111; 4'b1000:led=7'b1100110; default:led=7'b0111111;
endcase end endmodule
LED数码管驱动电路设计
4. 设计应用工程,单个数码管显示从模10计数功能; 程序设计:
1、 分频器模块
module div(clk,rst,clk_1hz); input clk,rst; output clk_1hz; reg clk_1hz;
reg [24:0] cnt;
always@(posedge clk or negedge rst) begin
if(rst==1'b0)begin
cnt<=0; clk_1hz<=1'b0; end
else if(cnt==25'd26214399)begin cnt<=0;
clk_1hz<=~clk_1hz; end else
cnt<=cnt+1'b1;
end endmodule
2、 计数器模块
module cnt10(clk_1hz,cnt,rst); input clk_1hz,rst; output [3:0] cnt;
reg [3:0] cnt;
always@(posedge clk_1hz or negedge rst) begin
if(rst==1'b0) cnt<=4'b0000; else if(cnt==9) cnt<=4'b0000; else cnt<=cnt+1'b1; end endmodule 功能仿真图
LED数码管驱动电路设计
3、 LED译码器模块 module qiduan(cnt,data_out); input [3:0] cnt;
output [10:0] data_out; reg [10:0] data_out; always@(cnt) begin
case(cnt)
4'b0000:data_out<=11'b00010111111; 4'b0001:data_out<=11'b00010000110; 4'b0010:data_out<=11'b00011011011; 4'b0011:data_out<=11'b00011001111; 4'b0100:data_out<=11'b00011100110; 4'b0101:data_out<=11'b00011101101; 4'b0110:data_out<=11'b00011111100; 4'b0111:data_out<=11'b00010000111; 4'b1000:data_out<=11'b00011111111; 4'b1001:data_out<=11'b00011100111; default:data_out<=11'b00000000000; endcase end endmodule
4、顶层模块
module led_1(rst,clk,led); input rst,clk; output [10:0]led; wire [10:0]led; wire clk_1hz; wire [3:0] cnt;
div u0(.clk(clk),.rst(rst),.clk_1hz(clk_1hz)); cnt10 u1(.clk_1hz(clk_1hz),.cnt(cnt),.rst(rst)); qiduan u2(.cnt(cnt),.data_out(led)); endmodule
5. 设计应用工程,LED数码管动态显示1、2、3、4Verilog HDL设计;
LED数码管驱动电路设计
程序设计:
1、计数器模块
module ledtest(clk,rst,scanclk); input clk,rst;
output scanclk; wire scanclk; reg [23:0] cnt;
always@(posedge clk or negedge rst) begin if(rst==1'b0)
cnt<=24'd0; else
cnt<=cnt+1;
end
assign scanclk=cnt[23]; endmodule
2、 LED译码器模块
module led2(rst,scanclk,led,scan); input rst,scanclk; output [6:0] led; output [3:0] scan; reg [6:0] led; reg [3:0] scan;
reg [1:0] state;
always@(posedge scanclk or negedge rst) begin if(rst==1'b0)
state<=2'b00;
else state<=state+1; end
always@(state) begin case(state)
2'b00:scan=4'b0001; 2'b01:scan=4'b0010; 2'b10:scan=4'b0100;
2'b11:scan=4'b1000; endcase
end
always@(scan) begin case(scan)
4'b0001:led=7'b0000110; 4'b0010:led=7'b1011011; 4'b0100:led=7'b1001111;
LED数码管驱动电路设计
4'b1000:led=7'b1100110; default:led=7'b0111111;
endcase end endmodule 功能仿真图
3、 顶层模块
module ledtop(clk,rst,led,scan); input clk,rst; output [6:0] led; output [3:0] scan; wire [6:0] led; wire [3:0] scan; wire scanclk;
ledtest u0(.clk(clk),.rst(rst),.scanclk(scanclk));
led2 u2(.rst(rst),.scanclk(scanclk),.led(led),.scan(scan)); endmodule
五、验收标准
1) 程序运行正常;
2)仿真功能和下载功能正常; 六、扩展与改进
…… 此处隐藏:1945字,全部文档内容请下载后查看。喜欢就下载吧 ……