《数字电子技术课程设计报告材料LED矩形点阵.doc》由会员分享,可在线阅读,更多相关《数字电子技术课程设计报告材料LED矩形点阵.doc(14页珍藏版)》请在三一办公上搜索。
1、word【设计题目】LED点阵循环显示设计【设计任务与要求】 利用EDA/SOPC试验开发平台提供的16*16点阵LED以与EP2C35核心板,实现循环显示设定容,显示容为自己的“学号名字。(1) 手动生成“学号这几个字符在16*16点阵LED上的字摸即控制某些LED亮,某些LED灭,可下载字摸软件帮助确定。(2) 实现循环显示“学号,并要求左移(3) 扩展要求:自主设计如控制循环速度,方向等。设计原理与方案:1、16*16点阵LED部结构如如下图所示。2、 总体设计框图。计数器列数据列选择系统时钟输入输出输出16*16点阵 FPGA3、 各子模块的设计:1分频,扫描module saomia
2、o (clk_50Mhz,clk_1k); input clk_50Mhz; output clk_1k; reg24:0 t;reg clk_1k;always (posedge clk_50Mhz)begin if (t25000) begin t=t+1; clk_1k=0; end else if(t50000) begin t=t+1; clk_1k=1; end else t=0;endendmodule封装生成的模块如下:2分频,移动,控制速度module yidong (clk_50Mhz,clk_fourhz,k2,k3); input clk_50Mhz,k2,k3; /
3、输入端口声明output clk_fourhz; / 输出端口声明reg24:0 count,ccount;reg clk_fourhz;always (posedge clk_50Mhz)beginif (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(countccount)begincount=count+1b1;clk_fourhz=0;endelsebegincou
4、nt=0;clk_fourhz=1;endendendmodule封装生成的模块如下:3显示,控制输出,控制左右移动module xianshi(clk_saomiao,clk_pingyi,row,con,k);input clk_saomiao,clk_pingyi,k;output15:0 row;output15:0 con;reg15:0 row;reg15:0 con;integer t=0,b=0;reg15:0 r111:0;initial begin/ 学号:r0=16b1111_0111_1011_1111;r1=16b1111_0111_1101_1111; r2=16b
5、1111_0000_0001_1111;r3=16b1111_0111_1111_1111;r4=16b1111_0111_1111_1111;r5=16b1111_1111_1111_1111;r6=16b1111_0111_0011_1111;r7=16b1111_0111_1101_1111; r8 =16b1111_0111_1101_1111;r9=16b1111_1000_0011_1111;r10=16b1111_1111_1111_1111;r11 =16b1111_1111_1111_1111;r12 =16b1111_1000_0011_1111;r13 =16b1111_
6、0111_1101_1111;r14=16b1111_0111_1101_1111;r15 =16b1111_1000_0011_1111; /100r16 =16b1111_0111_1011_1111;r17 =16b1111_0111_1101_1111;r18 =16b1111_0000_0001_1111;r19 =16b1111_0111_1111_1111;r20 =16b111_0111_1111_1111;r21 =16b1111_1111_1111_1111;r22 =16b1111_0011_1011_1111;r23 =16b1111_0101_1101_1111; r
7、24=16b1111_0110_1101_1111;r25=16b1111_0111_0011_1111; r26=16b1111_1111_1111_1111;r27=16b1111_1111_1111_1111;r28=16b1111_1011_0011_1111;r29=16b1111_0111_1101_1111;r30=16b1111_0111_1101_1111;r31=16b1111_1001_0011_1111; /123r32 =16b1111_1111_1111_1111;r33=16b1111_1111_1111_1111;r34=16b1110_1111_1111_11
8、11;r35=16b1110_1111_1110_1111;r36=16b1110_1111_1111_0111;r37=16b1110_0000_0000_0111;r38=16b1110_1111_1111_1111;r39=16b1110_1111_1111_1111; r40=16b1111_1111_1111_1111;r41 =16b1110_1111_1111_1111; r42 =16b1110_1111_1110_1111;r43 =16b1110_1111_1111_0111;r44 =16b1110_0000_0000_0111;r45 =16b1110_1111_111
9、1_1111;r46 =16b1111_1111_1111_1111; r47 =16b1111_1111_1111_1111; /11/:r48 =16b1111_1111_0110_1111; r49=16b1101_1111_0111_1111; r50=16b1110_1111_0111_1011; r51=16b1111_0111_0111_1011; r52=16b1111_1011_0111_1011; r53=16b1111_1101_0111_1011; r54=16b1111_1110_0111_1010; r55=16b0000_0000_0000_1001; r56 =
10、16b1111_1110_0111_1011;r57 =16b1111_1101_0111_1011; r58 =16b1111_1011_0111_1011; r59 =16b1111_0111_0111_1011; r60 =16b1110_1111_0111_1011; r61 =16b1101_1111_0110_1011; r62 =16b1101_1111_0111_0011; r63 =16b1111_1111_1111_1111; r64=16b1111_1111_0111_1111; r65=16b1111_1111_1011_1111; r66=16b1111_1111_1
11、101_1111; r67=16b0000_0000_0000_1111; r68=16b1111_1111_1111_0000; r69=16b1011_1111_1011_1111; r70=16b1011_1011_1011_0111; r71=16b1011_1011_1011_0111; r72 =16b1011_1011_1011_0111; r73=16b1000_0000_0000_0000; r74=16b1011_1011_1011_0111; r75 =16b1011_1011_1011_0111; r76 =16b1011_1011_1011_0111; r77 =16
12、b1011_1011_1011_0111; r78=16b1011_1111_1011_1111; r79 =16b1111_1111_1111_1111; r80 =16b1111_1111_1111_1111;r81 =16b1011_1101_1111_1111; r82 =16b1100_1110_1111_1111; r83 =16b1111_1111_0111_0111; r84 =16b1111_1111_1011_0111; r85 =16b1110_1111_1101_1111; r86 =16b1001_1111_1110_0111; r87 =16b1111_0000_0
13、000_0000; r88=16b1110_1111_1110_0111; r89=16b1001_1111_1101_0111; r90=16b1111_1111_1011_0111; r91=16b1111_1111_0111_0111; r92=16b1110_1110_1111_0111; r93=16b1001_1101_1111_0111; r94=16b1111_1101_1111_1111; r95=16b1111_1111_1111_1111; r96=16b1111_1111_1111_1111;r97=16b1111_1111_1111_1111; r98=16b1111
14、_1111_1111_1111; r99=16b1111_1111_1111_1111; r100=16b1111_1111_1111_1111; r101=16b1111_1111_1111_1111; r102=16b1111_1111_1111_1111; r103=16b1111_1111_1111_1111; r104 =16b1111_1111_1111_1111; r105=16b1111_1111_1111_1111; r106=16b1111_1111_1111_1111; r107 =16b1111_1111_1111_1111; r108 =16b1111_1111_11
15、11_1111; r109 =16b1111_1111_1111_1111; r110=16b1111_1111_1111_1111; r111 =16b1111_1111_1111_1111; end always(posedge clk_pingyi)begin if (k=0) /k值控制左右移动 begin if (b=95) b=0; else b=b+1; end else begin if (b=0) b=96; else b=b-1; end endalways(posedge clk_saomiao)begin if(t=15) begin t=0; end else t=t
16、+1; case(t)0: con=16b0000_0000_0000_0001;1: con=16b0000_0000_0000_0010;2: con=16b0000_0000_0000_0100;3: con=16b0000_0000_0000_1000;4: con=16b0000_0000_0001_0000;5: con=16b0000_0000_0010_0000;6: con=16b0000_0000_0100_0000;7: con=16b0000_0000_1000_0000;8: con=16b0000_0001_0000_0000;9: con=16b0000_0010
17、_0000_0000;10: con=16b0000_0100_0000_0000;11: con=16b0000_1000_0000_0000;12: con=16b0001_0000_0000_0000;13: con=16b0010_0000_0000_0000;14: con=16b0100_0000_0000_0000;15: con=16b1000_0000_0000_0000; endcase/行使能 case(t) 0: row=rb+0; 1: row=rb+1; 2: row=rb+2; 3: row=rb+3; 4: row=rb+4; 5: row=rb+5; 6: r
18、ow=rb+6; 7: row=rb+7; 8: row=rb+8; 9: row=rb+9; 10: row=rb+10; 11: row=rb+11; 12: row=rb+12; 13: row=rb+13; 14: row=rb+14; 15: row=rb+15; endcaseendendmodule封装生成的模块如下:【电路设计、仿真与实现】(1) 电路设计将封装好的三个模块连接起来。电路如下:(2) 电路仿真扫描模块和移动模块实际上都是分频器,只是分频不一样,前者的分频后频率高看不到很明显地闪烁,后者低控制移动速度便于观察。这里只仿真分频器的功能如下10分频:字体显示模块的仿真
19、如下,由于所给频率太高,分频又太大,仿真不易实现。本仿真的clk2取1ns,clk3取32ns,k取0进展左移。(3) 电路实现 将连接好的电路的输入和输出端分别用对应的FBGA管脚封装起来,便可以在实验室的平台上进展电路的实现了。【分析与讨论】 这次数电课程设计我一共去下载了三次,第一次的时候在那个模版上没有显示,只是看到了列的灯有亮的,回去检查的时候发现是扫描的频率太小了,之前设定的频率只有2Hz,这样的情况下每秒只会显示两列数据,不能得出所需要的显示。将扫描的频率改成10kHz后去下载的时候发现能够正常地循环显示了,这也完成了根本的设计。我中午回去后又对原有程序进展了改写,多加了三个输入
20、端,其中两个输入端用来控制字幕移动的速度,另一个用来控制左右移动,编了一个中午,程序没有错误后,仍然有点忐忑的去下载quartus只能检查错误不能检验功能,而且这是最后一次下载机会了,不过去教师那里下载的时候,模版上正常循环我的学号名字显示,而且通过三个附加的输入端可以控制它的左右移动以与移动速度移动的速度共设定了4个,看到自己所编译的功能都实现后,心情还是很愉悦的。个人感觉整个编译过程中,写自己名字的二进制代码太费劲了。通过这次课程设计,我巩固了之前数电实验课上学的quartus的一些根本操作,并且会自己编写简单的verilog程序了,有些东西和我们之前学过的一些语言很是相像。最重要的还是我自己学会了如何将之前所学过的知识和查找的资料有机的融合在一起,并且得到自己想要的结果。非常感谢教师在我设计过程中的指导。【参考文献】 1 Verilog数字系统设计教程第2版(夏宇闻 ,航空航天大学出版 2 Verilog HDL入门(第3版)3 数字电子技术根底润华,于云华,中国石油大学,200814 / 14