武汉理工大学课设字符发生器详述Word格式文档下载.docx
- 文档编号:21052651
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:30
- 大小:402.40KB
武汉理工大学课设字符发生器详述Word格式文档下载.docx
《武汉理工大学课设字符发生器详述Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《武汉理工大学课设字符发生器详述Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
信息传播;
16×
16LED汉字点阵。
Abstract
Inthelargeshoppingmalls,railwaystations,docks,undergroundstationandavarietyofthingssuchaswindowareasneedmoregraphicsandcharacterLEDdotmatrixdisplay.LEDindustryhasbecomeafast-growingnewindustry,ahugemarketspaceandbrightfuture.Withtherapiddevelopmentofinformationindustry,LEDdisplayasanimportantmeansofinformationdissemination,hasbeenwidelyusedinindoorandoutdoorservices,contentandservicesneededpublicitypurposesinpublicplaces,Publicplacessuchasindoorandoutdooradvertising,airportstationtoguidevisitorsinformation,publictransportvehiclesstopannouncementsystems,securitiesandbankinginformationdisplay,restaurantsofferinformationBeansaidhighwayvariableinformationpanels,relayracestadiums,buildinglighting,trafficlights,
landscapelighting.Clearly,LEDlightingdisplayhasbecomeacity,modernandinformationsocietyisanimportantsign.
Basedontheedaabout16×
16LEDdotmatrixdisplayofthebasicprinciplesofChinesecharacters,hardwareanddesign,compileanddownloadprogramsandotherbasiclinksandrelatedtechnologies.
Keywords:
eda;
Informationdissemination;
16×
16LEDdot-matrixcharacters。
绪论
一个汉字,常见的是16×
16的点阵,共256个发光点。
这些点,并不是同时发光的。
如果每一瞬间,只有一行发光,那就需要把整个的汉字“横向取模”,送到显示屏[1];
如果每一瞬间,只有一列发光,那就需要把整个的汉字“纵向取模”,送到显示屏[1]。
1.LED的显示原理:
16×
16扫描LED点阵的工作原理同8位扫描数码管类似。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(sel0-sel3),其汉字扫描码由16位段地址(l0-l15)输入。
通过时钟的每列扫描显示完整汉字。
2.本试验实现输出“武汉理工大学信息工程学院电子科学与技术罗加”这些汉字。
1.设计内容及要求
1.1设计的主要任务
设计内容
3.加强对于总线产生,地址定位的EPLD实现。
1.2设计原理
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯[2]。
所以其扫描译码地址需4位信号线。
2864E2PROM存贮器是电可擦除/编程的只读存贮器,容量为8k×
8bit,有13位并行地址线和8位并行数据线,而一个完整的字符所需的存贮容间为32字节即32×
8bit,也就是说2864最多可连续存256个16×
16点阵字形。
存贮方式可事先约定好。
本设计就是要通过EPLD芯片产生读时序,将字形从2864中读出,然后产生写时序,写入16×
16的点阵,使其扫描显示输出。
2.QuartusⅡ简介
2.1QuartusⅡ概述
QuartusⅡ是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计,是Altera公司的第4代可编程逻辑器件集成开发环境,提供了从设计输入到器件编程的全部功能,与Max+plusⅡ相比,QuartusⅡ设计软件增加了网络编辑功能,提升了调试能力,解决了潜在的设计延迟,同时其强大的设计能力和直观易用的接口,受到数字系统设计者的普遍欢迎。
2.2QuartusⅡ特点
QuartusⅡ可以产生并识别EDIF网表文件、VHDL网表文件和VerilogHDL网表文件,为第三方EDA工具提供了方便的接口。
QuartusⅡ支持一个工作组环境下的设计要求,包括支持基于Internet的协作设计,与Cadence,ExemplarLogic,MentorGraphics,Synopsys和Synplicity等EDA供应商的开发工具相兼容。
QuartusⅡ作为一种设计环境,除支持Altera的APEX20KE,APEX20KC,APEXⅡ,ARM的Excalibur嵌入式处理器方案,Mercury,FLEX10KE和ACEX1K之外,还支持MAX3000A和MAX7000系列乘积项器件[3]。
QuartusⅡ增加了一个新的快速适配编译选项,可缩短50%的编译时间。
快速适配功能保留了最佳性能的设置,加快了编译过程,编译速度更快,对设计性能的影响最小。
2.3QuartusⅡ的安装及启动
开始安装,双击QuartersⅡ安装包中setup.exe,单击下一步即可顺利完成。
双击QuartersⅡ桌面快捷方式,即可打开如下图2.1所示QuartersⅡ设计软件界面。
图2.1QuartersⅡ设计软件界面
3字符发生器的原理图及方法
图3.1字符发生器的方框图
3.1设计思路
字符要用16x16点阵显示所以涉及到行列的显示,根据字符将16x16点阵中所需点亮的二极管的内容存储到ROM存储器中,同时列依次扫描,计数器对16x16点阵显示器的行进行循环计数。
3.2各模块的作用
此电路由分频器,十三进制计数器,ROM存储器,地址计数器组成。
分频器的作用是将50Mhs的信号分为25Khz信号,提供给地址计数器与ROM存储器作为所需的时钟信号。
地址计数器的作用是在时钟信号作用下,将从ROM中读出的信号对应正确的位置上的数值显示在点阵上。
Reset是复位端,起复位作用,低电平时起作用。
输出端qout[15..0]对应点阵上的L0—L15,为点阵的行驱动信号输出,ad[3..0]对应点阵上的列,随着ad[3..0]的增加依次对列扫描。
十三位进制计数器的输出与地址计数器的输出共同作用在ROM的输入,由此决定qout[15..0]的输出,使得输出字符循环显示。
此十三进制计数器是由74LS161实现。
ROM是一个ROM256X16的存储数据的具有读写功能的存储器,设计中存储着“武汉理工大学信息工程学院电子科学与技术罗加”这二十一个字,在ad[7..0]输入相应地址时读取ROM256X16中相应的数据然后后经q[15..0]输出。
主要功能是存储数据。
图3.2点阵原理图
4器件及元件功能
4.174LS161和两输入与非门用来构成十三进制计数器
图4.1器件图
LDN:
同步置数端;
ENT/ENP:
使能信号控制端;
CLRN:
异步置零端;
CLK:
时钟信号输入端;
A.B.C.D:
输入端;
RCO:
进位信号输出端;
QA.QB.QC.QD:
输出端。
74LS161为同步可预置数四位二进制计数器。
图4.274LS161内部结构
表4.174LS161功能表
CLK
CLRN
LDN
ENT
ENP
工作状态
X
置零
1
预置数
计数
保持
图4.3十三进制加法计数器原理图
图4.4波形仿真图
4.2address模块
图4.5address模块原理图
clk为时钟信号输入端;
reset为复位端,低电平有效;
din[15..0]为接受ROM数据的端口;
ad[3..0]为点阵显示器的列驱动信号;
qout[15..0]为行驱动信号。
Clk1为扫描时钟信号,控制扫描速度的快慢,当reset复位端为高电平情况下(即不起作用时),脉冲上升沿到来时,ad计数扫描信号端依次选中点阵的各列,din输入存储器中的数据,qout依次输出,在点阵上扫描显示
生成地址选择的设计程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityadderis
port(clk,reset:
instd_logic;
din:
instd_logic_vector(15downto0);
ad:
outstd_logic_vector(3downto0);
qout:
outstd_logic_vector(15downto0));
endadder;
architectureaofadderis
begin
process(clk,din,reset)
variableQ1:
std_logic_vector(3downto0):
="
0000"
;
begin
ifclk'
eventandclk='
1'
then
ifreset='
0'
or(Q1="
1111"
)then
Q1:
else
=Q1+1;
endif;
qout<
=din;
ad<
=Q1;
endprocess;
enda;
图4.6仿真波形
4.3分频器
图4.7分频器
生成分频器div的设计程序
--分频器
entityfenpinis
port(clkin:
instd_logic;
clkout:
outstd_logic);
endentity;
architecturebehavoffenpinis
signalcnt17:
std_logic_vector(16downto0);
begin
process(clkin)
ifrising_edge(clkin)thencnt17<
=cnt17+1;
clkout<
=cnt17(16);
endbehav;
图4.8分频仿真
4.4ROM256X16存储器
图4.9ROM256X16存储器
存入ROM的数据Width=16;
Depth=256;
4.5点阵模块
本模块使用的16*16点阵,这样就可以方便显示汉字。
点阵模块实际上是16*16个LED组成的,每一行阴极连在一起,每一列的阳极也连在一起,这样就有了16个阴极端和16个阳极端。
通过这32个端口就可以任意控制一个LED点的亮和灭[5]。
为了减少FPGA管脚的占用,我们将列信号设置成动态扫描的形式,用一个4-16译码器74154来控制列信号。
4-16译码器74154和点阵模块对应的IO管脚已经在电路板上标注,具体引脚见表4.2和表4.3。
表4.274154引脚说明
列输入的4-16译码器名称
管脚
A
AC18
B
AD17
C
AK16
D
AK19
表4.3点阵模块引脚说明
行输入引脚对应实验箱上名称
HIN1
AJ17
HIN2
AH18
HIN3
AG16
HIN4
AF16
HIN5
AA18
HIN6
AE17
HIN7
AH19
HIN8
AH20
HIN9
AD19
HIN10
AE18
HIN11
AF20
HIN12
AF19
HIN13
AF18
HIN14
AG18
HIN15
AJ21
HIN16
AG20
5总体设计电路
图5.1总体设计原理图
图5.2仿真波形
工作情况
输入十六进制计数器变为十三进制计数器,在输入时钟信号作用下输出0000-1100的地址数据再和adder的输出端adder[3..0]共同作为了ROM的输入端,控制ROM中各数据的输出,然后数据从q[15..0]输出到adder中,经过列循环扫描ad[3..0],qout[15..0]同时输出到16x16点阵上。
两频率必须相差一定数值。
从波形仿真图中可以得到:
Adder每变化十六下,输出qout变化十六次,即一个字输出的整个过程。
模块间的连接关系
1、硬件连接
将clk1端接时钟输出,并使输入频率约为25Khz时钟信号,clk端接另一时钟输出,并使输入频率是100Hz时钟信号;
qout[15..0]分别接点阵显示模块的L15—L0,ad[3..0]分别接点阵显示模块的SEL3—SEL0。
Clk对应IO3,用导线连接IO3与CLK_OUT,调节SW17—SW20使CLK_OUT输出所需频率。
Reset对应CPU板的RESET复位按键。
四位功能选择位VGA[3..0]设置为0110。
2、管脚说明
(1)ad[3..0]为列地址控制,定义在4位地址线上。
(2)qout[15..0]为行数据输出,定义在16位数据总线上。
(3)VGA[3..0]为功能选择管脚,VGA=0110,表示16X16LED点阵显示功能选取,16位数据总线作为点阵的行值,4位地址对应列值编码。
(4)clk为输入时钟频率端口,定义在EP1C12板上的50MHz晶振上。
6结论
通过这次设计性实验,我觉得培养自己的独立分析问题和解决问题的能力才是关键。
培养这种能力的前提是对每次实验都有一个好的态度。
通过这次EDA课程设计,我掌握了系统的数学电子设计的方法,熟悉使用调试适配的具体操作方法。
在设计过程中我们遇到了许多问题,在老师的耐心的指导和我自己的努力下,最终我克服了各种问题,取得了成功。
但是我也发现了一些问题,发现了这自己的不足,在课程设计方面自己的一些欠缺。
如程序的正确性和完整性,仿真图的正确性,以及管脚的连接等。
总之,这次设计使我掌握了很多有用的经验,也学到了很多在课本上学不到的知识和一些操作技巧,为以后的学习和工作打下了坚实的基础,感谢学校给我们这么一个机会,让我们自身得到了锻炼,也感谢老师在此期间,对我们的耐心教导。
参考文献:
[1]宋嘉玉,孙丽霞.EDA实用技术.北京:
人民邮电出版社,2006.12.
[2]齐洪喜,陆颖.VHDL电路设计实用技术.北京:
清华大学出版社,2004.5.
[3]章彬宏.EDA应用技术.北京:
北京理工大学出版社,2007.7.
[4]汉泽西.EDA技术及其应用.北京:
北京航空航天大学出版社,2004.5.
[5]谭会生.EDA技术基础.长沙:
湖南大学出版社,2004.8.
附录
entitybitmapis
port(clock:
hang_1:
outstd_logic_vector(15downto0);
lie_1:
outstd_logic_vector(3downto0)
);
endbitmap;
architectureoneofbitmapis
componentfenpin
port(clk:
out_saomiao:
outstd_logic
endcomponent;
componentbitmap_hang
hang:
outstd_logic_vector(15downto0)
componentbitmap_lie
port(clk1:
lie:
signala:
std_logic;
u1:
fenpinportmap(clk=>
clock,out_saomiao=>
a);
u2:
bitmap_hangportmap(clk=>
a,hang=>
hang_1);
u3:
bitmap_lieportmap(clk1=>
a,lie=>
lie_1);
endone;
--hang
entitybitmap_hangis
endbitmap_hang;
architectureoneofbitmap_hangis
process(clk)
variablea:
integerrange0to15;
variableb:
integer:
=0;
variablec:
a:
=a+1;
b:
=b+1;
ifb=100then
c:
=c+1;
ifc=320then
casea+cis
when0=>
hang<
1111110111111111"
--武
when1=>
1111010101111111"
when2=>
1110110100000011"
when3=>
1110110111110111"
when4=>
1111110110111111"
when5=>
1000000000000000"
when6=>
when7=>
1111110111011111"
when8=>
when9=>
1111110100011011"
when10=>
hang<
1111101111011011"
when11=>
1011101111011011"
when12=>
1011011111011011"
when13=>
1010111000011011"
when14=>
1001111111110000"
when15=>
1011111111111101"
when16=>
1111111111111111"
--汉
when17=>
1110000000011011"
when18=>
1110111110110111"
when19=>
when20=>
1110111110111110"
when21=>
1111011101111101"
when22=>
1111011101101101"
when23=>
1111011101101111"
when24=>
1111101011110111"
when25=>
when26=>
1111110110111000"
when27=>
1111110111111011"
when28=>
1111101011111011"
when29=>
1111011101111011"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 武汉理工大学 字符 发生器 详述