基于CPLD/FPGA的串行LED显示电路模块化设计.doc

基于CPLD/FPGA的串行LED显示电路模块化设计.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档