数字电子技术课程设计报告LED矩形点阵
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【设计题目】LED点阵循环显示设计
【设计任务及要求】
利用EDA/SOPC试验开发平台提供的16*16点阵LED以及EP2C35核心板,实现循环显示设定内容,显示内容为自己的“学号名字”。(1)手动生成“学号XX”这几个字符在16*16点阵LED上的字摸(即控制某些LED亮,某些LED灭,可下载字摸软件帮助确定)。(2)实现循环显示“学号XX”,并要求左移
(3)扩展要求:自主设计(如控制循环速度,方向等)。
设计原理及方案:
1、16*16点阵LED内部结构如下图所示。
2、总体设计框图。
FPGA
3、各子模块的设计:
(1)分频,扫描
module saomiao (clk_50Mhz,clk_1k); input clk_50Mhz;
output clk_1k;
reg[24:0] t;
reg clk_1k;
always (posedge clk_50Mhz)
begin
if (t<25000)
begin
t<=t+1;
clk_1k<=0;
end
else if(t<50000)
begin
t<=t+1;
clk_1k<=1;
end
else t=0;
end
endmodule
封装生成的模块如下:
(2)分频,移动,控制速度
module yidong (clk_50Mhz,clk_fourhz,k2,k3);
input clk_50Mhz,k2,k3; // 输入端口声明output clk_fourhz; // 输出端口声明
reg[24:0] count,ccount;
reg clk_fourhz;
always (posedge clk_50Mhz)
begin
if ((k2==0) && (k3==0))
ccount<=50000000;
if ((k2==0) && (k3==1)) ccount<=100000000;
if ((k2==1) && (k3==0)) ccount<=5000000;
if ((k2==1) && (k3==1)) ccount<=10000000;
if(count begin count<=count+1'b1; clk_fourhz<=0; end else begin count<=0; clk_fourhz<=1; end end endmodule 封装生成的模块如下: (3)显示,控制输出,控制左右移动module xianshi(clk_saomiao,clk_pingyi,row,con,k); input clk_saomiao,clk_pingyi,k; output[15:0] row; output[15:0] con; reg[15:0] row; reg[15:0] con; integer t=0,b=0; reg[15:0] r[111:0]; initial begin // 学号: r[0]<=16'b1111_0111_1011_1111; r[1]<=16'b1111_0111_1101_1111; r[2]<=16'b1111_0000_0001_1111; r[3]<=16'b1111_0111_1111_1111; r[4]<=16'b1111_0111_1111_1111; r[5]<=16'b1111_1111_1111_1111; r[7]<=16'b1111_0111_1101_1111; r[8] <=16'b1111_0111_1101_1111; r[9]<=16'b1111_1000_0011_1111; r[10]<=16'b1111_1111_1111_1111; r[11] <=16'b1111_1111_1111_1111; r[12] <=16'b1111_1000_0011_1111; r[13] <=16'b1111_0111_1101_1111; r[14]<=16'b1111_0111_1101_1111; r[15] <=16'b1111_1000_0011_1111; //"100" r[16] <=16'b1111_0111_1011_1111; r[17] <=16'b1111_0111_1101_1111; r[18] <=16'b1111_0000_0001_1111; r[19] <=16'b1111_0111_1111_1111; r[20] <=16'b111_0111_1111_1111; r[21] <=16'b1111_1111_1111_1111; r[22] <=16'b1111_0011_1011_1111; r[23] <=16'b1111_0101_1101_1111; r[24]<=16'b1111_0110_1101_1111; r[25]<=16'b1111_0111_0011_1111; r[26]<=16'b1111_1111_1111_1111;