好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

乘16点阵显示实验报告

乘16点阵显示实验报告 本文关键词:点阵,实验,报告,显示

乘16点阵显示实验报告 本文简介:实验报告实验名称:[16×16点阵显示实验]姓名:[]学号:[]指导教师:[]实验时间:[]16×16点阵显示实验1实验要求任务1:将所给程序改正使结果为正显示;任务2:使显示四个字、八个字。2实验原理2.1LED显示器结构和原理1>8*8LED点阵的结构图18*8LED点阵结构图从图1中可以看出,

乘16点阵显示实验报告 本文内容:

实验名称:

[16×16点阵显示实验]

名:

[]

号:

[

]

指导教师:

[]

实验时间:

[

]

16×16点阵显示实验

1

实验要求

任务1:将所给程序改正使结果为正显示;

任务2:

使显示四个字、八个字。

2

实验原理

2.1

LED显示器结构和原理

1>8*8LED点阵的结构

图1

8*8LED点阵结构图

从图1中可以看出,8*8LED点阵共由64个发光二极管组成,每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1高电平,且某一列置0低电平,则相应的发光二极管就亮;因此要用8*8LED点阵来显示一个字符或汉字,只需要根据字符或汉字图形中的线条或笔画,通过点亮多个发光二极管来勾勒出字符或汉字的线条或笔画就行了。

当要比较完美的显示一般的汉字,单个8*8LED点阵模块很难做到,因为LED的点数(也称为像素点)不够多,因此要显示汉字的话,需要多个8*8LED点阵拼合成一个显示屏。假如用4个8*8LED点阵模块拼成16*16的点阵,即能满足一般汉字的显示。但要显示信息量大的图形,则需要n个多个8*8LED点阵,拼装成一个大屏幕才行。

LED点阵显示器最大的特点是亮度高、功耗较低、寿命长、容易控制等,因此它的应用很广,常用在广场、车站、商业广告等室外的显示。

2>8*8LED点阵的封装和引脚规律

64个发光二极管按照行共阳、列共阴4个一组的方式封装成一个模块,这样8*8LED点阵模块就有8行、8列共16个引脚。其实物图如图2,电路模块符号图如图3。

图2

8*8LED点阵实物图

图3

8*8LED点阵符号图

但8*8LED点阵的16个引脚并不是很有规律,千万不要想象成1~8个引脚是行,9~16个引脚是列。而且不同产品的点阵外部引脚排列规律还可能不一样。以下是NLB1388SRA和LDM1388SRA两个型号点阵引脚对应行、列的关系表:

行号

H0

H1

H2

H3

H4

H5

H6

H7

引脚号

9

14

8

12

1

7

2

5

列号

L0

L1

L2

L3

L4

L5

L6

L7

引脚号

13

3

4

10

6

11

15

16

假如你买到一块新的8*8LED点阵,又没有关于它的相关资料,那你只有自己用万用表或通过VCC电源串接一个510欧姆的电阻来检测了。

2.2

LPM_ROM的应用

该模块为逻辑宏模块存储器。其应用过程如下。

1选择模块

2点击ok后,得到

3属性编辑:可以根据实际需要选择数据宽度和内存的容量,默认是8bit,32个字空间。

修改空间和数据属性,Cyclone系列支持最大存储深度4k。

该界面可以选择输出引脚的属性,

需要把hex文件或者mif

其中mif文件或者hex文件可以由多种形式生成。或由多种工具获得,

Quartus

Text

File编辑器、Matlab

等。

完成设置:

放置该模块:

按照基本操作步骤添加引脚,并进行编译,排除错误。注意总线形式的引脚设置方法。

双击引脚标识,修改对话框中的内容,获得总线连接方式。

3

实验结果

通过对程序及原理图的修改,逐步完成了老师的要求,最后使显示器显示“面朝大海,春暖花开。”

4

实验心得

这次实验比之前更加深入一点,通过这次实验,我了解了16*16点阵的基本工作原理,学习了用Verilog

HDL语言编写点阵扫描的程序。虽然在实验中遇到了一些问题,尤其是四个字变八个字的过程,只因为一个小小的接线问题,始终看不到“春暖花开”。但是自己看着问题一步一步的解决,知识一点一点的积累,确实很有成就感,这又增加了我对FPGA学习的热情。虽然还不能完全读懂本实验上的所有程序,但是能够通过修改部分程序来完成老师要求的任务,也是有意义的。

附录:实验程序清单

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

[5:0]

cnt1=0;

//16s计数子

assign

sel0=1

b0;

assign

sel1=1

b1;

assign

sel2=1

b0;

assign

sel3=1

b0;

[email protected](posedge

clk50mhz)

begin

if(cnt>=25

d50000000)

begin

cnt=25

d50000000)

begin

cnt1=25

d500)

begin

cnt2=25

d50000000)

begin

cnt<=25

b0;

clk=~clk;

//1s

end

else

cnt<=cnt+1;

end

always

@

(posedge

clk)

//列扫描

begin

case(line)

4

h0:begin

row=16

b1111111111111111;line<=4

h1;end

4

h1:begin

row=16

b1111111111111111;line<=4

h2;end

4

h2:begin

row=16

b1111111111111111;line<=4

h3;end

4

h3:begin

row=16

b1111111111111111;line<=4

h4;end

4

h4:begin

row=16

b1111111111111111;line<=4

h5;end

4

h5:begin

row=16

b1111111111111111;line<=4

h6;end

4

h6:begin

row=16

b1111111111111111;line<=4

h7;end

4

h7:begin

row=16

b1111111111111111;line<=4

h8;end

4

h8:begin

row=16

b1111111111111111;line<=4

h9;end

4

h9:begin

row=16

b1111111111111111;line<=4

ha;end

4

ha:begin

row=16

b1111111111111111;line<=4

hb;end

4

hb:begin

row=16

b1111111111111111;line<=4

hc;end

4

hc:begin

row=16

b1111111111111111;line<=4

hd;end

4

hd:begin

row=16

b1111111111111111;line<=4

he;end

4

he:begin

row=16

b1111111111111111;line<=4

hf;end

4

hf:begin

row=16

b1111111111111111;line<=4

h0;end

default:line<=4

h0;

endcase

end

endmodule

TAG标签: