- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于CPLD/FPGA的串行LED显示电路模块化设计
基于CPLD/FPGA的串行LED显示电路模块化设计
第4g第1期
2005年3月
宁夏工程技术
NingxiaEngineeringTechnology
Vol-4No.1
Mar.2005
文章编号:167I一7244(2005)01—0039—03
基于CPLD/FPGA的串行LED
显示电路模块化设计
杨泽林,郭中华,徐海英
(I.宁夏大学物理电气信息学院,宁夏银川750021;2.青铜峡市有线电视网络公司,宁夏青铜峡751600)
摘要:给出了一个基于CPLD/FPGA设计的软件模块化LED显示电路.通过串行扫描方式驱动LED数码
管,可较少地占用可编程器件资源;并利用MAXPLUSII对动态扫描LED显示电路进行仿真.最后,对动态扫描
显示下数码管的亮度降低的原因进行分析,认为采用降低扫描频率,增大脉冲光对人眼的作用时间和增大驱动
电流来提高LED显示器亮度.
关键词:CPLD/FPC.A;VHDL;LED显示器
中图分类号:TN202文献标志码:A
在基于CPLD/FPGA的LED显示电路设计中,
有两个问题值得关注:①电路的大小,它关系到占
用PLD器件内部资源的多少;②显示方式,它关系
到占用PLD器件端口资源的多少.合理设计LED
显示电路,可以达到电路又小,占用PLD器件端口
又少的目的,从而降低显示电路的成本.
通常在数字系统的设计中,输人¨I,输出设备是
必不可少的人机交互设备,在设计中占有重要的地
位.在用定制电路设计的数字系统中,输人,输出电
路一般都设计成标准模块,由MSI电路构成,与主结
构电路配合后,可完成数字系统的完整设计.在可
编程逻辑器件电路的设计中,一般使用硬件描述语
言完成电路的设计.仿照定制电路的设计方法,也
可以将输出电路设计成标准模块,但这里的电路不
是用定制电路构成的模块,而是一段用硬件描述语
言完成的电路描述,作为一个独立的模块,可以被其
pcl三i~3,.3,.一FS-E-1,s,:sdata
I
_÷——■移位寄存器\:.
ifl
……..
他设计所调用,从而完成整个数字系统的设计.
1动态扫描LED显示电路设计
8位动态扫描LED显示电路原理如图1(a)所
示,由计数器,移位寄存器,MUX,3—8译码器,7段
译码器等电路构成;图1(b)图是显示电路原理图.
数据输人是在clk的作用下完成的,当write=1时,8
个4位串行数据sdata经过32个clk的上升沿进人
8个移位寄存器.数据的显示是在pclk的作用下完
成的,3位2进制计数器输出信号控制3~8译码器
输出数码管位选择信号bit_out,同时控制MUX输出
对应的显示数据,经译码后得到驱动数码管的7段
码seg_out.
28位动态扫描LED显示电路模块
的VHDL代码
libraryieee;
seg—out
bit—out
图18位动态扫描LED显示电路
Fig.18-bitdynamicscanningLEDdisplayelectriccircuit
收稿日期:2004—12—13.
作者简介:杨泽林(1957一),男,副教授,主要从事EDA技术与仪器,仪表技术研究
藉一~-一__一.II-.1L一一.1_●..._一.II8]一础赢_I.JI一一_广J一~
宁夏工程技术第4卷
useieee.stdJogicA164.all:
useieee.stdAogic_unsigned.all;
entitypoutputis
port(sdata:instdJogic;
clk,pclk:instd_
logic;
write:instd_
logic;
seg_out:outstd_
logic_vector(6downto0);
bit_out:outstdAogic_vector(7downto0));
endpoutput;
architecturescan_
8bitofpoutputis
functionseg_dec(digit:std_logic_vector)
returnstd_
logic_
vectoris
variableseg_
decJmp:std_logic_vector(6downto0);
variabledigit_
s:std_
logic_vector(3downto0);
begin
digit_
s:=digit:
casedigit_
sis
when0000=gt;seg_
decJmp::0111111:
----
gfedcba
when0001=gt;seg_
dec_
tmp:=0000110;
when0010:gt;seg_
dec_
tmp::1011011;
when0011:gt;seg_
decJmp:1001111:
when0
文档评论(0)