FPGAVerilog程序设计lcdWord文件下载.docx
- 文档编号:16289834
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:8
- 大小:17.53KB
FPGAVerilog程序设计lcdWord文件下载.docx
《FPGAVerilog程序设计lcdWord文件下载.docx》由会员分享,可在线阅读,更多相关《FPGAVerilog程序设计lcdWord文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
上交报告电子版和纸质版各一份以及程序附件发至老师邮箱
摘要
以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
本实验要求通过verilog语言,在软件Quatusii上编写程序,并利用modelsim软件进行仿真,最终在fpga开发板的液晶显示器上显示出英文字体。
关键词:
fpga;
lcd;
显示英文
1.1完整的程序内容
//本实验是用LCD1602显示英文。
(LCD带字库)
modulelcd(clk,rs,rw,en,dat);
inputclk;
//系统时钟输入50M
output[7:
0]dat;
//LCD的8位数据口
outputrs,rw,en;
//LCD的控制脚
rege;
reg[7:
regrs;
reg[15:
0]counter;
reg[4:
0]current,next;
regclkr;
reg[1:
0]cnt;
parameterset0=4'
h0;
parameterset1=4'
h1;
parameterset2=4'
h2;
parameterset3=4'
h3;
parameterdat0=4'
h4;
parameterdat1=4'
h5;
parameterdat2=4'
h6;
parameterdat3=4'
h7;
parameterdat4=4'
h8;
parameterdat5=4'
h9;
parameterdat6=4'
hA;
parameterdat7=4'
hB;
parameterdat8=4'
hC;
parameterdat9=4'
hD;
parameterdat10=4'
hE;
parameterdat11=5'
h10;
parameternul=4'
hF;
always@(posedgeclk)
begin
counter=counter+1;
if(counter==16'
h000f)
clkr=~clkr;
end
always@(posedgeclkr)
current=next;
case(current)
set0:
beginrs<
=0;
dat<
=8'
h31;
next<
=set1;
end//*设置8位格式,2行,5*7*
set1:
h0C;
=set2;
end//*整体显示,关光标,不闪烁*/
set2:
=set3;
end//*设定输入方式,增量不移位*/
set3:
=dat0;
end//*清除显示*/
//上面是LCD的初始化
dat0:
=1;
h3C;
=dat1;
end
dat1:
="
F"
;
=dat2;
dat2:
P"
=dat3;
dat3:
G"
=dat4;
dat4:
A"
=dat5;
dat5:
h3E;
=dat6;
dat6:
=dat7;
dat7:
O"
=dat8;
dat8:
=dat9;
dat9:
D"
=dat10;
dat10:
!
"
=dat11;
dat11:
=nul;
//上面是在这12个状态中要显示的字符FPGAGOOD!
nul:
h00;
//行一遍然后把液晶的E脚拉高if(cnt!
=2'
h2)
if(cnt!
h2)
begin
e<
next<
=set0;
cnt<
=cnt+1;
else
beginnext<
default:
next=set0;
endcase
assignen=clkr|e;
assignrw=0;
assignon=1;
assignblon=1;
endmodule
1.2各段程序意义的声明
1.2.1以下为程序的首部分,各变量类型的声明,是编写每个程序的必要部分:
1.2.2程序中将要用到的常量的声明,为方便在接下来的程序中将要用到这些变量时重复表示的麻烦和修改其中一个值时的繁琐,因此进行如下定义:
1.2.3以下为分频段落:
1.2.4接下来为lcd的初始化程序,用到了case语句:
1.2.5以下程序为在FPGA开发板上显示“FPGAGOOD”:
1.2.6以下程序将E脚电平拉高,并返回继续执行前段程序:
endmodule
1.3程序意义说明
该程序目的在于实现在fpga开发板的lcd上显示英文字体,用Quatusii进行verilog语言的程序编写,并用modelsim软件进行仿真,然后进行管脚的分配,最后下载在fpga的开发板上进行试验结果的观察。
改程序并不复杂,在程序中用到了大量的case循环语句,进行lcd的初始化和显示英文字符,在初始化前首先进行了对时钟的分频,以保证显示的稳定。
1.4实验中遇到的问题及解决办法
第一次将实验程序下载到开发板上并进行观察时发现,lcd的显示屏上应显示的“FPGAGOOD”只能在下载的过程中在开发板上显示,下载完成后即消失,经老师的检查发现需要在程序的最后添加上“assignon=1;
assignblon=1;
”即可,因为lcd的电路原理要求在高电平时才能显示,在下载过程中被拉至高阻状态,会有符合电路要求的时刻,因此会短暂的显示出实验结果,在下载完成后又被至于低电平,因此没有显示的结果,而在加上这两句连续赋值语句后即可满足电路的要求。
参考文献
(著作图书文献)
[1]作者,作者.书名.版次.出版社,出版年:
引用部分起止页
[2]作者.书名.出版社,出版年.
(翻译图书文献)
[3]作者.书名.译者.版次.出版者,出版年:
(学术刊物文献)
[4]作者.文章名.学术刊物名.年,卷(期):
(学术会议文献)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGAVerilog 程序设计 lcd