LED数码管驱动电路设计

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

深圳职业技术学院

Shenzhen Polytechnic

实训(验)报告

Training Item

实训2 LED 数码管驱动电路设计与实现

一、实训设备、工具与要求

1.实训设备、工具

PC 电脑、FPGA 开发系统、Quartus II 应用软件。 2.实训要求

⑴ 每位学生独立完成项目的制作并撰写实训报告;

⑵ 项目制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并登记成绩;

⑶ 项目经指导教师验收后,由学生将全部实验设备整理后交指导教师验收并登记; ⑷ 实训结束后1周内交实训报告。 二、实训涉及的基本知识 1.请画出七段LED 数码管显示电路的输入输出结构

2.列表描述共阴七段数码显示电路的输入输出关系和显示结果?

三、实训综合电路(七段译码器电路框图)

四、实训步骤

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;

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

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'd2*******)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

功能仿真图

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、4V erilog HDL设计;

相关文档
最新文档