1 / 8
文档名称:

16x16点阵显示实验报告.doc

格式:doc   大小:170KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

16x16点阵显示实验报告.doc

上传人:xunlai783 2018/2/12 文件大小:170 KB

下载得到文件列表

16x16点阵显示实验报告.doc

文档介绍

文档介绍:16*16点阵显示实验报告
实验目的
(1)学****点阵显示字符的基本原理。
(2)掌握用数控分频控制速度,实现点阵扫描的基本方式。
(3)会使用Quartus II软件中的Verilog HDL语言实现点真的行列循环显示。
二、实验设备与器件
Quartus II 软件、EP2C8Q208C8实验箱
实验方案设计
实验可实现的功能
可通过编写Verilog HDL语言,实现点阵的行列交替扫描。先是行扫描,扫描间隔为1s,16行都扫描完之后开始列扫描,扫描间隔仍然为1s,16列扫描完之后,行继续扫描,依次循环。
点阵基本知识
16*16扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴。本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。
系统工作原理
本系统用了两个模块,,,。
系统功能图示
通过流程图可以看到,体统是先将试验箱的50MHz时钟信号分频为1s,因为要实现16*16的点阵扫描,所以用一个16s的计时器计时,每经过16s行扫描与列扫描的状态转换一次,通过点阵显示出来。
模块化程序设计
(1)点阵显示顶层程序设计
module dianzhen (clk50mhz,row,sel0,sel1,sel2,sel3,line);
input clk50mhz; //实验箱提供50MHz
时钟信号
output sel0,sel1,sel2,sel3; //设置引脚选通点阵
output reg [15:0] row; //行
output reg [3:0] line; //列
wire [15:0] row1,row2;
wire [3:0] line1,line2;
reg [24:0] cnt=0; //1Hz计数子
reg [4:0] cnt1=0; //16s计数子
assign sel0=1'b0;
assign sel1=1'b1;
assign sel2=1'b0;
assign sel3=1'b0;
always@(posedge clk50mhz)
begin
t>=25'd50000000)
begin
cnt<=25'b0; //1Hz计时器
cnt1<=cnt1+1; //16s计时器
end
else
cnt<=cnt+1;
end
hangsaomiao u1(.clk50mhz(clk50mhz),.row(row1),.line(line1));
liesaomiao u2(.clk50mhz(clk50mhz),.row(row2),.line(line2));
always@(*)
t1<=5'd15)
begin
row<=row1; //行扫描