没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本设计结合上海航虹高科技公司生产的EDA实验箱, 需要显示的16 个字符的字模已存放在EPROM 的8000H~807FH, 采用单个8×8LED 点阵(WTD3088)显示字符, 显示控制由现场可编程门阵列( FPGA) EPF10K20TC144- 4 来实现
资源推荐
资源详情
资源评论
基于基于FPGA的的LED点阵显示字符设计点阵显示字符设计
本设计结合上海航虹高科技公司生产的EDA实验箱, 需要显示的16 个字符的字模已存放在EPROM 的
8000H~807FH, 采用单个8×8LED 点阵(WTD3088)显示字符, 显示控制由现场可编程门阵列( FPGA)
EPF10K20TC144- 4 来实现
随着社会的发展和信息时代对各类信息快速发布的需要, 许多政府部门和企事业单位从提高自身形象和信息规范化管理考
虑, 广泛采用LED 电子显示屏显示产品, 此类多媒体显示系统通过一定的控制方式,用于显示文字、图形、图像、动画、股
市行情等各种信息以及电视、录像、DVD 等信号, 是交通指挥引导、部队作战、电力部门、公共场所进行企业形象宣传、信
息发布和精神文明建设的有效工具和良好窗口。
采用现场可编程逻辑器件(FPGA) 作为控制器, 选择合适的器件, 利用器件丰富的I/O 口、内部逻辑和连线资源, 采用自上而
下的模块化设计方法, 可以方便地设计整个显示系统。
电子设计自动化(EDA)技术是基于可编程器件( PLD) 的数字电子系统设计, 它是进行系统芯片集成的新设计方法, 也正在快
速地取代基于PCB 板的传统设计方式。在EDA工具软件MAX+PLUSⅡ的支持下, 本设计通过了编译、适配和软件仿真验证。
最后用载入真实实验系统的硬件实验证明了它的正确性。
1 系统结构及其原理
本设计结合上海航虹高科技公司生产的EDA实验箱, 需要显示的16 个字符的字模已存放在EPROM 的8000H~807FH, 采用单
个8×8LED点阵(WTD3088)显示字符, 显示控制由现场可编程门阵列(FPGA) EPF10K20TC144- 4 来实现。系统原理是FPGA
首先产生点阵字模地址, 并从存储器读出数据存放在16 位寄存器中, 然后输出到LED点阵的列, 同时对点阵列循环扫描以
动态显示数据, 当需要显示数据字模的列和被选中的列能够协调配合起来, 就可以正确显示字符。
2 FPGA设计及其原理
为在8×8LED 发光二极管点阵上显示字符, 首先要把字符表示成为8×8 像素点( AD0~AD7) , 分别为按列抽取依序排列的字符
像素信息, 均具有8 位字长。然后依次对多字符抽取像素信息, 并按序排队存放于EPROM 之中, 便可得到一个待显示数据
序列。进一步通过寻址的方法来控制该数据序列的释放过程, 就可实现在8×8LED发光二极管点阵上滚动显示多个字符信息的
目的。page 控制字符显示的滚动速度, 它的取值范围应为0~N, col 决定LED 点阵的列开关的扫描速度,它的取值范围应为
0~7.某一时刻能在显示数据序列中定位待显示数据的地址指针可用下式计算: addr=page+col应当注意的是, 扫描速度应远
大于滚动速度, 本设计中使用的扫描时钟是1KHz, 字符的滚动速度是1 秒/ 个。调节字符信息的滚动速度;改变col 的重复扫描
周期, 可改善在LED 点阵上显示完整字符信息的稳定性。
另外还需指出, 由于addr 的运算要靠硬件实现, 故地址指针addr的模应取为N, 而且为实现全部字符信息滚过LED 点阵, 必
须在数据N前补充8 个空数据字节。根据其工作原理, 设计了描述FPGA内核硬件功能的VHDL 语言程序。本设计结合了EDA
实验箱和ALTERA公司的MAX+PLUSⅡ研发工具, 并采取了行为的描述方式。
VHDL程序如下:
libraryieee;
use ieee.s td_logic_1164.all;
use ieee.s td_logic_arith.all;
use ieee.s td_logic_uns igned.all;
entityledis
port (clk1,clk2,reset: ins td_logic;
led_s: out s td_logic_vector(2downto0);
memcs,rd,wr,cs0809,selmled:out s td_logic;
a: out s td_logic_vector(15downto0);
ad: out s td_logic_vector(7downto0));
end;
architecture led_archofledis
s ignalcol:integerrange 0to7;
s ignalpage :integerrange 0to15;
s ignaloe:s td_logic;
begin
proces s(clk2,reset,col)
begin
ifreset='1' then
col<=0;
els if(clk2'event andclk2='1')then
col<=col+1;
endif;
led_s <= conv_s td_logic_vector(col,3);
a(2downto0)<=conv_s td_logic_vector(col,3);
endproces s;
proces s(clk1,page)
begin
if(clk1'event andclk1='1')then
page<=page+1;
endif;
a(6downto3)<=conv_s td_logic_vector(page,4);
endproces s;
ad<= "ZZZZZZZZ";oe <= '0';
资源评论
- m0_751264742024-05-09非常有用的资源,有一定的参考价值,受益匪浅,值得下载。
- m0_740840172024-09-17资源很受用,资源主总结的很全面,内容与描述一致,解决了我当下的问题。
weixin_38713057
- 粉丝: 3
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功