0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计:采用74HC595的LED控制电路操作

454398 来源:博客园 作者:raymon_tec 2020-10-21 15:29 次阅读

1基础理论部分

1.1分频

分频,是的,这个概念也很重要。分频是指将一单一频率信号的频率降低为原来的1/N,就叫N分频。实现分频的电路或装置称为“分频器”,如把33MHZ的信号2分频得到16.5MHZ的信号,3分频得到11MHZ的信号,10分频得到3.3MHZ的信号。

分频主要是相对于主晶振来说,用不到那么高的频率,开发板一般根据具体需要会加入晶振,一般若是功耗较高可选用50MHz,其他情况可以相对调整,如24MHz等等。那么分频的典型应用,二分频,四分频,八分频,还有任意分频。

对于分频,我们可以利用quartus ii 自带的PLL进行分频,这样会占用一定的资源,也可以利用计数器实现一定的分频,注意,FPGA中不同于其他的CPU,没有计时器的概念,只有计数器。

1.2 LED

LED(light emitting diode),发光二极管,简称LED,是一种能够将电能转化成可见光的固态的半导体器件,可以直接把电转换成光。可以用在电路及仪器中作指示灯,或者组成文字或数字显示等。有不同化合物制成的二极管如砷,镓,磷等化合物制成,不同的化合物组合会显示不同颜色的光。

在设计LED的驱动电路时,不能直接接到3.3V或者5V来点亮,LED有额定电流,超过这个额定电流,LED就会烧掉,反接也会烧掉。一般的LED的额定电流从10mA~1A不等。FPGA开发采用的LED主要是贴片0805或者0603等,额定电路一般从10mA~30mA.

1.3 74HC595

开发板上面的LED控制是用串入并出/串出的移位寄存器74HC595芯片,芯片在电路中的接入情况如图5.1所示,实物图如图5.2所示。其中MR引脚直接接高电平,不进行复位。串出引脚9不接,不进行串出引脚的使用。输出使能引脚13直接接地,手册上建议。11和12引脚分别为移位寄存器时钟输入和存储时钟输入,分别引出。

图5.1 LED部分电路图

图5.2 实物图

2 verilog代码实现部分

2.1 74HC595 控制部分

14行定义了一个全局参数WIDTH = 8,用来控制程序下面所有的有关于数量的使用。

59行和60行分别定义了时钟信号和时钟使能信号,其中时钟信号sclk时钟周期前半段为低电平,后半段为高电平,可以实现对数据的中间采样,时钟使能信号led_time可以控制数据和时钟对齐。48行的state是一个状态改变的寄存器,只要数据一更新,state就有效。

75行定义了update_input信号用来检测输入数据的变化。

状态转换部分,在case语句中先检测state的初始位,然后进入循环操作,检测update_input是否使能,使能更新state,不使能保持state,更新后开始输出位数计数器led_cnt的计数

在121到123行,对输出的三路信号进行了约束限制,这种方法值的借鉴,在用不到时不输出信号,用到时输出信号,最大量的节省时钟。Led_data_out是先从高位输出到低位。

2.2 LED数据产生部分

在模块声明处,仍旧使用全局定义变量,控制模块中常量的使用。

计数模块,产生时钟使能信号。

Reg型变量Led_out_cnt是用来控制LED变化, 每当时钟信号使能开始计数,板卡上面一共有8个LED,所以计数8个即可。

LED解码部分,通过上面的led_out_cnt信号进行解码,控制LED的流水操作。

3 modelsim验证部分

3.1 led_generate 模块仿真

43行产生时钟信号,通过PERIOD进行周期控制。49~51产生复位信号,当时钟两次下降沿后复位信号拉高。56行用来监测led_out输出的时间,生成的脚本文件如图5.3所示。

图5.3仿真波形

图5.4是利用脚本文件生成,可以观察到实现了流水功能,且时间间隔1s;

图5.4 脚本生成文件

3.2 led_74HC595 模块仿真

前半部分和上述都一样,可以作为固定部分,大家可以自行复制即可。59行到63行增加了系统输入信号初始化部分。在输入信号输入前,最好最安全就是进行一次初始化。

75行到87行是对输入进行模拟输入,并监测led_data-out信号,输出的结果如图5.5所示,由图可以看到时间间隔为120ns。

图5.6是仿真波形,可以看到时钟led_sclk每次采样在输入信号的正中间位置,最大程度保证采样可靠。

图5.5 脚本文件

图5.6 仿真波形
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603239
  • led
    led
    +关注

    关注

    242

    文章

    23272

    浏览量

    660780
  • 分频器
    +关注

    关注

    43

    文章

    447

    浏览量

    49904
  • 驱动电路
    +关注

    关注

    153

    文章

    1529

    浏览量

    108512
收藏 人收藏

    评论

    相关推荐

    CD74HC4067的COMMON端口是如何实现输入和输出的切换的?

    输出端,控制16路选择输入时发现输入值不对,网上看到CD74HC4067需要初始化,具体怎么操作?附件是电路图,请帮忙看看谢谢
    发表于 12-20 15:10

    74hc595的功能及作用是什么

    74HC595是一款常用的8位串行输入、并行输出的移位寄存器,广泛应用于LED显示、驱动继电器、电机控制等领域。 74HC595的功能及作用 在数字电子领域,
    的头像 发表于 10-21 09:57 774次阅读

    74HC595常用移位寄存器芯片资料包

    在电子项目中,74HC595 是一款常用的移位寄存器芯片,它在很多领域都有着广泛的应用。 74HC595 具有多个显著的特点。首先,它可以实现串行输入并行输出,这意味着只需要很少的控制引脚就可以
    发表于 09-24 17:19 0次下载

    74HC595PW(nexperia)移位寄存器中文参数_功能图_引脚图_封装尺寸

    Nexperia的 74HC595PW 是一款性能卓越的8位串入/串或并出移位寄存器,适用于需要高效数据转换和存储的电子系统。此芯片广泛应用于计数器、移位寄存器等领域,凭借其灵活的设计和出色的性能
    的头像 发表于 09-10 14:37 496次阅读
    <b class='flag-5'>74HC595</b>PW(nexperia)移位寄存器中文参数_功能图_引脚图_封装尺寸

    单线串口共阴极LED驱动控制电路—AiP1652

    单线串口共阴极LED驱动控制电路—AiP1652
    的头像 发表于 09-09 10:02 385次阅读
    单线串口共阴极<b class='flag-5'>LED</b>驱动<b class='flag-5'>控制电路</b>—AiP1652

    SM74HC595D高速CMOS器件规格书

    电子发烧友网站提供《SM74HC595D高速CMOS器件规格书.pdf》资料免费下载
    发表于 07-11 11:15 0次下载

    74HC595D/74HCT595D(nexperia)移位寄存器_中文参数_功能特点_工作原理

    74HC595D和74HCT595D是由Nexperia生产的高性能8位串入/串出或并出移位寄存器。这些器件集成了存储寄存器和三态输出,非常适用于多种电子控制和数据转换应用。它们的设计特点包括独立
    的头像 发表于 06-06 09:56 1190次阅读
    <b class='flag-5'>74HC595</b>D/<b class='flag-5'>74HCT595</b>D(nexperia)移位寄存器_中文参数_功能特点_工作原理

    SN74HC595-EP带3态输出寄存器的8位移位寄存器数据表

    电子发烧友网站提供《SN74HC595-EP带3态输出寄存器的8位移位寄存器数据表.pdf》资料免费下载
    发表于 06-04 11:11 0次下载
    SN<b class='flag-5'>74HC595</b>-EP带3态输出寄存器的8位移位寄存器数据表

    采用三态输出寄存器的 8 位移位寄存器SN74HC595B数据表

    电子发烧友网站提供《采用三态输出寄存器的 8 位移位寄存器SN74HC595B数据表.pdf》资料免费下载
    发表于 05-31 09:25 0次下载
    <b class='flag-5'>采用</b>三态输出寄存器的 8 位移位寄存器SN<b class='flag-5'>74HC595</b>B数据表

    stm8s-discovery驱动74hc595,管脚怎样连接?

    小白求助,stm8s-discovery驱动74hc595,管脚怎样连接?具体的程序原理是什么?
    发表于 05-13 08:46

    具有三态输出寄存器的CD74HC595 8位移位寄存器数据表

    电子发烧友网站提供《具有三态输出寄存器的CD74HC595 8位移位寄存器数据表.pdf》资料免费下载
    发表于 05-07 10:14 0次下载
    具有三态输出寄存器的CD<b class='flag-5'>74HC595</b> 8位移位寄存器数据表

    STM8如何控制HC595驱动8个LED

    STM8如何控制HC595驱动8个LED,希望大神们能发个程序上来看一下,谢谢!
    发表于 04-25 07:56

    fpga输出管脚后接74HC07做电平转换出现高频振荡

    我在对FPGA引脚输出的电平(3.3V)进行电平转换(转换到5V)的过程中,出现了下面的问题。 fpga输出管脚后接74HC07做电平转换出现高频振荡,请教一下这种情况应该怎么办? 下面这是我们
    发表于 04-16 16:36

    高效提升控制效率 | 基于ACM32 MCU的LED灯箱控制器方案

    方面的作用:节省了宝贵的MCU时间。 LED单元板的最基本元件74HC595是8位串行移位寄存器和8位存储/输出寄存器组成,移位寄存器负责在时钟脉冲的每个上升沿接收输入的数据,而存储/输出寄存器负责将
    发表于 03-07 13:47

    SPICONTROLE 4个HC595移位寄存器设置流水灯时,在SPIIINTIGRATIONED化了的时候,控制HC595 LED跳了起来如何解决?

    采用 SPICONTROLE 4个HC595移位寄存器,在设置流水灯的时候了,SPICONTROLLES正常,但是在SPIIINTIGRATIONED化了的时候,控制HC595
    发表于 01-29 08:06