显示器件驱动实验报告.docx

上传人:b****6 文档编号:7062122 上传时间:2023-01-16 格式:DOCX 页数:13 大小:793.25KB
下载 相关 举报
显示器件驱动实验报告.docx_第1页
第1页 / 共13页
显示器件驱动实验报告.docx_第2页
第2页 / 共13页
显示器件驱动实验报告.docx_第3页
第3页 / 共13页
显示器件驱动实验报告.docx_第4页
第4页 / 共13页
显示器件驱动实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

显示器件驱动实验报告.docx

《显示器件驱动实验报告.docx》由会员分享,可在线阅读,更多相关《显示器件驱动实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

显示器件驱动实验报告.docx

显示器件驱动实验报告

西安邮电大学显示器件驱动实验报告

院系电子工程学院班级光电1103班

学号05114093(24)姓名张娟娟

实验10使用FPGA驱动16*16led点阵汉字滚动显示(四学时)

一、实验目的

1、了解FPGA和FPGA开发板的功能。

2、使用ALTERA公司的QuartusII进行开发和下载。

3、使用fpga开发板驱动16*16led点阵,上下滚动显示汉字,左右滚动一句话。

理解串并转换,分时复用,动态扫描的驱动原理。

实现一句话左向右滚动。

注意:

fpga开发板上5根数据管脚和2根电源管脚要和16*16点阵驱动板通过杜邦线一一对应连接,使用杜邦头防止短路。

二、实验所用仪表及主要器材

开发板,一台装有QuartusII软件的电脑,数据传输线。

三、实验原理简述

1.16*16静态显示一个汉字:

方案一:

行扫描;显示第一行的过程:

显示第一行:

1.1.将第一行行线(com线)置高(164电平经8550反向),即164输出的对应QA脚输出低电平。

其它行线置低。

即164输出的其它15个Q脚输出高电平。

1.2.将列线(seg线)置相应的显示码。

显示码由16位组成,对应16根列线的值,列线值(显示码)由两个字节来表示。

每个字节8位,代表8列,从第一行开始显示;并关闭其他行;然后第二行显示;并关闭其他行。

第三行

……

第十六行

第一行,第二行……第十六行

如此周而复始,由于扫描频率很快,所以人眼视觉暂留效应,会感觉16行都被显示了,并且显示不同的内容。

实际上任何时刻只点亮了一行。

2.汉字取模

3.取模软件的用法

四、实验结果记录(如输出波形,显示结果等)

五、主要源代码

amodulehanzi1(mainclk,rst,DATA,SRCK,RCK,AB,CLK);

inputmainclk,rst;

outputDATA,SRCK,RCK,AB,CLK;

reg[10:

0]count;

wireclk_24;

reg[3:

0]state;

reg[3:

0]cnt_164,cnt_595;

reg[15:

0]temp;

//reg[4:

0]cnt_c;

reg[14:

0]delay_164;

reg[13:

0]delay_595;

regSRCK,RCK,AB,CLK,DATA;

reg[15:

0]table1[15:

0];

reg[3:

0]sel;

reg[26:

0]count1;

reg[2:

0]state1;

//{0x00,0x80,0xF8,0x88,0x08,0x8C,0x08,0x90,0x78,0xA0,0x40,0xC0,0x40,0x80,0x43,0xFE},

//{0xF8,0xA0,0x48,0xA0,0x08,0x90,0x08,0x90,0x08,0x88,0x08,0xA6,0x29,0xC4,0x10,0x80},/*"张",0*/

//{{0x7E,0xFC,0x22,0x44,0x12,0x24,0x0A,0x14,0x12,0x24,0x29,0x44,0x0C,0x80,0x1F,0xFC},

//{0x10,0x80,0x3F,0xFC,0x50,0x80,0x1F,0xFC,0x10,0x80,0x10,0x80,0x1F,0xFE,0x10,0x00},/*"翟",0*/

always@(posedgemainclk)

count1<=count1==49999999?

0:

count1+1;

always@(posedgemainclk)

begin

if(count1==49999999)

state1<=state1==5?

0:

state1+1;

else

state1<=state1;

end

//{0x01,0x00,0x21,0x10,0x19,0x18,0x0D,0x10,0x09,0x20,0x01,0x04,0x7F,0xFE,0x04,0x40},

//{0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x42,0x08,0x42,0x10,0x42,0x20,0x3E,0x40,0x00},/*"光",0*/

always@(state1)

begin

if(state1==0)

begin

table1[0]=16'h0100;

table1[1]=16'h2110;

table1[2]=16'h1918;

table1[3]=16'h0d10;

table1[4]=16'h0920;

table1[5]=16'h0104;

table1[6]=16'h7ffe;

table1[7]=16'h0440;

table1[8]=16'h0440;

table1[9]=16'h0440;

table1[10]=16'h0440;

table1[11]=16'h0842;

table1[12]=16'h0842;

table1[13]=16'h1042;

table1[14]=16'h203e;

table1[15]=16'h4000;

end

//{0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08},

//{0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00},/*"电",0*/

elseif(state1==1)

begin

table1[0]=16'h0100;

table1[1]=16'h0100;

table1[2]=16'h0100;

table1[3]=16'h3FF8;

table1[4]=16'h2108;

table1[5]=16'h2108;

table1[6]=16'h3FF8;

table1[7]=16'h2108;

table1[8]=16'h2108;

table1[9]=16'h2108;

table1[10]=16'h3FF8;

table1[11]=16'h2108;

table1[12]=16'h0102;

table1[13]=16'h0102;

table1[14]=16'h00FE;

table1[15]=16'h0000;

end

//{0x00,0x80,0xF8,0x88,0x08,0x8C,0x08,0x90,0x78,0xA0,0x40,0xC0,0x40,0x80,0x43,0xFE},

//{0xF8,0xA0,0x48,0xA0,0x08,0x90,0x08,0x90,0x08,0x88,0x08,0xA6,0x29,0xC4,0x10,0x80},/*"张",2*/

elseif(state1==2)

begin

table1[0]=16'h0080;

table1[1]=16'hF888;

table1[2]=16'h088C;

table1[3]=16'h0890;

table1[4]=16'h78A0;

table1[5]=16'h40C0;

table1[6]=16'h4080;

table1[7]=16'h43FE;

table1[8]=16'hF8A0;

table1[9]=16'h48A0;

table1[10]=16'h0890;

table1[11]=16'h0890;

table1[12]=16'h0888;

table1[13]=16'h08A6;

table1[14]=16'h29C4;

table1[15]=16'h1080;

end

//{0x7E,0xFC,0x22,0x44,0x12,0x24,0x0A,0x14,0x12,0x24,0x29,0x44,0x0C,0x80,0x1F,0xFC},

//{0x10,0x80,0x3F,0xFC,0x50,0x80,0x1F,0xFC,0x10,0x80,0x10,0x80,0x1F,0xFE,0x10,0x00},/*"翟",3*/

elseif(state1==3)

begin

table1[0]=16'h7EFC;

table1[1]=16'h2244;

table1[2]=16'h1224;

table1[3]=16'h0A14;

table1[4]=16'h1224;

table1[5]=16'h2944;

table1[6]=16'h0C80;

table1[7]=16'h1FFC;

table1[8]=16'h1080;

table1[9]=16'h3FFC;

table1[10]=16'h5080;

table1[11]=16'h1FFC;

table1[12]=16'h1080;

table1[13]=16'h1080;

table1[14]=16'h1FFE;

table1[15]=16'h1000;

end

//{0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40},

//{0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00},/*"学",4*/

elseif(state1==4)

begin

table1[0]=16'h0108;

table1[1]=16'h108C;

table1[2]=16'h0CC8;

table1[3]=16'h0890;

table1[4]=16'h7FFE;

table1[5]=16'h4004;

table1[6]=16'h8FE8;

table1[7]=16'h0040;

table1[8]=16'h0080;

table1[9]=16'h7FFE;

table1[10]=16'h0080;

table1[11]=16'h0080;

table1[12]=16'h0080;

table1[13]=16'h0080;

table1[14]=16'h0280;

table1[15]=16'h0100;

end

//{0x00,0x80,0xF8,0x40,0x8F,0xFE,0x94,0x04,0xA0,0x00,0xA3,0xF8,0x90,0x00,0x88,0x00},

//{0x8F,0xFE,0xA9,0x20,0x91,0x20,0x81,0x20,0x82,0x22,0x82,0x22,0x84,0x22,0x88,0x1E},/*"院",5*/

elseif(state1==5)

begin

table1[0]=16'h0080;

table1[1]=16'hF840;

table1[2]=16'h8FFE;

table1[3]=16'h9404;

table1[4]=16'hA000;

table1[5]=16'hA3F8;

table1[6]=16'h9000;

table1[7]=16'h8800;

table1[8]=16'h8FFE;

table1[9]=16'hA920;

table1[10]=16'h9120;

table1[11]=16'h8120;

table1[12]=16'h8222;

table1[13]=16'h8222;

table1[14]=16'h8422;

table1[15]=16'h881E;

end

end

always@(posedgemainclk)

count=count+1;

assignclk_24=count[3];

always@(posedgeclk_24ornegedgerst)

if(!

rst)

begin

state=0;cnt_595=0;cnt_164=0;temp=16'h0000;

end

else

case(state)

0:

beginAB=0;CLK=0;state=state+1;end

1:

beginCLK=1;state=state+1;end

2:

beginCLK=0;RCK=0;state=state+1;end

3:

begintemp=~table1[cnt_164];state=state+1;end

4:

beginSRCK=0;DATA=temp[cnt_595];state=state+1;end

5:

beginSRCK=1;state=state+1;end

6:

if(cnt_595==15)

beginstate=7;cnt_595=0;end

else

beginstate=4;cnt_595=cnt_595+1;end

7:

beginAB=1;state=state+1;end

8:

beginRCK=1;state=state+1;end

9:

beginCLK=1;state=state+1;end

10:

/*if(delay_164<1000)

begindelay_164=delay_164+1;end

else

begindelay_164=0;state=state+1;end*/

beginstate=state+1;end

11:

if(cnt_164==15)

beginstate=0;cnt_164=0;end

else

beginstate=2;cnt_164=cnt_164+1;end

default:

beginstate=0;cnt_164=0;cnt_595=0;end

endcase

endmodule

6、实验遇到的问题及解决办法(余留问题、体会等)

代码下载后总是不能正确显示,以为代码有问题,最后更换点阵屏后正确了。

顶层实体名称和工程名必须一样;顶层实体为bdf文件。

verilog文件(.v)都为子模块,不能与工程名或顶层实体名一样。

所有verilog文件(.v)里面的模块名必须和这个verilog文件(.v)的文件名一样.

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1