zoukankan      html  css  js  c++  java
  • 《FPGA全程进阶---实战演练》第十四章 蜂鸣器操作

    1 基础理论部分

      本实验主要是实现蜂鸣器的操作,蜂鸣器的操作是非常简单的,只有把简单的事情做好,方可谈其他复杂的事。本实验部分会利用verilog一些宏定义语句,其实在VGA实验部分已经出现过,这里为了巩固,再次调用相关宏定义命令,已达到最大化的可移植性,请读者务必掌握这种用法,很实用。

    谈及蜂鸣器或者LED,多多少少会有一个概念,PWM(pulse  width  modulation),即脉宽调制,PWM的输出只有高电平1和低电平0,PWM不断重复输出周期T,高电平所占用的时间为t,则占空比 = t / T ;频率 = 1 / T,如图14.1所示。

    wps94F6.tmp

    图14.1 PWM脉冲图

    2 Verilog代码实现部分

      对于实现不同的占空比,可以去建立一个parameter模块,用来定义不同的PWM脉冲信号。主要是从两方面去定义,一个是占空比相同(这里是占空比为50%),频率不同,一个是频率相同,不同的占空比。下面是FM_param.v中的各参数的设置。

    wps9507.tmp

    上述是宏定义个参数,分别定义了不同的占空比和频率。

    wps9508.tmp

    上述是对定义的宏参数具体执行的参数设置。

    下面是FM_PWM.v文件中的内容。

    wps9518.tmp

    24行调用参数文件,然后定义各宏参数,

    wps9519.tmp

    此部分是执行宏定义后的具体执行的内容。

    3 Modelsim仿真部分

    3.1 测试程序

    wps952A.tmp

    上述的测试程序很简单,和之前的部分一样。

    3.2 仿真结果

    图14.2是占空比为50%,周期为40ms的情况。图14.3是脚本文件的输出,其他的仿真类似。

    wps952B.tmp

    图14.2 仿真波形

    wps953C.tmp

    图14.3 脚本输出

  • 相关阅读:
    C语言volatile
    2017-10-12 下一步计划
    关于步进电机的半流设置、衰减设置
    压力校准仪开发-----步进电机驱动
    kei中实现在线仿真看波形
    42步进电机与57步进电机
    网上的说TB6560存在的问题
    TB6560步进电机驱动板
    继承
    iOS设计模式——单例模式
  • 原文地址:https://www.cnblogs.com/raymon-tec/p/5302028.html
Copyright © 2011-2022 走看看