LED数码管驱动电路
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
1 实训6:LED数码管驱动电路设计与实现
深圳职业技术学院
Shenzhen Polytechnic
实训(验)报告
Training Item
编制部门:电信学院 编制人:温国忠 学生姓名: 王伟科 编制日期:2011.8.20 项目编号 项目名称 LED数码管驱动电路训练对象 学时 06 微电子技术专业 4 Item No. Item 设计 Class Time 课程名称 教材 可编程逻辑器件应用 CPLD/FPGA应用技术 Course Textbook
1.熟练使用Quartus II,掌握整个CPLD/FPGA开发
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
, 目 的 2.掌握LED数码管静态显示的Verilog HDL设计方法, Objective 3,掌握LED数码管动态显示的Verilog HDL设计方法
实训2 LED数码管驱动电路设计与实现
一、实训设备、工具与
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
1(实训设备、工具
PC电脑、FPGA开发系统、Quartus II应用软件。
2(实训要求
? 每位学生独立完成项目的制作并撰写实训报告;
? 项目制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并登记成绩;
? 项目经指导教师验收后,由学生将全部实验设备整理后交指导教师验收并登记;
? 实训结束后1周内交实训报告。
二、实训涉及的基本知识
1.请画出七段LED数码管显示电路的输入输出结构
2.列表描述共阴七段数码显示电路的输入输出关系和显示结果,
2 实训6:LED数码管驱动电路设计与实现
七段数码管显示电路输入 七段数码管显示电路输出 LED显示字形 in3 in2 in1 in0 gfedcba
0000 0111111 0
0001 0000110 1
0010 1011011 2
0011 1001111 3
0100 1100110 4
0101 1101101 5
0110 1111100 6
0111 0000111 7
1000 1111111 8
1001 1100111 9
三、实训综合电路(七段译码器电路框图)
3 实训6:LED数码管驱动电路设计与实现
四、实训步骤
1. 阅读Altera CyclongII 开发系统用户手册,画出七段数码管的电路图和连接引脚。
信clk led[6] led[5] led[4] led[3] led[2] led[1] led[0] rst scan[3] scan[2] scan[1] scan[0]
号
引PIN_W12 PIN_W7 PIN_AA9 PIN_Y9 PIN_AB8 PIN_AA7 PIN_V9 PIN_W9 PIN_AA3 PIN_AB9 PIN_AA8 PIN_W8 PIN_V8
脚
值
2.设计应用工程,将十进制的0-9的BCD码转换成七段数码管的显示码(组合逻辑电路)
十进制数码 0 1 2 3 4 5 6 7 8 9
二进制码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
程序设计:
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;
4 实训6: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
5 实训6: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
功能仿真图
6 实训6: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设计;
7 实训6: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;
8 实训6: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)仿真功能和下载功能正常;
六、扩展与改进