1、实训 6:LED 数码管驱动电路设计与实现 1项目编号Item No. 06项目名称ItemLED 数码管驱动电路设计训练对象Class 微电子技术专业学时Time 4课程名称Course 可编程逻辑器件应用教材Textbook CPLD/FPGA 应用技术目 的Objective1.熟练使用 Quartus II,掌握整个 CPLD/FPGA 开发流程;2.掌握 LED 数码管静态显示的 Verilog HDL 设计方法;3掌握 LED 数码管动态显示的 Verilog HDL 设计方法实训 2 LED 数码管驱动电路设计与实现一、实训设备、工具与要求1实训设备、工具PC 电脑、FPGA 开
2、发系统、Quartus II 应用软件。2实训要求 每位学生独立完成项目的制作并撰写实训报告; 项目制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并登记成绩; 项目经指导教师验收后,由学生将全部实验设备整理后交指导教师验收并登记; 实训结束后 1 周内交实训报告。二、实训涉及的基本知识1.请画出七段 LED 数码管显示电路的输入输出结构七段 LED数码管显示电路in0in1in2in3abcdefgabcdef gdp2.列表描述共阴七段数码显示电路的输入输出关系和显示结果?七段数码管显示电路输入 七段数码管显示电路输出in3 in2 in1 in0 gfedcbaLED 显示字
3、形0000 0111111 0实训 6:LED 数码管驱动电路设计与实现 20001 0000110 10010 1011011 20011 1001111 30100 1100110 40101 1101101 50110 1111100 60111 0000111 71000 1111111 81001 1100111 9三、实训综合电路(七段译码器电路框图)动态显示电路框图:模 10 计数单个数码管显示电路框图:四、实训步骤1. 阅读 Altera CyclongII 开发系统用户手册,画出七段数码管的电路图和连接引脚。信号clk rst led6 led5 led4 led3 led2
4、 led1 led0 scan3 scan2 scan1 scan0引脚89 90 73 74 75 83 85 86 87 97 100 102 104值 86 87 73 74 75 153 81 82 83 96 98 100 1022.设计应用工程,将十进制的 0-9 的 BCD 码转换成七段数码管的显示码(组合逻辑电路)七段 LED 数码管显示电路的 Verilog 代码:module qiduan_0(cnt,led);input 3:0cnt;实训 6:LED 数码管驱动电路设计与实现 3output 6:0led;reg 6:0led;always(cnt)begincase(
5、cnt)4b0001:led=7b0000110;4b0010:led=7b1011011;4b0011:led=7b1001111;4b0100:led=7b1100110;4b0101:led=7b1101101;4b0110:led=7b1111100;4b0111:led=7b0000111;4b1000:led=7b1111111;4b1001:led=7b1101111;4b1010:led=7b1110111;default:led=7b0111111;endcaseendendmodule七段 LED 数码管显示电路仿真波形图:3. 设计应用工程,四个数码管依次静态显示“1”
6、、 “2”、 “3”、 “4”; module led_1(a,led);input 1:0a;output 10:0 led;reg 10:0 led;always(a)beginif(a=2b00)led=11b00010000110;else if(a=2b01)led=11b00101011011;实训 6:LED 数码管驱动电路设计与实现 4else if(a=2b10)led=11b01001001111;elseled=11b10001100110;endendmodule4. 设计应用工程,单个数码管完成从模 10 计数功能;分频器:module fenpin25(clk,rs
7、t,clk_1hz);input clk;input rst;output clk_1hz;reg clk_1hz;reg 23:0 cnt;always(posedge clk or posedge rst)beginif(rst=1b1)cnt=24d0;else if(cnt=13107119)begincnt=24d0;clk_1hz=clk_1hz;endelsecnt=cnt+1;endendmodule实训 6:LED 数码管驱动电路设计与实现 5十进制计数器:module cnt10(rst,clk,cnt);input rst,clk;output 3:0cnt;reg 3:
8、0cnt;always(posedge clk)beginif(rst=1b0)cnt=4b000;else if(cnt=4d9)cnt=4b000;elsecnt=cnt+1;endendmodule十进制计数器仿真波形图:LED 译码器:module qiduan(cnt,led,scan);input 3:0cnt;output 6:0led;output 3:0scan;reg 6:0led;wire 3:0scan;assign scan=4b0001;always(cnt)begincase(cnt)4b0001:led=7b0000110;4b0010:led=7b101101
9、1;4b0011:led=7b1001111;4b0100:led=7b1100110;4b0101:led=7b1101101;4b0110:led=7b1111100;4b0111:led=7b0000111;实训 6:LED 数码管驱动电路设计与实现 64b1000:led=7b1111111;4b1001:led=7b1101111;4b1010:led=7b1110111;default:led=7b0111111;endcaseendendmoduleLED 译码器仿真波形图:顶层电路 Verilog HDL 代 码:module cnt10led(rst,clk,led,scan
10、);input rst;input clk;output 6:0led;output 3:0scan;wire 3:0cnt;wire 6:0led;wire 3:0scan;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 设计;实训 6:LED 数码管驱动电
11、路设计与实现 7分频器:module div24(clk,rst,sclk);input rst;input clk;output sclk;wire sclk;reg 23:0 cnt;always(posedge clk)beginif(rst=1b0)cnt=24d0;elsecnt=cnt+1;endassign sclk=cnt23;endmodule二位计数器:module cnt2(sclk,rst,cnt);input sclk;input rst;output 1:0cnt;reg 1:0cnt;always(posedge sclk)beginif (rst=1b0)cnt
12、=2b00;elsecnt=cnt+1;endendmodule二位计数器仿真波形图:实训 6:LED 数码管驱动电路设计与实现 8LED 译码器:module ledyima(cnt,led);input 1:0cnt;output 10:0 led;reg 10:0 led;always(cnt)begincase(cnt)2b00:led=11b00010000110;2b01:led=11b00101011011;2b10:led=11b01001001111;2b11:led=11b10001100110;endcaseendendmoduleLED 译码器仿真波形图:顶层电路 Verilog HDL 代 码:module led_0(clk,rst,led);input clk;input rst;output 10:0 led;wire sclk;wire 1:0cnt;div24 u0(.clk(clk),.rst(rst),.sclk(sclk);cnt2 u1(.sclk(sclk),.rst(rst),.cnt(cnt);ledyima u2(.cnt(cnt),.led(led);endmodule框图:实训 6:LED 数码管驱动电路设计与实现 9五、验收标准1) 程序运行正常;2)仿真功能和下载功能正常;六、扩展与改进