16乘16点阵显示实验报告Word格式文档下载.docx

上传人:b****2 文档编号:1171255 上传时间:2023-04-30 格式:DOCX 页数:15 大小:318.35KB
下载 相关 举报
16乘16点阵显示实验报告Word格式文档下载.docx_第1页
第1页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第2页
第2页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第3页
第3页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第4页
第4页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第5页
第5页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第6页
第6页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第7页
第7页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第8页
第8页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第9页
第9页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第10页
第10页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第11页
第11页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第12页
第12页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第13页
第13页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第14页
第14页 / 共15页
16乘16点阵显示实验报告Word格式文档下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

16乘16点阵显示实验报告Word格式文档下载.docx

《16乘16点阵显示实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《16乘16点阵显示实验报告Word格式文档下载.docx(15页珍藏版)》请在冰点文库上搜索。

16乘16点阵显示实验报告Word格式文档下载.docx

从图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。

图28*8LED点阵实物图图38*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.2LPM_ROM的应用

该模块为逻辑宏模块存储器。

其应用过程如下。

1选择模块

2点击ok后,得到

3属性编辑:

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

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

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

需要把hex文件或者mif

其中mif文件或者hex文件可以由多种形式生成。

或由多种工具获得,如Quartus的TextFile编辑器、Matlab等。

完成设置:

放置该模块:

按照基本操作步骤添加引脚,并进行编译,排除错误。

注意总线形式的引脚设置方法。

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

3实验结果

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

4实验心得

这次实验比之前更加深入一点,通过这次实验,我了解了16*16点阵的基本工作原理,学习了用VerilogHDL语言编写点阵扫描的程序。

虽然在实验中遇到了一些问题,尤其是四个字变八个字的过程,只因为一个小小的接线问题,始终看不到“春暖花开”。

但是自己看着问题一步一步的解决,知识一点一点的积累,确实很有成就感,这又增加了我对FPGA学习的热情。

虽然还不能完全读懂本实验上的所有程序,但是能够通过修改部分程序来完成老师要求的任务,也是有意义的。

附录:

实验程序清单

moduledianzhen(clk50mhz,row,sel0,sel1,sel2,sel3,line);

inputclk50mhz;

//实验箱提供50MHz时钟信号

outputsel0,sel1,sel2,sel3;

//设置引脚选通点阵

outputreg[15:

0]row;

//列

outputreg[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计数子

assignsel0=1'

b0;

assignsel1=1'

b1;

assignsel2=1'

assignsel3=1'

always@(posedgeclk50mhz)

begin

if(cnt>

=25'

d50000000)

begin

cnt<

//1Hz计时器

cnt1<

=cnt1+1;

//16s计时器

end

else

cnt<

=cnt+1;

end

hangsaomiaou1(.clk50mhz(clk50mhz),.row(row1),.line(line1));

liesaomiaou2(.clk50mhz(clk50mhz),.row(row2),.line(line2));

always@(*)

if(cnt1<

=5'

d31)

begin

row<

=row1;

//行扫描

line<

=line1;

end

else

=row2;

//列扫描

=line2;

Endmodule

行扫描

modulehangsaomiao(clk50mhz,line,row);

//实验箱输入50MHz时钟信号

0]cnt1,cnt2;

//计数子

regclkrow,clkline;

//列脉冲、行脉冲

if(cnt1>

clkrow=~clkrow;

//1s列脉冲

cnt1<

if(cnt2>

d500)

cnt2<

clkline=~clkline;

//100KHz行脉冲

=cnt2+1;

always@(posedgeclkline)

case(line)

4'

d0:

line<

=4'

d1;

//高速行扫描

d1:

d2;

d2:

d3;

d3:

d4;

d4:

d5;

d5:

d6;

d6:

d7;

d7:

d8;

d8:

d9;

d9:

d10;

d10:

d11;

d11:

d12;

d12:

d13;

d13:

d14;

d14:

d15;

d15:

d0;

default:

endcase

always@(posedgeclkrow)//时间间隔为1s的列扫描

case(row)

16'

b0000000000000001:

row<

=16'

b0000000000000010;

b0000000000000010:

b0000000000000100;

b0000000000000100:

b0000000000001000;

b0000000000001000:

b0000000000010000;

b0000000000010000:

b0000000000100000;

b0000000000100000:

b0000000001000000;

b0000000001000000:

b0000000010000000;

b0000000010000000:

b0000000100000000;

b0000000100000000:

b0000001000000000;

default:

b0000000000000001;

endcase

endmodule

列扫描

moduleliesaomiao(clk50mhz,row,line);

0]cnt;

regclk;

clk=~clk;

//1s

end

always@(posedgeclk)//列扫描

case(line)

h0;

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2