16乘16点阵显示实验报告_第1页
16乘16点阵显示实验报告_第2页
16乘16点阵显示实验报告_第3页
16乘16点阵显示实验报告_第4页
16乘16点阵显示实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告 实验名称: 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点阵来显示一个字符或汉字,只需要根据字符或汉字图形中的线条或笔画,通过点亮多个发光

2、二极管来勾勒出字符或汉字的线条或笔画就行了。当要比较完美的显示一般的汉字,单个8*8led点阵模块很难做到,因为led的点数(也称为像素点)不够多,因此要显示汉字的话,需要多个8*8led点阵拼合成一个显示屏。假如用4个8*8led点阵模块拼成16*16的点阵,即能满足一般汉字的显示。但要显示信息量大的图形,则需要n个多个8*8led点阵,拼装成一个大屏幕才行。led点阵显示器最大的特点是亮度高、功耗较低、寿命长、容易控制等,因此它的应用很广,常用在广场、车站、商业广告等室外的显示。2>8*8led点阵的封装和引脚规律 64个发光二极管按照行共阳、列共阴4个一组的方式封装成一个模块,这样

3、8*8led点阵模块就有8行、8列共16个引脚。其实物图如图2,电路模块符号图如图3。 图2 8*8led点阵实物图 图3 8*8led点阵符号图但8*8led点阵的16个引脚并不是很有规律,千万不要想象成18个引脚是行,916个引脚是列。而且不同产品的点阵外部引脚排列规律还可能不一样。以下是nlb1388sra和ldm1388sra两个型号点阵引脚对应行、列的关系表:行号h0h1h2h3h4h5h6h7引脚号9148121725列号l0l1l2l3l4l5l6l7引脚号1334106111516假如你买到一块新的8*8led点阵,又没有关于它的相关资料,那你只有自己用万用表或通过vcc电源串

4、接一个510欧姆的电阻来检测了。2.2 lpm_rom的应用 该模块为逻辑宏模块存储器。其应用过程如下。 1选择模块2点击ok后,得到3属性编辑:可以根据实际需要选择数据宽度和内存的容量,默认是8bit,32个字空间。修改空间和数据属性,cyclone系列支持最大存储深度4k。该界面可以选择输出引脚的属性,需要把hex文件或者mif其中mif文件或者hex文件可以由多种形式生成。或由多种工具获得, 如 quartus 的 text file编辑器、matlab 等。完成设置:放置该模块:按照基本操作步骤添加引脚,并进行编译,排除错误。注意总线形式的引脚设置方法。双击引脚标识,修改对话框中的内容

5、,获得总线连接方式。3 实验结果 通过对程序及原理图的修改,逐步完成了老师的要求,最后使显示器显示“面朝大海,春暖花开。” 4 实验心得 这次实验比之前更加深入一点,通过这次实验,我了解了16*16点阵的基本工作原理,学习了用verilog hdl语言编写点阵扫描的程序。虽然在实验中遇到了一些问题,尤其是四个字变八个字的过程,只因为一个小小的接线问题,始终看不到“春暖花开”。但是自己看着问题一步一步的解决,知识一点一点的积累,确实很有成就感,这又增加了我对fpga学习的热情。虽然还不能完全读懂本实验上的所有程序,但是能够通过修改部分程序来完成老师要求的任务,也是有意义的。附录:实验程序清单mo

6、dule 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;as

7、sign sel2=1'b0;assign sel3=1'b0;always(posedge clk50mhz) beginif(cnt>=25'd50000000)begincnt<=25'b0; /1hz计时器cnt1<=cnt1+1; /16s计时器endelsecnt<=cnt+1;endhangsaomiao u1(.clk50mhz(clk50mhz),.row(row1),.line(line1);liesaomiao u2(.clk50mhz(clk50mhz),.row(row2),.line(line2);always

8、(*)if(cnt1<=5'd31)beginrow<=row1; /行扫描line<=line1;endelsebeginrow<=row2; /列扫描line<=line2;endendmodule行扫描module hangsaomiao(clk50mhz,line,row);input clk50mhz; /实验箱输入50mhz时钟信号output reg 15:0 row; /列output reg 3:0 line; /行reg 24:0 cnt1,cnt2; /计数子reg clkrow,clkline; /列脉冲、行脉冲always(pos

9、edge clk50mhz) beginif(cnt1>=25'd50000000)begincnt1<=25'b0;clkrow=clkrow; /1s列脉冲endelsecnt1<=cnt1+1;endalways(posedge clk50mhz) beginif(cnt2>=25'd500)begincnt2<=25'b0;clkline=clkline; /100khz行脉冲endelsecnt2<=cnt2+1;endalways(posedge clkline)begincase(line)4'd0:li

10、ne<=4'd1; /高速行扫描4'd1:line<=4'd2;4'd2:line<=4'd3;4'd3:line<=4'd4;4'd4:line<=4'd5;4'd5:line<=4'd6;4'd6:line<=4'd7;4'd7:line<=4'd8;4'd8:line<=4'd9;4'd9:line<=4'd10;4'd10:line<=4'd11;4

11、9;d11:line<=4'd12;4'd12:line<=4'd13;4'd13:line<=4'd14;4'd14:line<=4'd15;4'd15:line<=4'd0;default:line<=4'd0;endcaseendalways(posedge clkrow) /时间间隔为1s的列扫描begincase(row)16'b0000000000000001: row<=16'b0000000000000010;16'b00000000

12、00000010: row<=16'b0000000000000100;16'b0000000000000100: row<=16'b0000000000001000;16'b0000000000001000: row<=16'b0000000000010000;16'b0000000000010000: row<=16'b0000000000100000;16'b0000000000100000: row<=16'b0000000001000000;16'b0000000001000

13、000: row<=16'b0000000010000000;16'b0000000010000000: row<=16'b0000000100000000;16'b0000000100000000: row<=16'b0000001000000000;16'b0000001000000000: row<=16'b0000010000000000;16'b0000010000000000: row<=16'b0000100000000000;16'b0000100000000000:

14、row<=16'b0001000000000000;16'b0001000000000000: row<=16'b0010000000000000;16'b0010000000000000: row<=16'b0100000000000000;16'b0100000000000000: row<=16'b1000000000000000;16'b1000000000000000: row<=16'b0000000000000001;default: row<=16'b000000

15、0000000001;endcaseendendmodule列扫描module liesaomiao(clk50mhz,row,line);input clk50mhz; /实验箱输入50mhz时钟信号output reg 15:0 row; /行output reg 3:0 line; /列reg 24:0 cnt; /计数子reg clk; always(posedge clk50mhz) beginif(cnt>=25'd50000000)begincnt<=25'b0;clk=clk; /1sendelsecnt<=cnt+1;end always (

16、posedge clk) /列扫描begincase(line) 4'h0:begin row=16'b1111111111111111;line<=4'h1;end4'h1:begin row=16'b1111111111111111;line<=4'h2;end4'h2:begin row=16'b1111111111111111;line<=4'h3;end4'h3:begin row=16'b1111111111111111;line<=4'h4;end4'h

17、4:begin row=16'b1111111111111111;line<=4'h5;end4'h5:begin row=16'b1111111111111111;line<=4'h6;end4'h6:begin row=16'b1111111111111111;line<=4'h7;end4'h7:begin row=16'b1111111111111111;line<=4'h8;end4'h8:begin row=16'b1111111111111111;line<=4'h9;end4'h9:begin row=16'b1111111111111111;line<=4'ha;end4'ha:begin row=16'b1111111111111111;line<=4'hb;end4'hb:begin row=16'b1111111111111111;line<=4'hc;end4'hc:begin row=16'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论