Verilog程序(汉字点阵显示29365

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国石油大学

数电课程设计报告题目:

学院:

班级:

姓名:

学号:

日期: 2012 年 12月

摘要

设计要求:

利用EDA/SOPC 实验开发平台提供的16*16点阵LED以及EPC235核心板,实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。

(1)手动生成“中国石油大学”这6个汉字在16*16点阵LED 上的6个字模(即控制某些LED亮,某些LED灭)。

(2)实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。

(3)拓展要求:自主设计(如控制循环速度,方向)。

关键词:

扫描分频,控制速度,点阵,点阵汉字显示,

设计原理及方案:

1、16*16点阵LED部结构如下图所示。

2、总体设计框图:

3、各子模块的设计:

(1)、分频,扫描:

module fenpin (clk_50Mhz,clk_4hz,k2,k3);

input clk_50Mhz,k2,k3; // 输入端口声明

output clk_4hz; // 输出端口声明reg[24:0] count,ccount;

reg clk_4hz;

always (posedge clk_50Mhz)

begin

if ((k2==0) && (k3==0))

ccount<=500000000;

if ((k2==0) && (k3==1))

ccount<=100000000;

if ((k2==1) && (k3==0))

ccount<=50000000;

if ((k2==1) && (k3==1))

ccount<=10000000;

if(count

begin

count<=count+1'b1;

clk_4hz<=0;

end

else

begin

count<=0;

clk_4hz<=1;

end

end

endmodule

生成模块:

(2)扫描,控制速度:

module sudu(clk,cnt);

input clk;

output cnt;

reg cnt;

reg[15:0] p;

always(posedge clk)

begin

if(p==16'b1111111111111111)

begin

cnt<=1'b1;

p<=16'b0000000000000000;

end

else

begin

p<=p+16'b1;

cnt<=1'b0;

end

end

endmodule

生成模块:

(3)显示汉字模块:

module xianshi(clk2,clk3,row,con,k); input clk2,clk3,k;

output[15:0] row;

output[15:0] con;

reg[15:0] row;

reg[15:0] con;

integer cnt,b;

reg[15:0] r[111:0];

initial

begin

// 中

r[0]<=16'b 1111111111111111;

r[1]<=16'b 1111111111111111;

r[2]<=16'b 1111100000011111;

r[3]<=16'b 1111101111011111;

r[4]<=16'b 1111101111011111;

r[5]<=16'b 1111101111011111;

r[6]<=16'b 1111101111011111;

r[7]<=16'b 1000000000000001;

r[8]<=16'b 1111101111011111;

r[9]<=16'b 1111101111011111;

r[10] <=16'b 1111101111011111; r[11] <=16'b 1111101111011111; r[12] <=16'b 1111100000011111; r[13] <=16'b 1111111111111111; r[14] <=16'b 1111111111111111; r[15] <=16'b 1111111111111111;

// 国

r[16] <=16'b 1111111111111111; r[17] <=16'b 1111111111111111; r[18] <=16'b 1100000000000111; r[19] <=16'b 1101111111110111; r[20] <=16'b 1101011011010111; r[21] <=16'b 1101011011010111; r[22] <=16'b 1101011011010111; r[23] <=16'b 1101000000010111; r[24] <=16'b 1101011011010111;

r[26] <=16'b 1101001011010111; r[27] <=16'b 1101011011010111; r[28] <=16'b 1101111111110111; r[29] <=16'b 1100000000000111; r[30] <=16'b 1111111111111111; r[31] <=16'b 1111111111111111;

// 石

r[32] <=16'b 1111111111111111; r[33] <=16'b 1111111111111111; r[34] <=16'b 1110111111110111; r[35] <=16'b 1111011111110111; r[36] <=16'b 1111101111110111; r[37] <=16'b 1111110111110111; r[38] <=16'b 1110100001110111; r[39] <=16'b 1110111100110111; r[40] <=16'b 1110111101010111; r[41] <=16'b 1110111101100111; r[42] <=16'b 1110111101100111; r[43] <=16'b 1110000001110111;

相关文档
最新文档