1、中国石油大学的点阵循环显示 中国石油大学课 程 设 计 报 告题 目: “中国石油大学”点阵循环显示 学 院: 地球科学与技术学院 班 级: 姓 名: 学 号: 日期: 2012 年 1 月 摘 要设计要求: 利用EDA/SOPC 实验开发平台提供的16*16点阵LED以及EPC235核心板,实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。 (1)手动生成“中国石油大学”这6个汉字在16*16点阵LED上的6个字模(即控制某些LED亮,某些LED灭)。 (2)实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。 (3)拓展要求:自主设计(如控制循环速度,方向)。关键词:扫描
2、分频,控制速度,点阵,点阵汉字显示,设计原理及方案:1、16*16点阵LED内部结构如下图所示。2、总体设计框图:3、各子模块的设计:(1)、分频,扫描:module fenpin (clk_50Mhz,clk_4hz,k2,k3); input clk_50Mhz,k2,k3; / 输入端口声明output clk_4hz; / 输出端口声明reg24:0 count,ccount;reg clk_4hz;always (posedge clk_50Mhz)beginif (k2=0) & (k3=0)ccount=500000000;if (k2=0) & (k3=1)ccount=100
3、000000;if (k2=1) & (k3=0)ccount=50000000;if (k2=1) & (k3=1)ccount=10000000;if(countccount)begincount=count+1b1;clk_4hz=0;endelsebegincount=0;clk_4hz=1;endendendmodule生成模块:(2)扫描,控制速度:module sudu(clk,cnt);input clk;output cnt;reg cnt;reg15:0 p;always(posedge clk)begin if(p=16b1111111111111111) begin c
4、nt=1b1; p=16b0000000000000000; end else begin p=p+16b1; cnt=1b0; end endendmodule生成模块:(3)显示汉字模块: module xianshi(clk2,clk3,row,con,k);input clk2,clk3,k;output15:0 row;output15:0 con;reg15:0 row;reg15:0 con;integer cnt,b;reg15:0 r111:0;initial begin / 中 r0 =16b 1111111111111111;r1 =16b 111111111111111
5、1;r2 =16b 1111100000011111;r3 =16b 1111101111011111;r4 =16b 1111101111011111;r5 =16b 1111101111011111;r6 =16b 1111101111011111;r7 =16b 1000000000000001;r8 =16b 1111101111011111;r9 =16b 1111101111011111;r10 =16b 1111101111011111;r11 =16b 1111101111011111;r12 =16b 1111100000011111;r13 =16b 11111111111
6、11111;r14 =16b 1111111111111111; r15 =16b 1111111111111111;/ 国 r16 =16b 1111111111111111;r17 =16b 1111111111111111;r18 =16b 1100000000000111;r19 =16b 1101111111110111;r20 =16b 1101011011010111;r21 =16b 1101011011010111;r22 =16b 1101011011010111;r23 =16b 1101000000010111;r24 =16b 1101011011010111;r25
7、 =16b 1101011011010111;r26 =16b 1101001011010111;r27 =16b 1101011011010111;r28 =16b 1101111111110111;r29 =16b 1100000000000111;r30 =16b 1111111111111111;r31 =16b 1111111111111111;/ 石 r32 =16b 1111111111111111;r33 =16b 1111111111111111;r34 =16b 1110111111110111;r35 =16b 1111011111110111;r36 =16b 1111
8、101111110111;r37 =16b 1111110111110111;r38 =16b 1110100001110111;r39 =16b 1110111100110111;r40 =16b 1110111101010111;r41 =16b 1110111101100111;r42 =16b 1110111101100111;r43 =16b 1110000001110111;r44 =16b 1111111111110111;r45 =16b 1111111111110111;r46 =16b 1111111111111111;r47 =16b 1111111111111111;/
9、 油 r48 =16b 1111111111111111;r49 =16b 1111111111111111;r50 =16b 1111111011101111;r51 =16b 1000000111011111;r52 =16b 1111101110111111;r53 =16b 1111111111111111;r54 =16b 1100000001111111;r55 =16b 1101101101111111;r56 =16b 1101101101111111;r57 =16b 1100000000000111;r58 =16b 1101101101111111;r59 =16b 11
10、01101101111111;r60 =16b 1100000001111111;r61 =16b 1111111111111111;r62 =16b 1111111111111111;r63 =16b 1111111111111111;/ 大 r64 =16b 1111111111111111;r65 =16b 1101111111111111;r66 =16b 1110111111111111;r67 =16b 1110111110111111;r68 =16b 1111011110111111;r69 =16b 1111101110111111;r70 =16b 111111001011
11、1111;r71 =16b 1111111100001111;r72 =16b 1111110010111111;r73 =16b 1111101110111111;r74 =16b 1111011110111111;r75 =16b 1110111110111111;r76 =16b 1110111111111111;r77 =16b 1101111111111111;r78 =16b 1111111111111111;r79 =16b 1111111111111111;/ 学 r80 =16b 1111111111111111;r81 =16b 1111111111111111;r82 =
12、16b 1111111101111111;r83 =16b 1111011110111111;r84 =16b 1111011111011101;r85 =16b 1111011011010011;r86 =16b 1011011011011101;r87 =16b 1000001011010011;r88 =16b 1111010011011111;r89 =16b 1111011011000111;r90 =16b 1111011111011001;r91 =16b 1111011101011111;r92 =16b 1111111110011111;r93 =16b 1111111111
13、111111;r94 =16b 1111111111111111;r95 =16b 1111111111111111;/ 中 r96 =16b 1111111111111111;r97 =16b 1111111111111111;r98 =16b 1111100000011111;r99 =16b 1111101111011111;r100 =16b 1111101111011111;r101 =16b 1111101111011111;r102 =16b 1111101111011111;r103 =16b 1000000000000001;r104 =16b 111110111101111
14、1;r105 =16b 1111101111011111;r106 =16b 1111101111011111;r107 =16b 1111101111011111;r108 =16b 1111100000011111;r109 =16b 1111111111111111;r110 =16b 1111111111111111; r111 =16b 1111111111111111;end always(posedge clk3)begin if (k=0) begin if (b=95) b=0; else b=b+1; end else begin if (b=0) b=95; else b
15、=b-1; end endalways(posedge clk2)begin if(cnt=15) begin cnt=0; end else cnt=cnt+1; case(cnt)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_000
16、0;7: con=16b0000_0000_1000_0000;8: con=16b0000_0001_0000_0000;9: con=16b0000_0010_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/行使能if (k=0)be
17、gin case(cnt) 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: row=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; endcaseendelse begin case(cnt) 0: row=rb-0; 1: row=rb-1; 2: row=rb
18、-2; 3: row=rb-3; 4: row=rb-4; 5: row=rb-5; 6: row=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; endcaseendendendmodule 生成模块:电路的仿真:分析与总结:这次数点实习我去测试了俩次,第一次测试时,什么现象都没有,我回去后反复检查,程序都没有问题,后来我觉得可能是我生成模块时,全都放在一个文件夹里,混乱了。所以我又重新生成模块,规规矩矩的连了一遍,第二次去测试时,成功了。看着自己实验出来的效果真是特别的高兴。通过这次课程设计,我学会了基本的的quartus操作,会自己编写简单的verilog程序。最受益的是学会了如何将自己所学过的知识和查找的资料有机的融合在一起。真是受益匪浅。参考资料: 1 Verilog数字系统设计教程(第2版)(夏宇闻 ,北京航空航天大学出版) 2 Verilog HDL入门(第3版) 3 数字电子技术基础(刘润华,于云华,中国石油大学出版社,2008)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1